Как проверить отслеживание переходов на Android?


100

Я использую код для отслеживания переходов по загрузкам с Android Market.

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

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


Ответы:


258

Самый простой способ - использовать 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"опустить часть имени компонента, но тогда каждое приложение на вашем устройстве получит ссылку. Это может быть хорошим дополнительным тестом, чтобы убедиться, что вас 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

1
Если вы используете статический внутренний класс в качестве BroadCastReceiver, вам нужно избегать знака доллара. В моем случае мне пришлось опустить точку перед путем до BroadCastReceiver. "am broadcast -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Герт Вининг,

5
После множества проб и ошибок я обнаружил, что если ваш Receiver находится в библиотеке, вам нужно опустить. после / - поэтому пример будет выглядеть так: 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 за adb shell <enter> am broadcast... Я печатаю adb shell am broadcast...по ошибке, и ничего не выводится.
антикафе

1
Важное замечание: все амперсанды (&) внутри строки реферера должны иметь префикс backspace (), иначе строка будет завершена первым амперсандом и не достигнет широковещательного приемника. (в результате получается только первая пара в данном случае "utm_source = utm_test")
Нати Дикштейн

2
«Но ваш BroadcastReceiver, возможно, должен быть AnalyticsReceiver», что вы имеете в виду? Что, если я хочу иметь свой собственный приемник, изготовленный на заказ?
Утсав Гупта,

18

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

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

Это ваше собственное приложение?
JRun

1
это мое приложение с открытым исходным кодом, поэтому я не собираюсь его продавать github.com/giago/referraltester
Луиджи Агости

2
Так что
выложите

14
вы можете скачать код и развернуть его на своем телефоне ... если вам лень, вы платите, я думаю, это достаточно справедливо
Луиджи Агости

2
Дали вам +1. Слишком ленив, чтобы построить еще один проект, но все равно дали +1 за то, что разобрались. :-)
JRun

10

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

./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-адрес реферера должен быть закодирован.


Я получаю "не установлено" как среднее значение кампании на панели инструментов аналитики. Отображается только имя источника. Можете ли вы выяснить, в чем может быть проблема?
KP_

4

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

https://github.com/giago/referraltester


4

Ответ pjv работает в том случае, если имя пакета в AndroidManifest.xml совпадает с applicationId в build.gradle. Если они не совпадают, сделайте следующее:
Дано:
applicationId - это 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

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

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.