एंड्रॉइड रेफरल ट्रैकिंग का परीक्षण कैसे करें?


100

मैं एंड्रॉइड मार्केट से डाउनलोड पर अपनी खुद की रेफरल ट्रैकिंग करने के लिए कुछ कोड लागू कर रहा हूं।

देखें कि एंड्रॉइड रेफरल ट्रैकिंग मेरा ऐप क्या कर रहा है, इस विचार के लिए काम नहीं करता है।

अगर यह कोड जनता के लिए काम करने से पहले काम कर रहा है तो मैं कैसे परीक्षण कर सकता हूं?


जवाबों:


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
यदि आप एक ब्रॉडकास्टरीवर के रूप में एक स्थिर आंतरिक वर्ग का उपयोग करते हैं तो आपको डॉलर के चिह्न से बचना होगा। मेरे मामले में मुझे ब्रॉडकास्टरीसेवर तक के रास्ते से पहले डॉट को छोड़ना पड़ा। "am ब्रॉडकास्ट -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Geert Weening

5
बहुत सारे परीक्षण और त्रुटि के बाद मैंने पाया कि यदि आपका रिसीवर एक पुस्तकालय में है, तो आपको इसे छोड़ना होगा। के बाद / - तो उदाहरण इस तरह दिखेगा: adb shell am ब्रॉडकास्ट -aroid.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_centaign = test_name"
bkurzius

2
के लिए +1 adb shell <enter> am broadcast..। मैं adb shell am broadcast...गलती से टाइप करता हूं और यह कुछ भी आउटपुट नहीं करता है।
एंटीसाइफक

1
एक महत्वपूर्ण नोट यह है कि रेफ़रर स्ट्रिंग के अंदर सभी एम्परसेंड्स (और) बैकस्पेस () के साथ उपसर्ग किए जाने चाहिए या फिर पहले एम्पर्सैंड में स्ट्रिंग को समाप्त कर दिया जाएगा और प्रसारण रिसीवर तक नहीं पहुंचेगा। (इस मामले में केवल पहली जोड़ी प्राप्त करने के परिणामस्वरूप "utm_source = utm_test")
नाटी डायकस्टीन

2
"लेकिन आपके ब्रॉडकास्टसीवर को 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
Luigi Agosti

2
तो इसे खेलने के लिए मुफ्त में स्टोर करें :-)
JRun

14
आप कोड डाउनलोड कर सकते हैं और इसे अपने फोन पर तैनात कर सकते हैं ... यदि आप आलसी हैं तो आप भुगतान करते हैं, मुझे लगता है कि यह काफी उचित है
लुइगी अगोस्ती

2
आपको एक + 1.Too आलसी दिया, लेकिन एक और प्रोजेक्ट बनाने के लिए लेकिन फिर भी आपने इसे तैयार करने के लिए +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 इनकोडेड होना चाहिए।


मैं एनालिटिक्स डैशबोर्ड में मध्यम, अभियान मूल्य के रूप में "सेट नहीं" कर रहा हूं। केवल स्रोत का नाम प्रदर्शित किया गया है। क्या आपको पता चल सकता है कि समस्या क्या हो सकती है?
केपी_

4

एक अच्छा ओपन-सोर्स टूल मिला , जो आपको यहां पैदा होने वाले रेफरल क्वैड को स्कैन करने देता है , और यह सभी सही जानकारी के साथ एक प्रसारण आशय भेजता है।

https://github.com/giago/referraltester


4

pjv का उत्तर उस स्थिति में काम करता है जहां AndroidManifest.xml में पैकेज का नाम build.gradle में applicationId से मेल खाता है। यदि वे मेल नहीं खाते, निम्न कार्य करें:
यह देखते हुए:
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

मेरे लिए एक्सट्रैस ने केवल "-ईस" के बजाय "-ई" के साथ जोड़ने के इरादे को जोड़ा। मेरा विज्ञापन संस्करण समस्या हो सकती है। तो मेरी आज्ञा है ./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 एक एपीपी लिंक प्राप्त करता है और उपयोगकर्ता को डाउनलोड करने के लिए क्लिक करने के लिए कहता है, और डाउनलोड पूरा होने पर Google Play एक प्रसारण भेजता है। एपीपी लिंक आमतौर पर 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

इसलिए हम Google Play से प्रसारण को अनुकरण करने के लिए adb का उपयोग कर सकते हैं।

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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.