Wie teste ich Android Referral Tracking?

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
pjv
quelle
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);
Luigi Agosti
quelle
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.

Pablo
quelle
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

Es wurde ein nettes Open-Source-Tool gefunden, mit dem Sie den hier generierten Empfehlungs-QR-Code scannen und eine Broadcast-Absicht mit allen korrekten Informationen senden können.

https://github.com/giago/referraltester

Gyuri
quelle
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

AtomicBoolean
quelle
0

https://github.com/rogerbinns/referraltester Hier ist eine großartige App, um die Sendung "com.android.vending.INSTALL_REFERRER" zu initiieren. Sie können auch Parameter eingeben.

sammiwei
quelle
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"

Sojan PR
quelle
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
WeiYuan
quelle