Làm thế nào để kiểm tra theo dõi giới thiệu Android?


100

Tôi đang triển khai một số mã để thực hiện theo dõi giới thiệu của riêng mình đối với các lượt tải xuống từ thị trường Android.

Xem theo dõi giới thiệu Android không hoạt động để biết ứng dụng của tôi đang làm gì.

Làm cách nào để kiểm tra xem mã này có hoạt động không trước khi triển khai ra công chúng?


Câu trả lời:


258

Cách dễ nhất là sử dụng adb. Bạn không phải viết bất kỳ mã nào.

Chỉ cần chạy trong một thiết bị đầu cuối :

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"

Đây là dòng chính xác của tôi:

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"

Nhưng bạn BroadcastReceivercó thể cần phải AnalyticsReceiver

Đối với Google Analytics v2:

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

Đối với Google Analytics v3:

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

Đối với Google Analytics v4:

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

Như Luigi đã nói, bạn cũng có thể bỏ đi "-n"phần tên thành phần, nhưng sau đó mọi ứng dụng trên thiết bị của bạn sẽ nhận được giới thiệu. Đây có thể là một bài kiểm tra bổ sung tốt để xem liệu bạn BroadcastReceivercó thể được tìm thấy đúng cách hay không.

Đầu ra tôi thấy (đặc biệt là dòng cuối cùng rất quan trọng):

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
Nếu bạn sử dụng một lớp bên trong tĩnh làm BroadCastReceiver, bạn phải thoát khỏi ký hiệu đô la. Trong trường hợp của tôi, tôi phải bỏ dấu chấm trước đường dẫn đến BroadCastReceiver. "sáng phát sóng -a com.android.vending.INSTALL_REFERRER -n app.test / app.util.AndroidUtil \ $ TestBroadCastReceiver"
Geert Weening

5
Sau nhiều lần thử và sai, tôi nhận thấy rằng nếu Bộ nhận của bạn nằm trong thư viện, bạn cần phải bỏ qua. sau / - vì vậy, ví dụ sẽ giống như sau: adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n <your.package> / <full.path.in.library.up.until.your.BroadcastReceiver> --es "người giới thiệu" "utm_source = test_source & utm_medium = test_medium & utm_term = test_term & utm_content = test_content & utm_campaign = test_name"
bkurzius

2
+1 cho adb shell <enter> am broadcast... Tôi gõ adb shell am broadcast...nhầm và nó không xuất ra bất cứ thứ gì.
anticafe

1
Một lưu ý quan trọng là tất cả các dấu và (&) bên trong chuỗi liên kết giới thiệu phải được bắt đầu bằng dấu lùi (), nếu không chuỗi sẽ bị kết thúc ở dấu và đầu tiên và sẽ không đến được bộ thu phát sóng. (dẫn đến chỉ nhận được cặp đầu tiên trong trường hợp này "utm_source = utm_test")
Nati Dykstein

2
"Nhưng BroadcastReceiver của bạn có thể cần phải là AnalyticsReceiver" ý bạn là gì? Có gì Nếu tôi wantto có reciever tùy chỉnh của riêng tôi
Utsav Gupta

18

Không! bạn có một số cách để kiểm tra nó. Gửi chương trình phát sóng theo cách thủ công với ý định của biểu mẫu này

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

Đây có phải là ứng dụng của riêng bạn không?
JRun

1
nó là ứng dụng của tôi và là mã nguồn mở nên nó không phải là giống như tôi đang cố gắng để bán nó github.com/giago/referraltester
Luigi Agosti

2
Vì vậy, hãy đưa nó lên cửa hàng chơi miễn phí :-)
JRun

14
bạn có thể tải về mã và triển khai nó trên điện thoại của bạn ... nếu bạn là lười biếng bạn phải trả, tôi nghĩ là công bằng đủ
Luigi Agosti

2
Đã cho bạn +1. Quá lười để xây dựng một dự án khác nhưng vẫn cho bạn +1 vì đã tìm ra nó. :-)
JRun

10

Không có lệnh nào ở trên phù hợp với tôi. Sau khi thử rất nhiều tổ hợp lệnh, đây là tổ hợp lệnh phù hợp với tôi:

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

Lưu ý: liên kết giới thiệu phải được mã hóa url.


Tôi nhận được "không được đặt" làm phương tiện, giá trị chiến dịch trong bảng điều khiển phân tích. Chỉ tên nguồn được hiển thị. Bạn có thể tìm ra vấn đề có thể là gì không?
KP_


4

câu trả lời của pjv hoạt động trong trường hợp tên gói trong AndroidManifest.xml khớp với applicationId trong build.gradle. Nếu chúng không khớp, hãy thực hiện như sau:
Given:
applicationId is com.my.app.debug
package is com.package.app
receiver, path.to.MyReceiver
sau đó được phát tới com.my.app.debug/com.package.app.path.to.MyReceiver
Chi tiết tại đây: https://groups.google.com/forum/#!topic/adt-dev/PjTHX79Iomw



0

Đối với tôi, các tính năng bổ sung chỉ được thêm vào ý định khi thêm với "-e" thay vì "--es". Có thể là vấn đề phiên bản quảng cáo của tôi. Vì vậy, lệnh của tôi là ./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 nhận được một liên kết APP và yêu cầu người dùng nhấp để tải xuống và Google Play sẽ gửi một chương trình phát sóng khi quá trình tải xuống hoàn tất. Liên kết APP thường sẽ lấy một số tham số (chẳng hạn như ví dụ sau) để cho Google Play và APP biết nguồn đến từ đâu.

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

Vì vậy, chúng tôi có thể sử dụng adb để mô phỏng chương trình phát sóng từ 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.