programacion - manual de android en pdf
¿Cómo probar el seguimiento de referencias de Android? (8)
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?
¡No! tienes algunas maneras de probarlo
- Utilice una aplicación: https://market.android.com/details?id=com.giago.referraltester&feature=search_result
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);
Encontré una buena herramienta de código abierto que le permite escanear el qrcode de referencia que genera here , y envía un intento de difusión con toda la información correcta.
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
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
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 <your package>/<your package>.<your BroadcastReceiver> --es "referrer" "utm_medium%3Dpartner%26utm_campaign%3Dpartner_name"
Nota: la referencia debe estar codificada en url.
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 <your package>/<your package>.<your BroadcastReceiver> -e "referrer" "utm_medium%3Dpartner%26utm_campaign%3Dpartner_name"
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.
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 <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"
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