Bagaimana cara menguji pelacakan rujukan android?

Jawaban:

258

Cara termudah adalah menggunakan adb. Anda tidak perlu menulis kode apa pun.

Jalankan saja di 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"

Inilah baris persis saya:

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"

Tapi Anda BroadcastReceivermungkin perlu menjadi AnalyticsReceiver, yaitu

Untuk Google Analytics v2:

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

Untuk Google Analytics v3:

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

Untuk Google Analytics v4:

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

Seperti yang dikatakan Luigi, Anda juga dapat meninggalkan "-n"bagian nama komponen, tetapi kemudian setiap aplikasi di perangkat Anda akan menerima rujukan. Ini bisa menjadi ujian tambahan yang bagus untuk melihat apakah Anda BroadcastReceiverdapat ditemukan dengan benar.

Output yang saya lihat (terutama baris terakhir itu penting):

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
pjv
sumber
1
Jika Anda menggunakan kelas dalam statis sebagai BroadCastReceiver, Anda harus keluar dari tanda dolar. Dalam kasus saya, saya harus meninggalkan titik sebelum jalur ke BroadCastReceiver. "am broadcast -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Geert Weening
5
Setelah banyak percobaan dan kesalahan, saya menemukan bahwa jika Penerima Anda ada di perpustakaan, Anda perlu menghilangkan. setelah / - jadi contohnya akan terlihat seperti ini: 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 untuk adb shell <enter> am broadcast... Saya mengetik adb shell am broadcast...karena kesalahan dan tidak menghasilkan apa-apa.
anticafe
1
Catatan penting adalah bahwa semua ampersand (&) di dalam string perujuk harus diawali dengan backspace () atau string akan diakhiri pada ampersand pertama dan tidak akan mencapai penerima siaran. (menghasilkan hanya mendapatkan pasangan pertama dalam kasus ini "utm_source = utm_test")
Nati Dykstein
2
"Tapi BroadcastReceiver Anda mungkin perlu menjadi AnalyticsReceiver" apa yang Anda maksud dengan itu? Bagaimana Jika saya ingin memiliki penerima kustom saya sendiri
Utsav Gupta
18

Tidak! Anda memiliki beberapa cara untuk mengujinya Mengirim siaran secara manual dengan maksud dari formulir ini

    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);
Luigi Agosti
sumber
Apakah ini aplikasi Anda sendiri?
JRun
1
ini adalah aplikasi saya dan open source, jadi tidak seperti saya mencoba menjualnya github.com/giago/referraltester
Luigi Agosti
2
Jadi taruh di play store gratis :-)
JRun
14
Anda dapat mengunduh kode dan menerapkannya di ponsel Anda ... jika Anda malas Anda membayar, menurut saya cukup adil
Luigi Agosti
2
Memberi Anda +1. Terlalu malas untuk membuat proyek lain tetapi tetap memberi Anda +1 untuk menyelesaikannya. :-)
JRun
10

Tidak satu pun dari perintah di atas yang berfungsi untuk saya. Setelah mencoba banyak kombinasi perintah, inilah salah satu yang berhasil untuk saya:

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

Catatan: perujuk harus dienkode url.

Pablo
sumber
Saya mendapatkan "tidak ditetapkan" sebagai media, nilai kampanye di dasbor analytics. Hanya nama sumber yang ditampilkan. Dapatkah Anda mencari tahu apa masalahnya?
KP_
4

Menemukan alat sumber terbuka yang bagus yang memungkinkan Anda memindai kode qr rujukan yang Anda buat di sini , dan alat ini mengirimkan maksud siaran dengan semua informasi yang benar.

https://github.com/giago/referraltester

Gyuri
sumber
4

Jawaban pjv berfungsi jika nama paket di AndroidManifest.xml cocok dengan applicationId di build.gradle. Jika tidak cocok, lakukan hal berikut:
Mengingat:
applicationId adalah com.my.app.debug
paket com.package.app
penerima, path.to.MyReceiver
lalu disiarkan ke com.my.app.debug/com.package.app.path.to.MyReceiver
Detail di sini: https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw

AtomicBoolean
sumber
0

Bagi saya ekstra ditambahkan ke maksud hanya saat menambahkan dengan "-e" bukan "--es". Mungkin masalah versi iklan saya. Jadi perintah saya adalah ./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"

Sojan PR
sumber
0

Goople Play menerima tautan APP dan meminta pengguna mengeklik untuk mengunduh, dan Google Play mengirimkan siaran saat unduhan selesai. Tautan APP biasanya akan mengambil beberapa parameter (seperti contoh berikut) untuk memberi tahu Google Play dan APP dari mana sumber itu berasal.

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

Jadi kita bisa menggunakan adb untuk mensimulasikan siaran dari 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
WeiYuan
sumber