Wie teste ich Android Referral Tracking?


100

Ich implementiere Code, um meine eigene Empfehlungsverfolgung für Downloads aus dem Android Market durchzuführen.

Siehe Android-Empfehlungsverfolgung funktioniert nicht für eine Vorstellung davon, was meine App tut.

Wie kann ich testen, ob dieser Code funktioniert, bevor ich ihn für die Öffentlichkeit bereitstelle?


Antworten:


258

Der einfachste Weg ist die Verwendung adb. Sie müssen keinen Code schreiben.

Einfach in einem Terminal laufen lassen :

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"

Hier ist meine genaue Zeile:

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"

Aber Sie BroadcastReceivermüssen möglicherweise das sein AnalyticsReceiver, dh

Für Google Analytics v2:

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

Für Google Analytics v3:

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

Für Google Analytics v4:

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

Wie Luigi sagte, können Sie auch den "-n"Komponentennamen-Teil weglassen, aber dann erhält jede App auf Ihrem Gerät die Empfehlung. Dies kann ein guter zusätzlicher Test sein, BroadcastReceiverum festzustellen, ob Sie richtig gefunden werden können.

Die Ausgabe, die ich sehe (insbesondere die letzte Zeile ist wichtig):

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
Wenn Sie eine statische innere Klasse als BroadCastReceiver verwenden, müssen Sie dem Dollarzeichen entkommen. In meinem Fall musste ich den Punkt vor dem Pfad zum BroadCastReceiver weglassen. "Ich sende -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Geert Weening

4
Nach vielen Versuchen und Irrtümern stellte ich fest, dass Sie den Empfänger weglassen müssen, wenn sich Ihr Empfänger in einer Bibliothek befindet. Nach / - würde das Beispiel folgendermaßen aussehen: ADB-Shell bin 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

2
+1 für adb shell <enter> am broadcast... Ich tippe adb shell am broadcast...versehentlich und es gibt nichts aus.
Anticafe

1
Ein wichtiger Hinweis ist, dass allen kaufmännischen Und-Zeichen (&) in der Referrer-Zeichenfolge das Leerzeichen () vorangestellt werden sollte. Andernfalls wird die Zeichenfolge beim ersten kaufmännischen Und beendet und erreicht den Rundfunkempfänger nicht. (was dazu führt, dass in diesem Fall nur das erste Paar "utm_source = utm_test" erhalten wird)
Nati Dykstein

2
"Aber Ihr BroadcastReceiver muss möglicherweise der AnalyticsReceiver sein" Was meinen Sie damit? Was ist, wenn ich meinen eigenen Empfänger haben möchte
Utsav Gupta

18

Nein! Sie haben einige Möglichkeiten, es zu testen. Senden Sie eine Sendung manuell mit der Absicht dieses Formulars

    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);

Ist das deine eigene App?
JRun

1
Es ist meine App und Open Source. Es ist also nicht so, als würde ich versuchen, sie zu verkaufen. github.com/giago/referraltester
Luigi Agosti

2
Also kostenlos in den Play Store stellen :-)
JRun

14
Sie können den Code herunterladen und auf Ihrem Telefon bereitstellen ... Wenn Sie faul sind, zahlen Sie, ich denke, ist fair genug
Luigi Agosti

2
Hat dir eine +1 gegeben. Zu faul, um ein weiteres Projekt zu bauen, hat dir aber trotzdem eine +1 gegeben, um es herauszufinden. :-)
JRun

10

Keiner der oben genannten Befehle funktioniert bei mir. Nachdem ich viele Befehlskombinationen ausprobiert habe, funktioniert diese für mich:

./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"

Hinweis: Der Referrer sollte url-codiert sein.


Ich bekomme "nicht festgelegt" als Medium, Kampagnenwert im Analytics-Dashboard. Es wird nur der Quellenname angezeigt. Können Sie herausfinden, was das Problem sein könnte?
KP_


4

Die Antwort von pjv funktioniert in dem Fall, in dem der Paketname in AndroidManifest.xml mit der Anwendungs-ID in build.gradle übereinstimmt. Wenn sie nicht übereinstimmen, gehen Sie wie folgt vor:
Gegeben:
applicationId ist com.my.app.debug
Paket ist com.package.app
Empfänger wird path.to.MyReceiver
dann an com.my.app.debug/com.package.app.path.to.MyReceiver
Details hier gesendet : https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw



0

Für mich wurden Extras nur dann zur Absicht hinzugefügt, wenn mit "-e" anstelle von "--es" hinzugefügt wurde. Könnte mein Problem mit der Anzeigenversion sein. Mein Befehl lautet also ./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 erhält einen APP-Link und fordert den Benutzer auf, zum Herunterladen zu klicken. Google Play sendet eine Sendung, wenn der Download abgeschlossen ist. Der APP-Link verwendet normalerweise einige Parameter (wie das folgende Beispiel), um Google Play und APP mitzuteilen, woher die Quelle stammt.

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

So können wir adb verwenden, um die Übertragung von Google Play zu simulieren.

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.