自分のアプリの Google Play デベロッパー コンソールからアプリ インストール数をプログラムで取得することはできますか?
もちろん、プログラムでログインを試み、サイト自体で統計を表示するために使用される統計を含む json を返す Web リクエストを作成することは可能ですが、これは私にとって信頼できるものではないようです。
https://code.google.com/p/androidappstats/を見つけましたが、少し古いようです。
自分のアプリの Google Play デベロッパー コンソールからアプリ インストール数をプログラムで取得することはできますか?
もちろん、プログラムでログインを試み、サイト自体で統計を表示するために使用される統計を含む json を返す Web リクエストを作成することは可能ですが、これは私にとって信頼できるものではないようです。
https://code.google.com/p/androidappstats/を見つけましたが、少し古いようです。
GitHubのAndlyticsプロジェクトを見てください。これは、Google Play でも利用できるオープン ソース アプリケーションです。リンク先の GitHub ページにそのリンクがあります。
ただし、(現時点では) Google Play ストアの特定のアプリケーション向けではありません。むしろ、開発者アカウントに接続し、同じものを使用して公開されたすべてのアプリケーションに関する情報を取得します。
そうは言っても、それはオープンソースであるため、正確な目的に合わせて微調整できると確信しています.
ここには非公式の API もあります: https://code.google.com/p/android-market-api/。しかし、ソースをざっと見てみると、これはもう/定期的に更新されていないことがわかります。
一方、Andlytics は定期的に更新されます (Google Play ストアに加えられた変更に対応するため)。
これには非公式のライブラリがあり、https://code.google.com/p/android-market-api/にあります。
さて、私は次の解決策を選択しました。私は .NET プログラマーなので、Java ライブラリを使用するのは簡単ではなく、C# に書き直す十分な時間も意志もありません。
Steven Sanderson のブログで、ヘッドレス ブラウザーの自動化に関する記事を見つけました ( http://blog.stevensanderson.com/2010/03/30/using-htmlunit-on-net-for-headless-browser-automation/ ) 。
ここに私が書いたコードがあります:
WebClient _webClient = new WebClient( BrowserVersion.FIREFOX_17 );
_webClient.getOptions().setUseInsecureSSL( true );
_webClient.getOptions().setThrowExceptionOnScriptError( false );
_webClient.getOptions().setRedirectEnabled( true );
var page = (HtmlPage)_webClient.getPage( "https://play.google.com/apps/publish/v2/" );
HtmlInput emailElement = (HtmlTextInput)page.getElementById( "Email" );
emailElement.type( Settings.Default.Login );
HtmlInput passwordElement = (HtmlInput)page.getElementById( "Passwd" );
passwordElement.type( Settings.Default.Password );
HtmlSubmitInput signInLink = (HtmlSubmitInput)page.getElementById( "signIn" );
HtmlPage page2 = (HtmlPage)signInLink.click();
_webClient.waitForBackgroundJavaScript( 2000 );
var installsNode = ( from p in page2.getElementsByTagName( "p" ).toArray().Cast<HtmlParagraph>()
let data_column = p.getAttribute( "data-column" )
where data_column != null && "INSTALLS".Equals( data_column, StringComparison.OrdinalIgnoreCase )
select p ).FirstOrDefault();