Khái quát: AppsFlyer sử dụng thông báo đẩy ở chế độ không báo một lần một ngày để xác minh ứng dụng vẫn đang được cài đặt trên thiết bị của người dùng, và đếm sự kiện gỡ cài đặt xảy ra cho một ứng dụng cụ thể, phân bổ chúng vào một nguồn truyền thông cụ thể. AppsFlyer cung cấp dữ liệu thô về lượt gỡ cài đặt dưới dạng báo cáo có thể tải xuống, API Pull và Hộp khóa Dữ liệu.
Lợi ích của việc đo lượt Gỡ cài đặt
-
So sánh chất lượng của các nguồn truyền thông
Tỷ lệ lượt gỡ cài đặt là một phép đo, có thể giúp bạn so sánh chất lượng của người dùng bạn nhận được từ các nguồn truyền thông, chiến dịch, quảng cáo đơn lẻ hoặc quốc gia khác nhau. -
Bảo vệ quyền riêng tư người dùng
Nhiều nhà quảng cáo chạy chiến dịch thu hút lại để giữ chân người dùng. Tuy nhiên, việc này có thể mâu thuẫn với các điều khoản sử dụng của cửa hàng ứng dụng. Nếu đúng như vậy, hãy sử dụng dữ liệu lượt gỡ cài đặt để xóa trình gỡ cài đặt khỏi các đối tượng được nhắm lại mục tiêu.
Hệ điều hành
Việc hỗ trợ tính năng Đo lường Lượt gỡ cài đặt yêu cầu ứng dụng của bạn phải có ít nhiều cải tiến.
Dưới đây là hướng dẫn dành cho nhà phát triển dành cho:
Lời khuyên
Có bao nhiêu người dùng gỡ cài đặt ứng dụng và gỡ khi nào?
Nhận toàn bộ bảng phân tích danh mục/quốc gia tại đây.
Quan trọng
Starting May 29, 2019, Google removed the GCM server and client APIs. If you are integrating messaging in a new app, use FCM. If you use GCM, upgrade to FCM. After you upgrade to FCM follow the instructions in this article to set up uninstall measurement for Android.
Theo dõi tài liệu của Google để biết thêm:
Đo lường lượt Gỡ cài đặt Android
Đo lường lượt gỡ cài đặt bằng Firebase Messaging được hỗ trợ kể từ Android SDK phiên bản 4.7.0.
1. Lấy Khóa Máy chủ Firebase
- Tạo một dự án Ứng dụng Android Firebase (nếu bạn chưa tạo) hoặc di chuyển dự án của bạn từ Bảng điều khiển dành cho Nhà phát triển Google (theo hướng dẫn tại đó). Để biết thêm thông tin, hãy truy cập Firebase.
- Mở Bảng điều khiển Firebase.
- Trong trang Giao diện điều khiển Firebase, điều hướng tới Cài đặt Dự án (nhấp vào bánh răng kế bên Tổng quan ở ổ vuông bên trái của trang).
- Trong tab Cloud Messaging, bạn có thể thấy hai Mã khóa Máy chủ (xem ảnh chụp màn hình bên dưới):
- Sao chép Khóa máy chủ.
2. Nhập Khóa Máy chủ trên Bảng điều khiển AppsFlyer
- Truy cập bảng điều khiển của ứng dụng trên nền tảng AppsFlyer.
- Chọn Thiết lập Ứng dụng từ menu bên trái.
- Thiết lập Khóa Máy chủ Firebase với Khóa máy chủ bạn vừa sao chép.
3. Cấu hình Firebase-Messaging trên Ứng dụng của bạn
- Tải xuống google-services.json từ giao diện điều khiển Firebase.
- Thêm google-services.json vào thư mục mô-đun ứng dụng của bạn,
- Thêm quy tắc vào tệp tin build.gradle cấp độ root của bạn để bao gồm trình cắm google-services:
buildscript { // ... dependencies { // ... classpath 'com.google.gms:google-services:4.2.0' // google-services plugin } }
- Thêm thuộc tính phụ thuộc FCM vào build.gradle trong ứng dụng của bạn
dependencies { implementation 'com.google.firebase:firebase-messaging:17.3.4' } // ADD THIS AT THE BOTTOM apply plugin: 'com.google.gms.google-services
Có thể tải phiên bản Firebase mới nhất tại đây: Tài liệu chính thức của Firebase.
Nếu bạn nhận được lỗi "Không tìm được..", hãy bảo đảm rằng bạn đã có Google Repository mới nhất trong Trình quản lý Android SDK.
4. Triển khai Dịch vụ Đo lường lượt Gỡ cài đặt của AppsFlyer
Nếu một nhà phát triển tích hợp FCM cho mục đích duy nhất là đo lường lượt gỡ cài đặt với AppsFlyer, họ có thể tận dụng dịch vụ appsFlyer.FirebaseMessagingServiceListener đi kèm trong SDK của chúng tôi.
Việc này được thực hiện bằng cách thêm dịch vụ vào AndroidManifest.xml:
<application
<!-- ... -->
<service
android:name="com.appsflyer.FirebaseMessagingServiceListener">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<!-- ... -->
</application>
appsFlyer.FirebaseMessagingServiceListener mở rộng lớp <>FirebaseMessagingService của Firebase, được dùng để nhận mã Token thiết bị của Firebase.
import com.appsflyer.AppsFlyerLib;
import com.google.firebase.messaging.FirebaseMessagingService;
public class MyNewFirebaseManager extends FirebaseMessagingService {
@Override
public void onNewToken(String s) {
super.onNewToken(s);
// Sending new token to AppsFlyer
AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), s);
// the rest of the code that makes use of the token goes in this method as well
}
}
Dịch vụ nên được thêm vào AndroidManifest.xml để hoạt động: Nếu ứng dụng đang dùng FCM trước khi tích hợp AppsFlyer SDK, gần như chắc chắn là dịch vụ này đã được mở rộng và developer sẽ chỉ cần thêm dòng sau đây vào phương thức onNewToken()
:
AppsFlyerLib.getInstance().updateServerUninstallToken(getApplicationContext(), refreshedToken);
Ngoài ra, vui lòng đảm bảo rằng bạn đã thêm dịch vụ có liên quan vào AndroidManifest.xml:
<service
android:name=".MyNewFirebaseManager">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
Việc xử lý thông báo đẩy gỡ cài đặt Android không ở chế độ ẩn
Ghi đè phương thức onMessageReceured
của Firebase và thực hiện logic của riêng bạn trong đó có thể khiến thông báo đẩy gỡ cài đặt không ở chế độ ẩn. Điều này có thể ảnh hưởng đến trải nghiệm người dùng. Để ngăn điều đó, hãy kiểm tra xem thông báo có chứa af-uinstall-tracking
hay không. Xem ví dụ sau:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if(remoteMessage.getData().containsKey("af-uinstall-tracking")){
return;
} else {
// handleNotification(remoteMessage);
}
}
5. Sử dụng ProGuard với Đo lường lượt Gỡ cài đặt
Nếu bạn đang sử dụng ProGuard, hãy thêm quy tắc sau:
-dontwarn com.appsflyer.**
-keep public class com.google.firebase.messaging.FirebaseMessagingService {
public *;
}
6. Thử nghiệm Đo lường lượt Gỡ cài đặt cho Android
Số liệu Lượt gỡ cài đặt có sẵn trong Bảng điều khiển tổng quan.
Danh sách người dùng gỡ cài đặt ứng dụng có sẵn trong báo cáo dữ liệu thô về lượt gỡ cài đặt.
Để thử nghiệm đo lường lượt gỡ cài đặt trên Android:
- Cài đặt ứng dụng.
-
Gỡ cài đặt ứng dụng. Lưu ý! Bạn có thể gỡ cài đặt ứng dụng ngay sau khi cài đặt.
Sự kiện gỡ cài đặt đăng ký trong vòng 24 giờ vì quá trình đo lường lượt gỡ cài đặt được xử lý hàng ngày.
Nếu ứng dụng được cài đặt lại trong thời gian này - thì sẽ không có sự kiện gỡ cài đặt nào được ghi nhận.
Sự kiện gỡ cài đặt ứng dụng mất tới 48 giờ để hiển thị trong báo cáo dữ liệu thô và trong Báo cáo Hiệu suất Hợp nhất trong bảng điều khiển AppsFlyer của bạn.
Dù ứng dụng Android đang có trên Google Play, đang chờ gửi hoặc thậm chí không có trên cửa hàng - thì quy trình thử nghiệm đều giống nhau.
7. Tắt đo lường lượt gỡ cài đặt
Nếu bạn cung cấp Mã khóa Máy chủ GCM/Firebase, thì tính năng đo lường lượt gỡ cài đặt ứng dụng được bật theo mặc định. Chủ sở hữu ứng dụng có thể tắt tính năng này thông qua bảng điều khiển.
Chú ý! Để báo cáo lượt gỡ cài đặt, bạn cần bật tính năng Bật đo lường lượt gỡ cài đặt trong khi cài đặt ứng dụng. Các thiết bị đã Cài đặt ứng dụng trong khi tắt tính năng Bật đo lường lượt gỡ cài đặt sẽ không báo cáo việc gỡ cài đặt ứng dụng.
Để tắt đo lường lượt gỡ cài đặt:
- In AppsFlyer, go to App settings.
- Scroll to Attribution > Uninstalls and turn off Enable uninstall measurement.
Lưu ý
Dữ liệu sự kiện gỡ cài đặt của AppsFlyer iOS phụ thuộc vào Dịch vụ Thông báo Đẩy của Apple (APN). Do cân nhắc về quyền riêng tư nên APN chỉ báo cáo theo thời gian thực khi người dùng xóa ứng dụng nếu đã qua ít nhất tám ngày kể từ ngày cài đặt. Điều đó có nghĩa là dữ liệu lượt gỡ cài đặt trên iOS chỉ có sau ngày thứ 8.
Nhấn vào đây để tìm hiểu thêm.
Đo lường lượt Gỡ cài đặt iOS
Quan trọng!
Để sử dụng tính năng này, bạn phải có phiên bản SDK tối thiểu là 4.5.0 trở lên. Nếu muốn đo lường lượt gỡ cài đặt trên iOS 13 trở lên, bạn phải có SDK phiên bản tối thiểu 4.10.4 trở lên.
Tính năng này cũng yêu cầu chứng chỉ p12. Chứng chỉ p8 không được hỗ trợ.
Lưu ý
Đo lường lượt gỡ cài đặt không thực hiện được cho người dùng loại bỏ quyền truy cập Thông báo Đẩy.
1. Tìm ứng dụng của bạn
2. Nếu bạn chưa đăng ký ID ứng dụng, hãy nhấp vào biểu tượng + và hoàn thành biểu mẫu.
3. Đánh dấu chọn ô Thông báo đẩy.
4. Khi bạn mở rộng ứng dụng, có hai cài đặt cho thông báo đẩy với biểu tượng trạng thái màu vàng và xanh lá:
5. Nhấp vào Cài đặt để tiếp tục.
Lưu ý
Nút Cài đặt có thể được đặt là Chỉnh sửa nếu thông báo đẩy đã được cấu hình trước đó. Nếu nút Cài đặt/Chỉnh sửa không khả dụng, bạn có thể không phải là đại diện nhóm hoặc quản trị viên. Người ban đầu tạo ra tài khoản nhà phát triển là đại diện nhóm của bạn và họ thực hiện các bước còn lại trong phần này.
2. Tạo chứng chỉ của bạn
1. Chọn SSL dịch vụ Thông báo đẩy của Apple (Sandbox & Sản xuất) trong tùy chọn chứng chỉ Sản xuất. Nếu bạn đang dùng VoIP cho các thông báo đẩy, hãy chọn Chứng chỉ dịch vụ VoIP.
2. Nhấp vào Tạo chứng chỉ từ tùy chọn Chứng chỉ SSL Sản xuất .
3. Sau khi nhấp vào Tạo chứng chỉ, hãy lưu ý Thêm trợ lý chứng chỉ iOS. Làm theo các hướng dẫn trong trợ lý, sau đó nhấp vào Tiếp tục.
4. Sử dụng yêu cầu Ký tên Chứng chỉ vừa mới được tạo, tạo chứng chỉ SSL đẩy APNS.
5. Khi nút Tải về xuất hiện, bạn đã sẵn sàng để tải về. Bạn có thể cần phải tải lại trang để phần này cập nhật. Tải về chứng chỉ mới được tạo:
6. Mở chứng chỉ. Mở chứng chỉ sẽ mở Truy cập Chuỗi khóa.
Trong Truy cập Chuỗi khóa, chứng chỉ của bạn được hiển thị trong Chứng chỉ của tôi. Nếu không, hãy kiểm tra xem Chứng chỉ có ở đó không.
Lưu ý
Chỉ tài khoản quản trị viên mới có thể tải lên hoặc thay đổi chứng chỉ p12.
3. Gia hạn chứng chỉ của bạn
Nếu bạn gia hạn Chứng chỉ Push SSL Sản xuất hoặc Phát triển, hãy làm theo các bước được chỉ ra bên trên giống như khi tải chứng chỉ lên lần đầu tiên. Không cần thu hồi chứng chỉ trước đó để thực hiện thay đổi này. Có thể có hai chứng chỉ sản xuất cùng một lúc, cho phép bạn tiếp tục sử dụng chứng chỉ cũ trong khi tải lên chứng chỉ mới.
4. Xuất tập tin P12
Bước cuối cùng trước khi chuyển qua bảng điều khiển của AppsFlyer là lưu chứng chí ký tên thành một tệp tin .p12.
1. Chọn chứng chỉ vừa được thêm vào Truy cập Chuỗi khóa
2. Truy cập Tập tin > Xuất Khoản mục .
3. Chọn Chứng chỉ của tôi dưới menu Danh mục ở phía dưới cạnh bên trái.
Nếu Chứng chỉ của tôichưa được tô sáng, bạn không thể xuất chứng chỉ thành tệp tin .p12. build.gradle.
3. Khi lưu tệp tin, hãy dùng định dạng Trao đổi Thông tin Cá nhân (.p12) .
4. Bảo đảm rằng nội dung ghi Dịch vụ Đẩy của Apple và hiển thị như sau:
5. Truy cập bảng điều khiển của ứng dụng trên nền tảng AppsFlyer.
6. Chọn Cài đặt Ứng dụng ở menu bên trái.
7. Nhấp vào biểu tượng tải lên, chọn tập tin P12 để tải lên.
8. (tùy chọn) Nếu chứng chỉ P12 được bảo vệ bằng mật khẩu, hãy điền mật khẩu vào phần Mật khẩu chứng chỉ P12.
9. Nhấp vào Xác thực để gửi chứng chỉ tới AppsFlyer cho mục đích kiểm tra tính hợp lệ.
10. Nhấp vào Lưu cài đặt.
5. Tích hợp với SDK
Thông báo đẩy phải được đăng ký ở cấp độ mã nguồn của ứng dụng để bật thu thập dữ liệu gỡ cài đặt.
//add UserNotifications.framework
import UserNotifications
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
//...
// iOS 10 support
if #available(iOS 10, *) {
UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error) in }
application.registerForRemoteNotifications()
}
// iOS 9 and iOS 8 support
else if #available(iOS 8, *), #available(iOS 9, *) {
UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))
UIApplication.shared.registerForRemoteNotifications()
}
// iOS 7 support
else {
application.registerForRemoteNotifications(matching: [.badge, .sound, .alert])
}
return true
}
// Called when the application sucessfuly registers for push notifications
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
AppsFlyerTracker.shared().registerUninstall(deviceToken)
}
Thêm đoạn mã dưới đây vào AppDelegate.m của bạn:
- #import <UserNotifications/UserNotifications.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// The userNotificationTypes below is just an example and may be changed depending on the app
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error) {
}];
[[UIApplication sharedApplication] registerForRemoteNotifications];
// if you do not use push notificaiton in your app, uncomment the following line
//application.applicationIconBadgeNumber = 0;
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[[AppsFlyerTracker sharedTracker] registerUninstall:deviceToken];
}
}
Trong AppDelegate.h, chèn đoạn mã sau để thêm UNUserNotificationCenterDelegate vào khai báo giao diện:
#import <AppsFlyerLib/AppsFlyerTracker.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, AppsFlyerTrackerDelegate>
Đoạn mã ở trên yêu cầu quyền từ người dùng để gửi các thông báo đẩy. Tuy nhiên, nếu bạn chỉ dùng thông báo đẩy trong chế độ nền để đo lường lượt gỡ cài đặt thì không cần yêu cầu người dùng phê duyệt. Điều này là vì các thông báo đẩy này là các thông báo đẩy im lặng mà không bắt buộc bạn yêu cầu quyền từ người dùng.
Quyền của người dùng cho thông báo đẩy ở chế độ nền
Nếu bạn chỉ đang dùng thông báo đẩy im lặng, hãy đảm bảo bật Thông báo từ xa trong Chế độ nền trong Tính năng của ứng dụng:
- Trong XCode, hãy chọn dự án của bạn
- Chọn mục tiêu của bạn
- Đổi sang tab Tính năng
- Bật Chế độ nền
- Chọn Thông báo từ xa
6. Thông báo đẩy
Hãy chắc chắn rằng bạn đã thêm Thông báo đẩy trong tab năng lực XCode của bạn. Nếu không, deviceToken sẽ không được thu thập.
7. Thử nghiệm Gỡ cài đặt
Để thử nghiệm đo lường lượt gỡ cài đặt trên iOS:
- Cài đặt ứng dụng.
- Gỡ cài đặt ứng dụng. Lưu ý! Bạn có thể gỡ cài đặt ứng dụng ngay sau khi cài đặt.
Khi thử nghiệm lượt gỡ cài đặt từ Xcode hoặc TestFlight, điều quan trọng là phải cho SDK của chúng tôi biết rằng mã thông báo được tạo từ môi trường Sandbox. Sử dụng những API dưới đây:
AppsFlyerTracker.shared().useUninstallSandbox = true
[AppsFlyerTracker sharedTracker].useUninstallSandbox = true;
Lưu ý! Số lượt gỡ cài đặt không xuất hiện ngay trong bảng điều khiển AppsFlyer:
- Trung bình mất 9 ngày để lượt gỡ cài đặt xuất hiện trong báo cáo
- Có thể mất hơn một tháng để lượt gỡ cài đặt bắt nguồn từ môi trường sandbox xuất hiện trong báo cáo
Ngoài ra, ngày gỡ cài đặt là ngày lượt gỡ cài đặt được báo cáo. Xem phần tiếp theo để tìm hiểu thêm.
8. Xem Dữ liệu Gỡ cài đặt trong Bảng điều khiển AppsFlyer
Đo lường lượt gỡ cài đặt được hiển thị trên bảng điều khiển chính trong bảng Hoạt động Tổng hợp.
Do có thay đổi gần đây trong dịch vụ Thông báo Đẩy của Apple, thời gian cần gỡ cài đặt để xuất hiện trên bảng điều khiển là tối thiểu 9 ngày. AppsFlyer cập nhật và tổng hợp số liệu gỡ cài đặt sau mỗi 24 tiếng
Ví dụ
- Ngày 1 - người dùng cài đặt ứng dụng của bạn
- Ngày 4 - người dùng gỡ cài đặt ứng dụng của bạn
- Ngày 12 - Dịch vụ Thông báo Đẩy của Apple báo cáo sự kiện gỡ ứng dụng 8 ngày sau khi gỡ cài đặt
- Ngày 13 - Dữ liệu gỡ cài đặt xuất hiện trên bảng điều khiển và dữ liệu thô của AppsFlyer
Để biết thêm chi tiết, vui lòng tham khảo phần iOS Đo lường lượt Gỡ cài đặt Ứng dụng của Hướng dẫn Tích hợp SDK.
9. Tắt đo lường lượt gỡ cài đặt
Nếu chứng chỉ P12 được cung cấp và xác thực, tính năng đo lường lượt gỡ cài đặt ứng dụng được bật theo mặc định. Chủ sở hữu ứng dụng có thể tắt tính năng này thông qua bảng điều khiển.
Chú ý! Để báo cáo lượt gỡ cài đặt, bạn cần bật tính năng Bật đo lường lượt gỡ cài đặt trong khi cài đặt ứng dụng. Các thiết bị đã Cài đặt ứng dụng trong khi tắt tính năng Bật đo lường lượt gỡ cài đặt sẽ không báo cáo việc gỡ cài đặt ứng dụng.
Để tắt đo lường lượt gỡ cài đặt:
- In AppsFlyer, go to App settings.
- Scroll to Attribution > Uninstalls and turn off Enable uninstall measurement.
Gỡ cài đặt các Postback Sự kiện
AppsFlyer cho phép bạn gửi gỡ cài đặt postback sự kiện, cho mọi người dùng gỡ cài đặt đã biết, đến các đối tác bạn làm việc cùng. Sự kiện gỡ cài đặt được gọi là af_uninstall
trong bảng điều khiển của AppsFlyer.
Ánh xạ Sự kiện Gỡ cài đặt
Bạn có thể ánh xạ sự kiện af_uninstall
giống như ánh xạ bất kỳ sự kiện trong ứng dụng nào của ứng dụng của bạn.
Như với bất kỳ sự kiện trong ứng dụng nào, AppsFlyer chỉ có thể gửi postback nếu sự kiện thực sự xảy ra và được AppsFlyer ghi lại. Do đó,ánh xạ af_uninstall chỉ hoạt động khi việc thực hiện gỡ cài đặt được hoàn thành. Nếu bạn không thấy các lượt gỡ cài đặt trong trang tổng quan hoặc trong báo cáo dữ liệu thô lượt gỡ cài đặt, sẽ không có postback gỡ cài đặt nào được gửi cho đối tác, ngay cả khi bạn đã ánh xạ sự kiện af_uninstall
.
Tính thời gian af_uninstall
Không giống như đăng lại dành cho các sự kiện trong ứng dụng thông thường, sự kiện af_uninstall
không được gửi đi theo thời gian thực.
Trong dữ liệu thô của AppsFlyer và các đăng lại của đối tác, thời gian ghi lại sự kiện af_uninstall
là thời điểm AppsFlyer biết về sự kiện gỡ cài đặt.
- Đối với thiết bị Android: 24-48 giờ sau khi gỡ cài đặt ứng dụng thực tế
- Đối với thiết bị iOS: 9-11 ngày sau khi gỡ cài đặt ứng dụng thực tế
Điểm hạn chế
Các sự kiện af_uninstall không được đưa vào báo cáo postback sự kiện trong ứng dụng.
Sự kiện af_uninstall hiện không khả dụng cho tất cả các đối tác.
Nếu bạn muốn lập bản đồ với một đối tác, nhưng thấy sự kiện không khả dụng cho đối tác, hãy liên hệ với CSM của bạn hoặc viết thư tới hello@appsflyer.com.
Nếu bạn là đối tác và muốn nhận được các sự kiện af_uninstall, hãy liên hệ với PDM của bạn hoặc liên hệ với partners@appsflyer.com.