¿Cómo probar el seguimiento de referencias de Android?

Estoy implementando un código para hacer mi propio seguimiento de referencias en descargas del mercado de Android.

Ver el seguimiento de referencias de Android no funciona para tener una idea de lo que está haciendo mi aplicación.

¿Cómo puedo probar si este código funciona antes de implementarlo en público?

La forma más fácil es usar adb . No tienes que escribir ningún código.

Solo corre en una terminal :

 adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n /. --es "referrer" "utm_source=test_source\&utm_medium=test_medium\&utm_term=test_term\&utm_content=test_content\&utm_campaign=test_name" 

Aquí está mi línea exacta:

 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" 

Pero su BroadcastReceiver puede necesitar ser el AnalyticsReceiver , es decir,

Para Google Analytics v2:

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

Para Google Analytics v3:

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

Para Google Analytics v4:

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

Como dijo Luigi, también puedes omitir la parte del nombre del componente "-n" , pero luego todas las aplicaciones de tu dispositivo recibirán la referencia. Esta puede ser una buena prueba adicional para ver si su BroadcastReceiver se puede encontrar correctamente.

La salida que veo (especialmente la última línea es 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 

¡No! tienes algunas maneras de probarlo

  1. Utilice una aplicación: https://market.android.com/details?id=com.giago.referraltester&feature=search_result
  2. Enviar una transmisión de forma manual con la intención de este formulario

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

Ninguno de los comandos anteriores funciona para mí. Después de probar muchas combinaciones de comandos, aquí está el que funciona para mí:

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

Nota: la referencia debe estar codificada en url.

Encontré una buena herramienta de código abierto que le permite escanear el qrcode de referencia que genera aquí , y envía un bash de difusión con toda la información correcta.

https://github.com/giago/referraltester

La respuesta de pjv funciona en el caso en que el nombre del paquete en AndroidManifest.xml coincida con el applicationId en build.gradle. Si no coinciden, haga lo siguiente:
Dado:
applicationId es com.my.app.debug
el paquete es com.package.app
el receptor es path.to.MyReceiver
luego se transmite a com.my.app.debug/com.package.app.path.to.MyReceiver
Detalles aquí: https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw

Para mí, los extras se agregaron a la intención solo cuando se agregaba “-e” en lugar de “-es”. Puede ser mi problema de versión de anuncios. Mi comando es ./adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n /. -e "referrer" "utm_medium%3Dpartner%26utm_campaign%3Dpartner_name"

Goople Play recibe un enlace de APP y le pide al usuario que haga clic para descargar, y Google Play envía una transmisión cuando se completa la descarga. El enlace de la aplicación generalmente tomará algunos parámetros (como el siguiente ejemplo) para que Google Play y APP sepan de dónde proviene la fuente.

 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 

Entonces podemos usar adb para simular la transmisión de 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 

https://github.com/rogerbinns/referraltester aquí es una excelente aplicación para iniciar la transmisión “com.android.vending.INSTALL_REFERRER”. puedes ingresar parámetros también.