Comment tester le suivi des références Android?

Réponses:

258

Le moyen le plus simple est d'utiliser adb. Vous n'avez pas à écrire de code.

Exécutez simplement dans un terminal :

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"

Voici ma ligne exacte:

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"

Mais vous BroadcastReceiverdevrez peut-être être le AnalyticsReceiver, ie

Pour Google Analytics v2:

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

Pour Google Analytics v3:

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

Pour Google Analytics v4:

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

Comme Luigi l'a dit, vous pouvez également omettre la "-n"partie nom du composant, mais chaque application de votre appareil recevra la référence. Cela peut être un bon test supplémentaire pour voir si votre BroadcastReceiverpeut être trouvé correctement.

La sortie que je vois (en particulier la dernière ligne est importante):

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
la source
1
Si vous utilisez une classe interne statique comme BroadCastReceiver, vous devez échapper le signe dollar. Dans mon cas, j'ai dû laisser de côté le point avant le chemin menant au BroadCastReceiver. "am broadcast -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Geert Weening
5
Après de nombreux essais et erreurs, j'ai constaté que si votre récepteur se trouve dans une bibliothèque, vous devez omettre le fichier. après / - donc l'exemple ressemblerait à ceci: 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
2
+1 pour adb shell <enter> am broadcast... Je tape adb shell am broadcast...par erreur et il ne produit rien.
anticafe
1
Une note importante est que toutes les esperluettes (&) à l'intérieur de la chaîne de référence doivent être précédées d'un retour arrière (), sinon la chaîne se terminera à la première esperluette et n'atteindra pas le récepteur de diffusion. (résultant en n'obtenant que la première paire dans ce cas "utm_source = utm_test")
Nati Dykstein
2
"Mais votre BroadcastReceiver peut avoir besoin d'être AnalyticsReceiver" qu'entendez-vous par là? Que faire si je veux avoir mon propre récepteur personnalisé
Utsav Gupta
18

Non! vous avez quelques moyens de le tester Envoyez une diffusion manuellement avec une intention de ce formulaire

    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
la source
Est-ce votre propre application?
JRun
1
c'est mon application et est open source donc ce n'est pas comme si j'essayais de la vendre github.com/giago/referraltester
Luigi Agosti
2
Alors mettez-le sur le Play Store gratuitement :-)
JRun
14
vous pouvez télécharger le code et le déployer sur votre téléphone ... si vous êtes paresseux, vous payez, je pense que c'est assez juste
Luigi Agosti
2
Vous a donné un +1, trop paresseux pour construire un autre projet, mais vous a quand même donné un +1 pour le comprendre. :-)
JRun
10

Aucune des commandes ci-dessus ne fonctionne pour moi. Après avoir essayé de nombreuses combinaisons de commandes, voici celle qui fonctionne pour moi:

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

Remarque: le référent doit être encodé en URL.

Pablo
la source
Je reçois «non défini» comme support, la valeur de la campagne dans le tableau de bord analytique. Seul le nom de la source est affiché. Pouvez-vous déterminer quel peut être le problème?
KP_
4

Nous avons trouvé un bel outil open source qui vous permet de scanner le qrcode de référence que vous générez ici , et il envoie une intention de diffusion avec toutes les informations correctes.

https://github.com/giago/referraltester

Gyuri
la source
4

La réponse de pjv fonctionne dans le cas où le nom du package dans AndroidManifest.xml correspond à l'applicationId dans build.gradle. S'ils ne correspondent pas, procédez comme suit:
Étant donné:
applicationId est le com.my.app.debug
package est le com.package.app
récepteur est path.to.MyReceiver
ensuite diffusé vers com.my.app.debug/com.package.app.path.to.MyReceiver
Details ici: https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw

AtomicBoolean
la source
0

Pour moi, des extras ajoutés à l'intention uniquement lors de l'ajout avec "-e" au lieu de "--es". Peut-être mon problème de version d'annonce. Donc ma commande est ./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
la source
0

Goople Play reçoit un lien APP et demande à l'utilisateur de cliquer pour télécharger, et Google Play envoie une diffusion lorsque le téléchargement est terminé. Le lien APP prendra généralement certains paramètres (tels que l'exemple suivant) pour permettre à Google Play et à APP de savoir d'où vient la source.

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

Nous pouvons donc utiliser adb pour simuler la diffusion depuis 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
WeiYuan
la source