Come testare il monitoraggio dei referral di Android?


Risposte:


258

Il modo più semplice è usare adb. Non devi scrivere alcun codice.

Basta eseguire in un terminale :

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"

Ecco la mia linea esatta:

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"

Ma BroadcastReceiverpotrebbe essere necessario che tu sia il AnalyticsReceiver, ie

Per Google Analytics v2:

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

Per Google Analytics v3:

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

Per Google Analytics v4:

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

Come ha detto Luigi, puoi anche tralasciare la "-n"parte componentname, ma poi ogni app sul tuo dispositivo riceverà il referral. Questo può essere un buon test extra per vedere se il tuo BroadcastReceiverpuò essere trovato correttamente.

L'output che vedo (soprattutto l'ultima riga è 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

1
Se usi una classe interna statica come BroadCastReceiver devi sfuggire al segno del dollaro. Nel mio caso ho dovuto tralasciare il punto prima del percorso fino a BroadCastReceiver. "Sono trasmesso -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Geert Weening

5
Dopo molti tentativi ed errori ho scoperto che se il tuo ricevitore è in una libreria, devi omettere il file. dopo / - quindi l'esempio sarebbe simile a questo: 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 per adb shell <enter> am broadcast... Digito adb shell am broadcast...per errore e non viene visualizzato nulla.
anticafe

1
Una nota importante è che tutte le e commerciali (&) all'interno della stringa referrer dovrebbero essere precedute da backspace (), altrimenti la stringa verrà terminata alla prima e commerciale e non raggiungerà il ricevitore di trasmissione. (risultante in questo caso ottenendo solo la prima coppia "utm_source = utm_test")
Nati Dykstein

2
"Ma il tuo BroadcastReceiver potrebbe dover essere AnalyticsReceiver" cosa intendi con questo? E se volessi avere il mio ricevitore personalizzato
Utsav Gupta

18

No! hai qualche modo per testarlo Invia una trasmissione manualmente con l'intento di questo modulo

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

Questa è la tua app?
JRun

1
è la mia app ed è open source quindi non è che sto cercando di venderla github.com/giago/referraltester
Luigi Agosti

2
Quindi mettilo gratuitamente nel Play Store :-)
JRun

14
puoi scaricare il codice e distribuirlo sul tuo telefono ... se sei pigro paghi, penso sia abbastanza giusto
Luigi Agosti

2
Ti ho dato un +1. Troppo pigro per costruire un altro progetto, ma ti ho comunque dato un +1 per capirlo. :-)
JRun

10

Nessuno dei comandi precedenti funziona per me. Dopo aver provato molte combinazioni di comandi ecco quella che funziona per me:

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

Nota: il referrer deve essere codificato nell'URL.


Viene visualizzato "non impostato" come mezzo, valore della campagna nella dashboard di analisi. Viene visualizzato solo il nome della fonte. Riesci a capire quale potrebbe essere il problema?
KP_


4

La risposta di pjv funziona nel caso in cui il nome del pacchetto in AndroidManifest.xml corrisponda all'ID applicazione in build.gradle. Se non corrispondono, procedi come segue:
Dato:
applicationId is com.my.app.debug
package is com.package.app
receiver is path.to.MyReceiver
then broadcast to com.my.app.debug/com.package.app.path.to.MyReceiver
Details here: https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw



0

Per me extra aggiunti all'intento solo quando si aggiungono con "-e" invece di "--es". Potrebbe essere il mio problema con la versione dell'annuncio. Quindi il mio comando è ./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 riceve un collegamento all'APP e chiede all'utente di fare clic per scaricare e Google Play invia una trasmissione quando il download è completo. Il collegamento APP richiede solitamente alcuni parametri (come il seguente esempio) per consentire a Google Play e APP di sapere da dove proviene la fonte.

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

Quindi possiamo usare adb per simulare la trasmissione da 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.