The easiest way is using adb
. You don’t have to write any code.
Just run in a 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"
Here’s my exact line:
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"
But your BroadcastReceiver
may need to be the AnalyticsReceiver
, i.e.
For Google Analytics v2:
com.your.package/com.google.analytics.tracking.android.CampaignTrackingReceiver
For Google Analytics v3:
com.your.package/com.google.android.apps.analytics.AnalyticsReceiver
For Google Analytics v4:
com.your.package/com.google.android.gms.analytics.CampaignTrackingReceiver
As Luigi said, you can also leave out the "-n"
componentname part, but then every app on your device will receive the referral. This can be a good extra test to see if your BroadcastReceiver
can be found properly.
The output I see (especially the last line is important):
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