2010-11-04 56 views
64

Tôi đang cố gắng đăng ký Bộ thu phát để bắt "com.android.vending.INSTALL_REFERRER" ý định được khởi chạy bởi Android sau khi ứng dụng được cài đặt từ Market.Nhận liên kết giới thiệu sau khi cài đặt ứng dụng từ Android Market

tôi sau các chi tiết ở đây: http://code.google.com/mobile/analytics/docs/android/#referrals

Tuy nhiên, tôi không thể sử dụng Google Analytics vì vậy tôi đã tạo ra giải pháp của riêng tôi. Tôi đã thêm những điều sau đây để file manifest của tôi:

<receiver android:name="com.test.Receiver" android:exported="true"> 
<intent-filter> 
    <action android:name="com.android.vending.INSTALL_REFERRER" /> 
</intent-filter> 
</receiver> 

và tạo ra một lớp BroadcastReceiver cơ bản:

public class Receiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     Bundle extras = intent.getExtras(); 
     String referrerString = extras.getString("referrer"); 

     Log.w("TEST", "Referrer is: " + referrerString); 
    } 
} 

Tuy nhiên, khi ứng dụng được cài đặt người nhận dường như không bắt tiếp cận mục đích (nếu Intent thậm chí còn được phát sóng?) và tôi không nhận được kết quả ghi nhật ký.

Tôi có gặp sự cố ở đâu đó hoặc là Market không còn khởi chạy các Mục đích này khi ứng dụng được cài đặt không?

+1

Tôi đã trả lời câu hỏi tương tự tại đây http://stackoverflow.com/questions/3817030/get-android-google-analytics-referrer-tag/3945100#3945100 – DougW

+1

Điều đáng chú ý là, do lỗi trong phiên bản mới nhất của ứng dụng Android Market, chuỗi liên kết giới thiệu hiện không hoạt động. Bạn có thể gắn dấu sao lỗi tại đây để giúp thu hút sự chú ý của Google tới nó: http://code.google.com/p/android/issues/detail?id=19247 – plowman

+0

Có ai biết nếu có cách nào để nhận chương trình phát sóng này khi OTHER ứng dụng, bên cạnh tôi, đang được cài đặt? –

Trả lời

5

Được rồi vì vậy tôi đã tìm thấy lý do tại sao Mục đích không được khởi chạy. Rõ ràng bạn PHẢI sử dụng tên thông số tương tự như được nêu ở đây: http://code.google.com/mobile/analytics/docs/android/#referrals

Bạn không thể sử dụng tên thông số của riêng bạn như tôi đã thực hiện: S

+0

u có thể giúp tôi trong câu hỏi của tôi http: // stackoverflow hay không.com/questions/10431018/how-to-get-referrer-using-google-track-in-android – Khan

+0

Liên kết được cập nhật https://developers.google.com/analytics/devguides/collection/android/devguide#google-play- theo dõi – eveliotc

+0

@Jake \t Bạn có thể cho tôi biết thông số nào không? Trên thực tế, tôi có cùng vấn đề như bạn –

45

tôi sẽ cố gắng để giúp người, như tôi, không thực hiện công việc install_referrer và không tìm thấy bất kỳ thông tin hữu ích nào về các tính năng này.

Ghi chú:

  1. Mục đích com.android.vending.INSTALL_REFERRER sẽ bị bắt trong quá trình cài đặt, không phải khi ứng dụng khởi động lần đầu tiên .
  2. Các giới thiệu ... extras.getString("referrer") .. là cố định nhưng nội dung có thể được bất kỳ giá trị chuỗi tôn trọng http được cú pháp ... referrer=thatsthevalue&thisisnot=xxx

Đoạn mã trên là ổn, chỉ cần một số giải thích để hoàn thành các thông tin :

  1. Tệp kê khai Android. Thẻ <receiver> phải nằm trong các thẻ <application>.
  2. Url đúng để liên kết thị trường không phải là kết quả của các hình thức google nổi tiếng trong sdk

nhưng điều này một

http://market.android.com/details?id=your.application.package.name&referrer=my_referrer_finally_works_fine

Rõ ràng, bạn cần làm theo các liên kết từ điện thoại di động thiết bị và cách duy nhất để kiểm tra hoàn chỉnh là xuất bản ứng dụng thử nghiệm trên thị trường.

Và ghi chú cuối cùng và cá nhân.

Tôi không hiểu tại sao những thông tin đó bị bỏ qua hoàn toàn và tôi hy vọng rằng Google sẽ hành động để nêu chi tiết.

+2

Để kiểm tra, hãy xem câu trả lời này: http://stackoverflow.com/questions/5890914/how-to-test-android-referral-tracking/6966718#6966718 – emmby

+1

INSTALL_REFERRER hoạt động như được ghi lại và có không có gì sai với các URL được tạo bởi "biểu mẫu google nổi tiếng" vì chúng được thiết kế bởi GA SDK. Mã của bạn chỉ hoạt động nếu bạn có kế hoạch đăng lên GA theo cách thủ công hoặc tích hợp với một nền tảng phân tích khác. Xem liên kết ở trên nếu bạn muốn bắt liên kết giới thiệu và vẫn sử dụng GA SDK. –

+0

_the ' 'thẻ phải nằm trong thẻ' '. Điều này không được giải thích trong hướng dẫn phát triển SDK phân tích, cũng như việc biên soạn không thành công nếu bạn làm điều đó theo cách khác. Vì vậy, cảm ơn bạn Tobia! –

