Khái quát: Đo lường chất lượng của người dùng trong suốt hành trình người dùng của họ bằng cách ghi nhận các sự kiện trong ứng dụng được đề xuất này cho ứng dụng viễn thông của bạn.
Viễn thông
Các ứng dụng viễn thông cho phép người dùng mua và quản lý các gói đăng ký điện thoại di động, gói dữ liệu và nhiều chức năng khác. Các sự kiện tiêu biểu mà chúng tôi đề xuất ghi nhận bao gồm mua hàng, nạp tiền và đăng ký.
Việc ghi lại các sự kiện này có thể giúp bạn xác định:
- Gói cổng mạng nào phổ biến nhất
- Những sản phẩm hoặc gói nào mà người dùng có thể mua được
- Những gói nào có nhiều khả năng nhận được cam kết lâu dài từ khách hàng
Để biết thêm thông tin về cách ghi lại các sự kiện trong ứng dụng, hãy xem Hướng dẫn sự kiện phong phú trong ứng dụng.
Cấu trúc đề xuất cho các sự kiện đã xác định trước
Phần sau đây cung cấp danh sách các cấu trúc sự kiện tiêu biểu cho ngành viễn thông. Mỗi cấu trúc bao gồm một tên sự kiện đã xác định trước và các thông số sự kiện được đề xuất sử dụng. Lưu ý rằng sự kiện trong ứng dụng có thể bao gồm bất kỳ thông số sự kiện nào đáp ứng nhu cầu kinh doanh của bạn
Đăng nhập (af_login)
Mục đích
Hiểu được việc giữ chân người dùng đã đăng ký của bạn
Kích hoạt
Mỗi khi người dùng đăng nhập thành công
Thông số sự kiện
Có thể được gửi mà không cần bất kỳ thông số bổ sung nào
Ví dụ
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
Hoàn tất đăng ký (af_complete_registration)
Mục đích
Tìm hiểu số lượng người dùng đã cài đặt ứng dụng và hoàn tất quá trình đăng ký, cùng phương pháp đăng ký nào mà người dùng của bạn thích
Kích hoạt
Thời điểm người dùng hoàn tất quá trình đăng ký
Thông số sự kiện
Tên | Mô tả | Giá trị mẫu |
---|---|---|
af_registration_method | Loại phương thức đăng ký | email, facebook |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REGISTRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompleteRegistrationEvent);
Khung hiển thị nội dung (af_content_view)
Mục đích
Xác định tỷ lệ xem các sản phẩm cụ thể và:
- Liên hệ lượt xem sản phẩm với doanh số bán sản phẩm.
- Hiểu danh mục nào là phổ biến nhất theo lượt xem sản phẩm.
- Xem mối tương quan giữa đơn vị tiền tệ của người mua và các sản phẩm mà họ xem
Kích hoạt
Thời điểm người dùng xem trang chi tiết của một sản phẩm cụ thể
Thông số sự kiện
Tên | Mô tả | Giá trị mẫu |
---|---|---|
af_price | Giá sản phẩm | 200 |
af_content_id | ID sản phẩm | 102 |
af_content_type | Danh mục sản phẩm | Gói Internet |
af_currency | Đơn vị tiền tệ trong trang chi tiết của sản phẩm | THB, USD |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 200);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "102";
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Internet packages");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamPrice: @200,
AFEventParamContentId: @"102",
AFEventParamContentType: @"Internet packages",
AFEventParamCurrency: @"USD"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView,
withValues: [
AFEventParamPrice: 200,
AFEventParamContentId: "102",
AFEventParamContentType: "Internet packages",
AFEventParamCurrency: "USD"
]);
Dictionary<string, string> ContentViewEvent = new Dictionary<string, string>();
ContentViewEvent.Add("af_price", "200");
ContentViewEvent.Add("af_content_type", "Internet packages");
ContentViewEvent.Add("af_currency", "USD");
AppsFlyer.sendEvent("af_content_view", ContentViewEvent);
Xem danh sách (af_list_view)
Mục đích
Ghi nhận danh sách nào (ví dụ: sản phẩm mới được thêm vào, sản phẩm có liên quan hoặc sản phẩm được đề xuất) mà người mua xem nhiều nhất.
Kích hoạt
Thời điểm người dùng xem một danh sách cụ thể
Thông số sự kiện
Tên | Mô tả | Giá trị mẫu |
---|---|---|
af_content_type | Loại danh sách | Related, recommended, new arrivals |
af_content_list | Danh sách ID nội dung từ danh mục | 001, 092 |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "related products");
eventValue.put(AFInAppEventParameterName.CONTENT_LIST, new String[] {"001", "092"});
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_list_view", eventValue);
[[AppsFlyerLib shared] logEvent:AFEventListView
withValues: @{
AFEventParamContentType: @"related products",
AFEventParamContentList: @[@"001", @"092"]
}];
AppsFlyerLib.shared().logEvent(AFEventListView,
>withValues: [
AFEventParamContentType: "related products",
AFEventParamContentList: ["001", "092"]
]);
Dictionary<string, string> ListViewEvent = new Dictionary<string, string>();
ListViewEvent.Add("af_content_type", "related products");
ListViewEvent.Add("af_content_list", "['001', '092']");
AppsFlyer.sendEvent("af_list_view", ListViewEvent);
Mua hàng (af_purchase)
Mục đích
Nhiều ứng dụng viễn thông cho phép người dùng mua các mục hàng như dữ liệu bổ sung. Ghi nhận sự kiện này có thể giúp bạn:
- Xác định LTV của người dùng và ROI của các chiến dịch của bạn trên các mạng quảng cáo và các đại lý quảng cáo
- Xác định những ưu đãi nào được người dùng chọn nhiều nhất
- Chiến dịch tham chiếu chéo với các mặt hàng đã mua để tối ưu hóa nhắm mục tiêu chiến dịch
Kích hoạt
Thời điểm người dùng truy cập trang cảm ơn sau khi mua hàng thành công
Thông số sự kiện
Tên | Mô tả | Giá trị mẫu |
---|---|---|
af_revenue | Doanh thu ước tính từ giao dịch mua | 2000 |
af_currency | Mã tiền tệ | THB |
af_content_type | Tên của gói đã mua | 5G |
af_order_id | ID đặt xe | 9277 |
payment_method_type | Loại phương thức thanh toán | thẻ tín dụng, thanh toán nội địa |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 2000);
eventValue.put(AFInAppEventParameterName.CURRENCY, "THB");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "5G");
eventValue.put("AFInAppEventParameterName.ORDER_ID", "9277");
eventValue.put("payment_method_type", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @2000,
AFEventParamCurrency: @"THB",
AFEventParamContentType: @"5G",
AFEventParamContentTypeOrderId: @"9277",
@"payment_method_type": @"credit_card"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 2000,
AFEventParamCurrency: "THB",
AFEventParamContentType: "5G",
AFEventParamContentTypeOrderId: "9277",
"payment_method_type": "credit_card",
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "2000");
purchaseEvent.Add("af_currency", "THB");
purchaseEvent.Add("af_content_type", "5G");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("payment_method_type", "credit_card");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Giao dịch nạp tiền thành công (af_top_up_success)
Mục đích
Tiền nạp có thể được sử dụng để mua bất kỳ gói nào hoặc bất kỳ dịch vụ nào khác được cung cấp bên trong ứng dụng. Ghi nhận sự kiện này và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của mình. Ví dụ: bạn có thể tìm hiểu số tiền mà người dùng sẵn sàng nạp vào tài khoản của họ và sau đó sử dụng số tiền nạp vào để nhắm mục tiêu họ với các chiến dịch tùy chỉnh trong phạm vi ngân sách của họ.
Kích hoạt
Thời điểm người dùng hoàn tất giao dịch nạp tiền
Thông số sự kiện
Tên | Mô tả | Giá trị mẫu |
---|---|---|
af_revenue | Số tiền nạp | 2000 |
top_up_id | ID giao dịch nạp tiền | 397 |
payment_method_type | Loại phương thức thanh toán | thẻ tín dụng, thanh toán nội địa |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();eventValue.put(AFInAppEventParameterName.REVENUE, 2000); eventValue.put("TOP_UP_ID", "397"); eventValue.put("PAYMENT_METHOD_TYPE", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.AF_TOP_UP_SUCCESS, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTopUpSuccess
withValues: @{
AFEventParamRevenue: @2000,
@"top_up_id": @"397",
@"payment_method_type": @"credit_card"
}];
AppsFlyerLib.shared().logEvent(AFEventTopUpSuccess, tele
withValues: [
AFEventParamRevenue: 2000,
"top_up_id": "397",
"payment_method_type": "credit_card",
]);
Dictionary<string, string> TopUpSuccessEvent = new Dictionary<string, string>();
TopUpSuccessEvent.Add("af_revenue", "2000");
TopUpSuccessEvent.Add("top_up_id", "397");
TopUpSuccessEvent.Add("payment_method_type", "credit_card");
AppsFlyer.sendEvent ("af_top_up_success", TopUpSuccessEvent);
Nạp tiền không thành công (af_top_up_unsuccessful)
Mục đích
Ghi nhận sự kiện này và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của mình. Ví dụ: bạn có thể biết được có bao nhiêu người dùng cố gắng nạp tiền nhưng không thành công.
Kích hoạt
Khi người dùng cố gắng nạp tiền nhưng thao tác không thành công
Thông số sự kiện
Tên | Mô tả | Giá trị mẫu |
---|---|---|
error_reason | Lý do nạp tiền không thành công | exceeded_daily_limit |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("error_reason", "exceeded_daily_limit");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_top_up_unsuccessful", eventValue);
[[AppsFlyerLib shared] logEvent:@"af_top_up_unsuccessful" withValues: @{
@"error_reason": @"exceeded_daily_limit"}];
AppsFlyerLib.shared().logEvent("af_top_up_unsuccessful",withValues:
["error_reason": "exceeded_daily_limit" ])
Dictionary<string, string> TopUpUnsuccessfulEvent = new Dictionary<string, string>();
ErrorReasonEvent.Add("error_reason", "exceeded_daily_limit");
AppsFlyer.sendEvent ("af_top_up_unsuccessful
", TopUpUnsuccessfulEvent);
Đăng ký hoàn tất (af_subscription_complete)
Mục đích
Ghi nhận sự kiện này có thể giúp bạn:
- Xem chiến dịch nào mang đến những người dùng đăng ký
- Hãy so sánh số lượng người dùng đã đăng ký so với người dùng chưa đăng ký
- Ghi nhận doanh thu được tạo từ đăng ký và phân bổ doanh thu cho chiến dịch và nguồn truyền thông
Kích hoạt
- Khi người dùng đăng ký thành công
- Khi đăng ký được gia hạn
Thông số sự kiện
Tên | Mô tả | Giá trị mẫu |
---|---|---|
af_subscription_type | Loại gói đăng ký | 30 GB hàng tháng |
af_revenue | Số gói đăng ký | 555 |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("af_subscription_type", "Monthly 30 GB");
eventValue.put("af_revenue", "555");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_subscription_complete", eventValue);
[AppsFlyerLib shared] logEvent:@"af_subscription_complete" withValues:@{
@"af_subscription_type": @"Monthly 30 GB",
@"af_revenue": @"555"}];
ApAppsFlyerLib.shared().logEvent("af_subscription_complete", withValues:
[ "af_subscription_type": "Monthly 30 GB",
"af_revenue": "555"])
Dictionary<string, string> SubscriptionCompleteEvent = new Dictionary<string, string>();
SubscriptionCompleteEvent.Add("af_subscription_type", "Monthly 30 GB");
SubscriptionCompleteEvent.Add("af_revenue", "555");
AppsFlyer.sendEvent ("af_subscription_complete", SubscriptionCompleteEvent);
Cấu trúc đề xuất cho các sự kiện tùy chỉnh
Phần sau cung cấp cấu trúc sự kiện bao gồm tên sự kiện tùy chỉnh và thông số sự kiện được đề xuất sử dụng. Lưu ý rằng sự kiện trong ứng dụng có thể bao gồm bất kỳ thông số sự kiện nào đáp ứng nhu cầu kinh doanh của bạn.
Chọn gói (select_package)
Mục đích
Ghi nhận khi người dùng quyết định mua một gói nhưng chưa thực hiện thanh toán. Ví dụ: bạn có thể sử dụng dữ liệu này để nhắm mục tiêu lại người dùng và gửi cho họ ưu đãi về các dịch vụ khác.
Kích hoạt
Khi người dùng chọn một gói nhưng chưa hoàn tất thanh toán
Thông số sự kiện
Tên | Mô tả | Giá trị mẫu |
---|---|---|
price | Giá của gói đăng ký | 50000 |
af_content_type | Loại nội dung mà người dùng đã chọn | 5 GB dữ liệu |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("price", "50000");
eventValue.put("af_content_type ", "Data 5 GB ");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "select_package", eventValue);
[[AppsFlyerLib shared] logEvent:@"select_package" withValues: @{
@"price": @"50000",
@"af_content_type ": @"Data 5 GB "}];
AppsFlyerLib.shared().logEvent("select_package", withValues:
[ "price": "50000",
"af_content_type ": "Data 5 GB "])
Dictionary<string, string> SelectPackageEvent= new Dictionary<string, string>();
SelectPackageEvent.Add("price", "50000");
SelectPackageEvent.Add("af_content_type ", "Data 5 GB ");
AppsFlyer.sendEvent ("select_package", SelectPackageEvent);