Android紹介追跡をテストする方法は?


100

Androidマーケットからのダウンロードで自分の紹介追跡を行うためのコードを実装しています。

私のアプリが何をしているのかについては、Androidの参照追跡が機能しないをご覧ください。

公開する前に、このコードが機能しているかどうかをどのようにテストできますか?


回答:


258

最も簡単な方法は、を使用することadbです。コードを書く必要はありません。

ターミナルで実行するだけです:

adb shell 
am broadcast -a com.android.vending.INSTALL_REFERRER -n <your.package>/.<path.up.until.your.BroadcastReceiver> --es "referrer" "utm_source=test_source\&utm_medium=test_medium\&utm_term=test_term\&utm_content=test_content\&utm_campaign=test_name"

これが私の正確な行です:

am broadcast -a com.android.vending.INSTALL_REFERRER -n net.lp.collectionista/.util.broadcast_receivers.FacadeBroadcastReceiver --es "referrer" "utm_source=test_source\&utm_medium=test_medium\&utm_term=test_term\&utm_content=test_content\&utm_campaign=test_name"

しかし、あなたBroadcastReceiverAnalyticsReceiver、つまり

Google Analytics v2の場合:

com.your.package / com.google.analytics.tracking.android.CampaignTrackingReceiver

Google Analytics v3の場合:

com.your.package / com.google.android.apps.analytics.AnalyticsReceiver

Google Analytics v4の場合:

com.your.package / com.google.android.gms.analytics.CampaignTrackingReceiver

Luigiが言ったように、"-n"componentnameの部分を省略することもできますが、その場合、デバイス上のすべてのアプリが紹介を受け取ります。これは、BroadcastReceiver適切に検出できるかどうかを確認するための優れた追加テストになります。

私が見る出力(特に最後の行は重要です):

05-13 17:28:08.335: D/Collectionista FacadeBroadcastReceiver(8525): Receiver called
05-13 17:28:08.335: V/Collectionista FacadeBroadcastReceiver(8525): Receiver called with action: com.android.vending.INSTALL_REFERRER
05-13 17:28:08.365: D/GoogleAnalyticsTracker(8525): Stored referrer:utmcsr=test_source|utmccn=test_name|utmcmd=test_medium|utmctr=test_term|utmcct=test_content

1
BroadCastReceiverとして静的内部クラスを使用する場合は、ドル記号をエスケープする必要があります。私の場合、BroadCastReceiverまでのパスの前にドットを省略しなければなりませんでした。"am broadcast -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Geert

5
何度も試行錯誤した結果、Receiverがライブラリ内にある場合は、を省略する必要があることがわかりました。/の後-例は次のようになります:adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n <your.package> / <full.path.in.library.up.until.your.BroadcastReceiver> --es "referrer" "utm_source = test_source&utm_medium = test_medium&utm_term = test_term&utm_content = test_content&utm_campaign = test_name"
bkurzius 2013

2
の+1 adb shell <enter> am broadcast..。私はタイプadb shell am broadcast...誤って、それは何も出力しません。
アンチカフェ2014

1
重要な注意点は、参照文字列内のすべてのアンパサンド(&)の前にバックスペース()を付ける必要があります。そうしないと、文字列は最初のアンパサンドで終了し、ブロードキャストレシーバーに到達しません。(この場合、最初のペアのみが「utm_source = utm_test」になる)
Nati Dykstein

2
「しかし、BroadcastReceiverがAnalyticsReceiverである必要があるかもしれません」それはどういう意味ですか?独自のカスタムレシーバーが必要な場合
Utsav Gupta

18

番号!あなたはそれをテストするいくつかの方法がありますこのフォームの意図で手動でブロードキャストを送信してください

    Intent i = new Intent("com.android.vending.INSTALL_REFERRER");
    //Set Package name
    i.setPackage("com.package.yourapp");
    //referrer is a composition of the parameter of the campaing
    i.putExtra("referrer", referrer);
    sendBroadcast(i);

これはあなた自身のアプリですか?
JRun

1
これは私のアプリであり、オープンソースなので、販売しようとしているようではありませんgithub.com/giago/referraltester
Luigi

2
だから、無料でプレイストアに置いてください:-)
JRun

14
あなたはコードをダウンロードしてあなたの電話にそれを配備することができます...あなたが怠惰なあなたが支払うなら、私は十分公平だと思います
Luigi Agosti

2
あなたに+1を与えました。さらに別のプロジェクトを構築するのが面倒ですが、それを理解するために+1を与えました。:-)
JRun

10

上記のコマンドはどれも機能しません。多くのコマンドの組み合わせを試した後、ここで私のために働くものがあります:

./adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n <your package>/<your package>.<your BroadcastReceiver> --es "referrer" "utm_medium%3Dpartner%26utm_campaign%3Dpartner_name"

注:リファラーはURLエンコードする必要があります。


アナリティクスダッシュボードでキャンペーンの値が「中」に設定されていません。ソース名のみが表示されます。何が問題なのかを理解できますか?
KP_15年


4

AndroidManifest.xmlのパッケージ名がbuild.gradleのapplicationIdと一致する場合、pjvの回答が機能します。一致しない場合は、次の
手順を実行します。指定:
applicationIdはcom.my.app.debug
パッケージであり、com.package.app
レシーバーは詳細にpath.to.MyReceiver
ブロードキャストされcom.my.app.debug/com.package.app.path.to.MyReceiver
ます:https : //groups.google.com/forum/#!topic / adt-dev / PjTHX79Iomw



0

私にとっては、「-es」の代わりに「-e」を使用して追加する場合にのみ、追加がインテントに追加されました。広告バージョンの問題である可能性があります。だから私のコマンドは ./adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n <your package>/<your package>.<your BroadcastReceiver> -e "referrer" "utm_medium%3Dpartner%26utm_campaign%3Dpartner_name"


0

Goople PlayはAPPリンクを受信し、ユーザーにクリックしてダウンロードするように要求します。GooglePlayはダウンロードが完了するとブロードキャストを送信します。APPリンクは通常、ソースがどこから来ているのかをGoogle PlayとAPPに知らせるためにいくつかのパラメーター(次の例など)を取ります。

Https://play.google.com/store/apps/details?id=com.example.application
& Referrer = utm_source% 3Dgoogle
% 26utm_medium% 3Dcpc
% 26utm_term% 3Drunning% 252Bshoes
% 26utm_content% 3Dlogolink
% 26utm_campaign% 3Dspring_sale

したがって、adbを使用して、Google Playからのブロードキャストをシミュレートできます。

echo 'am broadcast \
    -a com.android.vending.INSTALL_REFERRER \
    -n "com.google.samples.quickstart.analytics/com.google.android.gms.analytics.CampaignTrackingReceiver" \
    --es "referrer" \
      "utm_source=test_sourceCampaignTrackingReceiver&utm_medium=referral&utm_term=test_term&utm_content=test_content&utm_campaign=test_name"; \
    exit' | adb shell
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.