2

Tôi đồng ý rằng tài liệu của Google không phải là tài liệu tốt nhất.Tuy nhiên, tôi chỉ có thể có ý định kích hoạt bằng cách tải ứng dụng lên Market Place và sau đó tải xuống/cài đặt nó. Mục đích khởi chạy ngay sau khi tải xuống/cài đặt - người dùng không phải khởi động ứng dụng. Tôi đang sử dụng điều này để bắt đầu một dịch vụ nền là tốt.

+0

Bạn có thể chỉ định phiên bản Android nào bạn đã có thể đạt được điều này? Hiện hành vi này vẫn giữ cho 2.3.3 & ICS (4.0)? – rycfung

1

Thực tế có thể có bất kỳ liên kết nào như thị trường: // ... hoặc http: // market ... hoặc hoạt động tốt. Cũng không quan trọng loại thông số nào sẽ nằm trong trường liên kết giới thiệu. Nó hoạt động tốt với bất kỳ văn bản trong đó.

Vấn đề chính là loại sự kiện này "com.android.vending.INSTALL_REFERRER" không gửi bằng phát sóng. Sự kiện này CHỈ đi vào ứng dụng vừa được cài đặt.

UPD: Và chỉ có một cách để kiểm tra nó - triển khai ứng dụng của bạn vào Market và sau đó cài đặt nó trên điện thoại.

+0

Tôi tin rằng INSTALL_REFERRER không hoạt động đối với giao thức http. Ít nhất, không còn nữa nếu nó đã làm trước đó. Tham khảo tài liệu này và lưu ý điểm số 2 theo các vấn đề đã biết: https://developers.google.com/analytics/devguides/collection/android/v2/campaigns#known-issues – rycfung

+0

@rycfung Tôi nghĩ điều đó chỉ có nghĩa là sẽ không hoạt động khi bạn nhấp vào "cài đặt" từ web, không phải nếu bạn mở ứng dụng cửa hàng Play từ liên kết web –

2

Hãy lưu ý rằng đây không phải là ý định bắt đầu đầu tiên nhưng chỉ có ý định liên quan đến thị trường Android được gửi cho thị trường google android của tôi. Nếu bạn cài đặt ứng dụng thông qua một nguồn tài nguyên khác với thị trường Android, nó sẽ không kích hoạt.

Sử dụng các liên kết mà bạn có thể xây dựng ở đó: http://code.google.com/mobile/analytics/docs/android/#android-market-tracking được giới thiệu từ mục đích và mang nó ngoài để có được các thông số khác nhau

referrer = intent.getStringExtra("referrer"); 
Map<String, String> params = Toolbox.getQueryMap(referrer); 

T.B. Bạn không cần phải đọc để đọc deviceid/IMEI để làm điều này, như một số ứng dụng làm. Bạn không nên muốn theo dõi người dùng của mình.

5

Tôi nghĩ rằng các câu trả lời này phải được viết trước Android 3.1 - bởi vì mọi thứ đã thay đổi theo một cách nhập.

Hệ thống hiện đánh dấu ứng dụng là không hoạt động khi chúng được cài đặt - chúng sẽ không nhận được INSTALL_REFERRER hoặc bất kỳ chương trình phát sóng nào khác cho đến khi người dùng kích hoạt rõ ràng ứng dụng bằng cách chạy ứng dụng đó (hoặc đặt tiện ích con).

+0

Bất kỳ tài liệu nào để hỗ trợ điều này? Tôi vẫn không nhìn thấy bất kỳ chương trình phát sóng nào được gửi trước/sau khi tôi khởi chạy ứng dụng đã cài đặt của mình mặc dù mở Cửa hàng Play với thông số tham chiếu – rycfung

+0

Tom, tôi nghĩ nó hoạt động và đã thử nghiệm trong 4.x. Kể từ khi Android 3.1 Khởi chạy các điều khiển trên các ứng dụng đã dừng đã được giới thiệu. [http://developer.android.com/about/versions/android-3.1.html](http://developer.android.com/about/versions/android-3.1.html) Lưu ý rằng hệ thống sẽ thêm FLAG_EXCLUDE_STOPPED_PACKAGES vào tất cả phát sóng intents.However Một dịch vụ nền hoặc ứng dụng có thể ghi đè lên hành vi này bằng cách thêm cờ FLAG_INCLUDE_STOPPED_PACKAGES để phát sóng ý định được phép kích hoạt các ứng dụng đã dừng. Hy vọng điều này có thể hữu ích. – androidyue

16

Đây có thể là muộn một chút, nhưng bạn có thể kiểm tra giới thiệu cài đặt mà không cần sử dụng Google Play, chỉ cần sử dụng ADB :)

Run này từ adb.exe

adb shell 

am broadcast -a com.android.vending.INSTALL_REFERRER -n your.package/path.to.your.BroadcastReceiver --es "referrer" "test_referrer=test" 

Nếu bạn đã đăng nhập thiết lập trong BroadcastReceiver của bạn, bạn sẽ thấy nó bật lên trong LogCat.

Hy vọng điều này sẽ hữu ích!

+5

trên cặp giá trị khóa OS X của tùy chọn -e không cần phải kèm theo mã kép. Vì vậy, lệnh trên sẽ là: 'adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n your.package/path.to.your.BroadcastReceiver --es referrer test_referrer = test' –

Các vấn đề liên quan