Android yönlendirme takibi nasıl test edilir?


Yanıtlar:


258

En kolay yol kullanmaktır adb. Herhangi bir kod yazmanıza gerek yok.

Sadece bir terminalde çalıştırın :

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"

İşte tam satırım:

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"

Ancak , ie BroadcastReceiverolmanız gerekebilirAnalyticsReceiver

Google Analytics v2 için:

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

Google Analytics v3 için:

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

Google Analytics v4 için:

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

Luigi'nin dediği gibi, "-n"bileşen adı kısmını da atlayabilirsiniz , ancak daha sonra cihazınızdaki her uygulama yönlendirmeyi alır. Bu, BroadcastReceiverdoğru şekilde bulunup bulunmadığını görmek için iyi bir ekstra test olabilir.

Gördüğüm çıktı (özellikle son satır önemlidir):

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 olarak statik bir iç sınıf kullanıyorsanız, dolar işaretinden kaçmanız gerekir. Benim durumumda, BroadCastReceiver'a giden yolun önündeki noktayı atlamak zorunda kaldım. "yayınlıyorum -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Geert Weening

5
Çok sayıda deneme yanılmadan sonra, Alıcınız bir kitaplıktaysa,. / - sonrasında örnek şu şekilde görünür: adb shell am yayın -a com.android.vending.INSTALL_REFERRER -n <paketiniz> / <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

2
+1 adb shell <enter> am broadcast... adb shell am broadcast...Yanlışlıkla yazıyorum ve hiçbir çıktı vermiyor.
anticafe

1
Önemli bir not, yönlendiren dizesindeki tüm ve işaretlerinin (&) önekinin backspace () ile eklenmesi gerektiğidir, aksi takdirde dizi ilk ve işaretinde sonlandırılacak ve yayın alıcısına ulaşmayacaktır. (bu durumda yalnızca ilk çifti elde etmekle sonuçlanır "utm_source = utm_test")
Nati Dykstein

2
"Ama BroadcastReceiver'ınızın AnalyticsReceiver olması gerekebilir" bununla ne demek istiyorsunuz? Kendi özel alıcıma sahip olmak istersem
Utsav Gupta

18

Hayır! test etmenin birkaç yolu var Bu formun amacı ile manuel olarak yayın gönderin

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

Bu kendi uygulamanız mı?
JRun

1
bu benim uygulamam ve açık kaynaklı, bu yüzden satmaya çalışmıyorum github.com/giago/referraltester
Luigi Agosti

2
Bu yüzden ücretsiz olarak oyun mağazasına koyun :-)
JRun

14
kodu indirebilir ve telefonunuza yerleştirebilirsiniz ... tembel iseniz ödeme yaparsınız, bence yeterince adil
Luigi Agosti 18'13

2
Size +1 verdi. Başka bir proje inşa etmek için çok tembelim ama yine de bunu çözdüğünüz için +1 verdi. :-)
JRun

10

Yukarıdaki komutların hiçbiri benim için çalışmıyor. Bir çok komut kombinasyonunu denedikten sonra işte benim için işe yarayan:

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

Not: yönlendiren URL kodlu olmalıdır.


Aracı olarak "ayarlanmadı" alıyorum, analiz panosunda kampanya değeri. Yalnızca kaynak adı görüntüleniyor. Sorunun ne olabileceğini anlayabilir misiniz?
KP_


4

pjv'nin yanıtı, AndroidManifest.xml'deki paket adının build.gradle'daki applicationId ile eşleştiği durumda işe yarar. Eşleşmiyorlarsa, aşağıdakileri yapın:
Verilen:
applicationId is com.my.app.debug
package is package com.package.app
daha path.to.MyReceiver
sonra com.my.app.debug/com.package.app.path.to.MyReceiver
Details'e buradan yayınlanır : https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw



0

Benim için ekstralar sadece "--es" yerine "-e" ile eklerken amaca eklendi. Reklam sürümü sorunum olabilir. Bu yüzden benim emrim ./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 bir APP bağlantısı alır ve kullanıcıdan indirmek için tıklamasını ister ve Google Play, indirme işlemi tamamlandığında bir yayın gönderir. APP bağlantısı, Google Play ve APP'nin kaynağın nereden geldiğini bilmesini sağlamak için genellikle bazı parametreleri (aşağıdaki örnek gibi) alır.

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

Böylece Google Play'den yayını simüle etmek için adb kullanabiliriz.

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.