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

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

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

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

Ответ 1

Самый простой способ - использовать 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"

Но вам может понадобиться AnalyticsReceiver 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

Ответ 2

Нет! у вас есть несколько способов проверить его

  • Используйте приложение: https://market.android.com/details?id=com.giago.referraltester&feature=search_result
  • Отправить трансляцию вручную с целью этой формы

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

Ответ 3

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

https://github.com/giago/referraltester

Ответ 4

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

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

Ответ 5

Ответ 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

Ответ 6

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

Ответ 7

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

Ответ 8

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