Как проверить отслеживание рефералов Android? - PullRequest
99 голосов
/ 05 мая 2011

Я реализую некоторый код для отслеживания рефералов при загрузке с Android Market.

См. Отслеживание рефералов Android не работает , чтобы узнать, что делает мое приложение.

Как я могу проверить, работает ли этот код, перед тем как его можно будет опубликовать?

Ответы [ 8 ]

251 голосов
/ 06 августа 2011

Самый простой способ - использовать adb. Вам не нужно писать код.

Просто запустить в терминале :

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"

Вот моя точная строка:

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"

Но ваш BroadcastReceiver, возможно, должен быть AnalyticsReceiver, т.е.

Для Google Analytics v2:

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

Для Google Analytics v3:

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

Для Google Analytics v4:

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

Как сказал Луиджи, вы также можете пропустить часть "-n" componentname, но тогда каждое приложение на вашем устройстве получит реферал. Это может быть хорошим дополнительным тестом, чтобы проверить, правильно ли найден ваш BroadcastReceiver.

Вывод, который я вижу (особенно важна последняя строка):

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
16 голосов
/ 30 июля 2011

Нет!у вас есть несколько способов проверить это Отправить сообщение вручную с намерением этой формы

    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);
8 голосов
/ 15 июля 2015

Ни одна из вышеперечисленных команд не работает для меня. После того, как я попробовал много комбинаций команд, вот та, которая работает для меня:

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

Примечание: ссылка должна быть в кодировке URL.

4 голосов
/ 27 ноября 2011

Найден хороший инструмент с открытым исходным кодом, который позволяет вам сканировать реферальный qrcode, который вы генерируете здесь , и отправляет намерение широковещательной передачи со всей правильной информацией.

https://github.com/giago/referraltester

2 голосов
/ 07 августа 2017

Ответ pjv работает в случае, когда имя пакета в AndroidManifest.xml совпадает с идентификатором приложения в build.gradle. Если они не совпадают, сделайте следующее:
Дано:
applicationId is com.my.app.debug
пакет com.package.app
получатель path.to.MyReceiver
затем трансляция на com.my.app.debug/com.package.app.path.to.MyReceiver
Подробности здесь: https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw

0 голосов
/ 11 ноября 2016

Goople Play получает ссылку APP и просит пользователя нажать для загрузки, а Google Play отправляет трансляцию по завершении загрузки.Ссылка APP обычно принимает некоторые параметры (например, в следующем примере), чтобы Google Play и APP знали, откуда исходит источник.

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

Таким образом, мы можем использовать adb для имитации трансляции из 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
0 голосов
/ 22 июля 2015

Для меня дополнения добавляются к цели только при добавлении с "-e" вместо "--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"

0 голосов
/ 30 ноября 2012

https://github.com/rogerbinns/referraltester вот отличное приложение для запуска трансляции "com.android.vending.INSTALL_REFERRER".Вы также можете ввести параметры.

...