Khái quát: Ghi nhận các sự kiện hậu cài đặt và phân bổ chúng cho nguồn truyền thông ban đầu bằng cách gửi các sự kiện phong phú S2S hoặc SDK tới AppsFlyer.
Tại sao phải ghi nhận các sự kiện phong phú trong ứng dụng?
Các sự kiện phong phú trong ứng dụng cung cấp cho các nhà quảng cáo khả năng ghi nhận các sự kiện sau khi cài đặt và phân bổ chúng cho nguồn phương tiện gốc.
Khi người dùng thực hiện đăng ký, hoàn thành hướng dẫn, thêm các mục vào giỏ hàng hoặc thực hiện mua hàng, dữ liệu sự kiện trong ứng dụng có thể ghi nhận các sự kiện cùng với các chi tiết.
Các sự kiện phong phú trong ứng dụng là công cụ lý tưởng để xác định giá trị của người dùng ứng dụng và chất lượng lưu lượng truy cập bắt nguồn từ các nguồn phương tiện khác nhau. Việc triển khai các sự kiện phong phú trong ứng dụng là không bắt buộc nhưng chúng tôi khuyên bạn nên làm như vậy. Chúng tôi cũng khuyên bạn nên xác định và sử dụng cùng tên và cấu trúc sự kiện trong ứng dụng trên tất cả các nền tảng, để liên kết dữ liệu thô tốt hơn.
Tôn trọng quyền riêng tư của người dùng của bạn
- AppsFlyer coi trọng và tôn trọng quyền riêng tư của bạn và người dùng ứng dụng của bạn.
- Chúng tôi không thu thập hay chấp nhận thông tin nhận dạng cá nhân (PII).
- Để đảm bảo quyền riêng tư của người dùng, đừng điền các giá trị sự kiện trong ứng dụng với thông tin có thể xác định trực tiếp danh tính của họ. Ví dụ: địa chỉ email, tên, số nhận dạng và mã bưu chính ở một số địa điểm.
API logEvent
Một sự kiện trong ứng dụng bao gồm tên sự kiện và tham số sự kiện.
Bạn có thể sử dụng bất kỳ chuỗi tên sự kiện nào, tùy ý. Tuy nhiên, SDK của AppsFlyer bao gồm các tên sự kiện được đề xuất thông qua bản liệt kê và định nghĩa (xem tab Loại Sự kiện để có danh sách các tên sự kiện và tham số được đề xuất).
Tên sự kiện có phân biệt chữ hoa và chữ thường, nghĩa là af_purchase và af_PURCHASE là hai sự kiện khác nhau trong dữ liệu thô. Tuy nhiên, trong các báo cáo hợp nhất (ví dụ: Tổng quan, Sự kiện) chúng có thể được hiển thị dưới dạng sự kiện đơn. Do đó, chúng tôi khuyên bạn chỉ nên sử dụng tên thông số và sự kiện bằng chữ thường.
Độ dài của các giá trị sự kiện được giới hạn chỉ 1000 ký tự. Đừng vượt quá giới hạn này. Chúng tôi có thể cắt bớt nếu bạn làm như vậy.
Cú pháp:
public static void logEvent(Context context, String eventName, Map eventValues)
-
Ngữ cảnh - Sử dụng
getApplicationContext()
- eventName
- Bất kỳ chuỗi nào để định nghĩa tên sự kiện.
- eventValues
- Bản đồ các tham số sự kiện chứa sự kiện phong phú.
- (void) logEvent:(NSString *)eventName withValues:(NSDictionary*)values
-
eventName - Bất kỳ chuỗi nào để định nghĩa tên sự kiện.
- values
- Từ điển các tham số sự kiện chứa sự kiện phong phú.
Sự kiện trong ứng dụng cho các ứng dụng kết hợp
Các ứng dụng lai, kết hợp các chế độ xem gốc và nội dung HTML, cũng có thể ghi lại các sự kiện trong ứng dụng. Tuy nhiên, vì SDK chỉ có thể gửi các sự kiện từ phía gốc, các nhà phát triển phải chuyển tiếp tất cả dữ liệu sự kiện sang mã gốc. Xem hướng dẫn của chúng tôi về các sự kiện trong ứng dụng cho các ứng dụng lainbspđể được hướng dẫn.
Chú ý
Mỗi mạng có những hạn chế riêng liên quan đến các ký tự được phép trong tên sự kiện. Để tránh sự cố, chỉ sử dụng các ký tự chữ và số ở dạng chữ thường (az và 0-9) cho tên sự kiện trong ứng dụng.
Loại Sự kiện trong Ứng dụng
Phần sau mô tả cấu trúc được đề xuất của từng loại sự kiện cùng với ánh xạ thông số cho Facebook, Twitter, Criteo, Google Ads và Snapchat.
- Các thông số sau đây, như một phần của giá trị sự kiện trong ứng dụng phong phú, chỉ khả dụng trong các báo cáo dữ liệu thô. Dữ liệu thô là một tính năng cao cấp.
- Nếu bạn thêm URL giới thiệu làm giá trị sự kiện, thì đó phải là URL được mã hóa.
Lưu ý
Tham khảo Tab Cấu trúc dọc trong bài viết này để biết các đoạn mã trên mỗi cấu trúc dọc, cho Android (Java), iOS (Obj-C và Swift) và Unity.
Cấu trúc Sự kiện trong ứng dụng đề xuất
Các sự kiện trong ứng dụng sau đây được định nghĩa là một phần của giao diện AFInAppEventType và được đề xuất:
Đạt được Cấp độ
Tên Sự kiện: af_level_achieved
Mô tả: Được dùng để ghi nhận sự kiện cấp độ trò chơi
Hằng số tên sự kiện (Android): AFInAppEventType.LEVEL_ACHIEVED
Hằng số tên sự kiện (iOS): AFEventLevelAchieved
Sự kiện được ánh xạ Facebook: fb_mobile_level_achieved
Sự kiện được ánh xạ Twitter: LEVEL_ACHIEVED
Sự kiện được ánh xạ Criteo: userLevel
Google Ads: level_up
Snapchat: LEVEL_COMPLETE
Các trường được đề xuất: af_level, af_score
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_level | fb_level | level | ui_level | level_up | level |
af_score | - | - | - | score | - |
Thêm Thông tin thanh toán
Tên Sự kiện: af_add_payment_info
Mô tả: Được dùng để ghi nhận trạng thái cấu hình thông tin thanh toán
Hằng số tên sự kiện (Android): AFInAppEventType.ADD_PAYMENT_INFO
Hằng số tên sự kiện (iOS): AFEventAddPaymentInfo
Sự kiện được ánh xạ Facebook: fb_mobile_add_payment_info
Sự kiện được ánh xạ Twitter: ADDED_PAYMENT_INFO
Sự kiện được ánh xạ Criteo: Không có
Sự kiện được ánh xạ Google Ads: add_payment_info
Snapchat: THÊM_HÓA_ĐƠN
Các trường được đề xuất: af_success
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_success | fb_success | user_payment_info | - | add_payment_info | success |
Thêm vào Giỏ hàng
Tên sự kiện: af_add_to_cart
Mô tả: Được dùng để ghi nhận các sự kiện thêm vào giỏ hàng các mặt hàng cụ thể
Hằng số tên sự kiện (Android): AFInAppEventType.ADD_TO_CART
Hằng số tên sự kiện (iOS): AFEventAddToCart
Sự kiện được ánh xạ Facebook: fb_mobile_add_to_cart
Sự kiện được ánh xạ Twitter: ADD_TO_CART
Sự kiện được ánh xạ Criteo: viewBasket
Sự kiện được ánh xạ Google Ads: add_to_cart
Snapchat: THÊM VÀO_GIỎ_HÀNG
Các trường được đề xuất: af_price, af_content_type, af_content_id, af_content, af_currency, af_quantity
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snap | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | price** | price | price |
af_content_type | fb_content_type | content_type | - | item_category | item_category |
af_content_id | fb_content_id | content_id | id | item_id | item_ids |
af_content | fb_content | - | - | - | - |
af_currency | fb_currency | price_currency | currency | currency_code | currency |
af_quantity | - | number_items | quantity | quantity | number_items |
*Để báo cáo một sự kiện gồm nhiều mặt hàng, nhấp vào đây.
Thêm vào Danh sách mong muốn
Tên sự kiện: af_add_to_wishlist
Mô tả: Được dùng để ghi nhận các sự kiện thêm vào danh sách mong muốn các mặt hàng cụ thể.
Hằng số tên sự kiện (Android): AFInAppEventType.ADD_TO_WISH_LIST
Hằng số tên sự kiện (iOS): AFEventAddToWishlist
Sự kiện được ánh xạ Facebook: fb_mobile_add_to_wishlist
Sự kiện được ánh xạ Twitter: ADD_TO_WISHLIST
Sự kiện được ánh xạ Criteo: Không có
Sự kiện được ánh xạ Google Ads: add_to_wishlist
Snapchat: ADD_TO_WISHLIST
Các trường được đề xuất: af_price, af_content_type, af_content_id, af_content, af_currency, af_quantity
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | - | Giá | price |
af_content_type | fb_content_type | content_type | - | danh mục mặt hàng | item_category |
af_content_id | fb_content_id | content_id | - | item_id | item_ids |
af_content | fb_content | - | - | - | - |
af_currency | fb_currency | price_currency | - | currency_code | currency |
af_quantity | - | number_items | - | quantity | number_items |
*Để báo cáo một sự kiện gồm nhiều mặt hàng, nhấp vào đây.
Đăng ký Hoàn thành
Tên sự kiện:af_complete_registration
Mô tả: Được dùng để ghi nhận phương thức đăng ký người dùng
Hằng số tên sự kiện (Android): AFInAppEventType.COMPLETE_REGISTRATION
Hằng số tên sự kiện (iOS): AFEventCompleteRegistration
Sự kiện được ánh xạ Facebook: fb_mobile_complete_registration
Sự kiện được ánh xạ Twitter: SIGN_UP
Sự kiện được ánh xạ Criteo: Không có
Sự kiện được ánh xạ Google Ads: sign_up
Snapchat: SIGN_UP
Các trường được đề xuất: af_registration_method
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_registration_ method |
fb_registration_ method |
registration_method | - | registration_method | sign_up_method |
Hoàn thành Hướng dẫn
Tên Sự kiện: af_tutorial_completion
Mô tả: Được dùng để ghi nhận việc hoàn thành hướng dẫn
Hằng số tên sự kiện (Android): AFInAppEventType.TUTORIAL_COMPLETION
Hằng số tên sự kiện (iOS): AFEventTutorial_completion
Sự kiện được ánh xạ Facebook: fb_mobile_tutorial_completion
Sự kiện được ánh xạ Twitter: TUTORIAL_COMPLETE
Sự kiện được ánh xạ Criteo: Không có
Sự kiện được ánh xạ Google Ads: tutorial_complete
Snapchat: COMPLETE_TUTORIAL
Các trường được đề xuất: af_success, af_content_id, af_content
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_success | fb_success | - | - | success | success |
af_content_id | fb_content_id | content_id | - | item_id | item_ids |
af_content | fb_content | - | - | - | - |
*Để báo cáo một sự kiện gồm nhiều mặt hàng, nhấp vào đây.
Thanh toán được khởi tạo
Tên Sự kiện: af_initiated_checkout
Mô tả: Được dùng để ghi nhận các sự kiện thanh toán
Hằng số tên sự kiện (Android): AFInAppEventType.INITIATED_CHECKOUT
Hằng số tên sự kiện (iOS): AFEventInitiatedCheckout
Sự kiện được ánh xạ Facebook: fb_mobile_initiated_checkout
Sự kiện được ánh xạ Twitter: CHECKOUT_INITIATED
Sự kiện được ánh xạ Criteo: viewBasket
Sự kiện được ánh xạ Google Ads: begin_checkout
Sự kiện được ánh xạ Snapchat: START_CHECKOUT
Các trường được đề xuất: af_price, af_content_type, af_content_id, af_content, af_quantity, af_payment_info_available, af_currency
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price | _valueToSum | price_micro* | price | price | price |
af_content_type | fb_content_type | content_type | - | item_category | item_category |
af_content_id | fb_content_id | content_id | id | item_id | item_ids |
af_content | fb_content | - | - | - | |
af_currency | fb_currency | price_currency | currency | currency_code | currency |
af_quantity | fb_num_items | number_items | quantity | quantity | number_items |
af_payment_info_ |
fb_payment_info_ available |
user_payment_ info |
- | payment_info_ available |
payment_info_available |
af_content_list | fb_content_id | - | - | item_id | - |
af_date_a- | fb_checkin_date | - | din | start_date | - |
af_date_b | fb_checkout_date | - | dout | end_date | - |
af_departing_ departure_date |
fb_departing_ departure_date |
- | - | - | - |
af_returning_ departure_date |
fb_returning_ departure_date |
- | - | - | - |
af_destination_a | fb_origin_airport | - | - | origin | - |
af_destination_b | fb_destination_airport | - | - | destination | - |
af_destination_list | fb_destination_ids | - | - | - | - |
af_city | fb_city | - | - | - | - |
af_region | fb_region | - | - | - | - |
af_country | fb_country | - | - | - | - |
af_departing_ arrival_date |
fb_departing_arrival_ date |
- | - | - | - |
af_returning_- arrival_date |
fb_returning_arrival_ date |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ destinations |
- | - | - | - |
af_travel_start | fb_travel_start | - | - | - | - |
af_travel_end | fb_travel_end | - | - | - | - |
af_num_adults | fb_num_adults | - | - | - | - |
af_num_childr-en | fb_num_children | - | - | - | - |
af_num_infant-s | fb_num_infants | - | - | - | - |
af_class | fb_travel_class | - | - | travel_class | - |
af_suggested_hotels | fb_suggested_hotels | - | - | - | - |
af_user_score | fb_user_score | - | - | - | - |
af_hotel_score | fb_hotel_score | - | - | - | - |
af_price | fb_purchase_value | - | - | price | - |
af_purchase_currency | fb_purchase_currency | - | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ ratings |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ range |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ neighborhoods |
- | - | - | - |
af_preferred_-num_ stops |
fb_preferred_num_ stops |
- | - | - | - |
*Để báo cáo một sự kiện gồm nhiều mặt hàng, nhấp vào đây.
Mua
Tên sự kiện: af_purchase
Mô tả: Được dùng để ghi nhận các sự kiện mua hàng (và liên kết doanh thu với sự kiện)
Hằng số tên sự kiện (Android): AFInAppEventType.PURCHASE
Hằng số tên sự kiện (iOS): AFEventPurchase
Sự kiện được ánh xạ Facebook: fb_mobile_purchase
Sự kiện được ánh xạ Twitter: MUA
Sự kiện được ánh xạ Criteo: transactionConfirmation
Google Ads: in_app_purchase
Snapchat: MUA
Các trường được đề xuất: af_revenue, af_content_type, af_content_id, af_content, af_price, af_quantity, af_currency, af_order_id
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | Partnerize | ||
---|---|---|---|---|---|---|
af_revenue* |
_valueToSum |
price_micro** |
ui_revenue |
value |
price |
- |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
danh mục |
af_content_id |
fb_content_id |
content_id |
id |
item_id |
item_ids |
- |
af_content |
fb_content |
- |
- |
- |
- |
Meta chuyển đổi tùy chỉnh |
af_currency |
fb_currency |
price_currency |
currency |
currency_code |
currency |
Tiền tệ |
af_quantity |
fb_num_items |
number_items |
quantity |
quantity |
number_items |
số lượng |
af_validated |
- |
- |
- |
đã xác thực |
success |
Phiếu |
af_receipt_id |
- |
- |
transaction_id |
transaction_id |
- |
Tham chiếu chuyển đổi |
af_order_id |
fb_order_id |
- |
- |
order_id |
transaction_id |
Clickref |
af_content_list |
fb_content_id |
- |
- |
item_id |
- |
Meta mục tùy chỉnh |
af_date_a |
fb_checkin_date |
- | din | start_date | - | - |
af_date_b |
fb_checkout_date |
- | dout | end_date | - | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | - | - |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - | - |
af_destination_a |
fb_origin_airport |
- | - | origin | - | - |
af_destination_b |
fb_destination_ |
- | - | destination | - | - |
af_destination_list |
fb_destination_ids |
- | - | - | - | - |
af_city |
fb_city |
- | - | - | - | - |
af_region |
fb_region |
-- | -- | -- | -- | - |
af_country |
fb_country |
- | - | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - | - |
af_suggested_ hotels |
fb_suggested_ |
- | - | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - | - |
af_price |
fb_price |
- | price** | price | - | value |
af_purchase_ currency |
fb_purchase_ |
- | - | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - | - |
* af_revenue được xem là doanh thu trong nền tảng AppsFlyer. Thông số này cũng gồm cả doanh thu âm, do việc hủy hoặc hoàn lại tiền.
**af_price - Bạn có thể dùng af_price như một tham số tiền tệ mà không tính là doanh thu (ví dụ như trong sự kiện “Thêm vào Giỏ hàng”). Tham số này đề cập đến giá của từng mặt hàng. Tổng số tiền của tất cả các hoạt động mua sẽ xuất hiện trong tham số af_revenue.
Để biết danh sách các ký hiệu tiền tệ được AppsFlyer hỗ trợ , hãy nhấp vào đây.
*Để báo cáo một sự kiện gồm nhiều mặt hàng, nhấp vào đây.
Đăng ký
Tên sự kiện: af_subscribe
Mô tả: Được sử dụng để ghi nhận các giao dịch đăng ký trả tiền
Hằng số tên sự kiện (Android): AFInAppEventType.SUBSCRIBE
Hằng số tên sự kiện (iOS): AFEventSubscribe
Sự kiện được ánh xạ Facebook: Đăng ký
Sự kiện được ánh xạ Twitter: Không có
Sự kiện được ánh xạ Criteo: Không có
Quảng cáo của Google: Không có
Snapchat: SUBSCRIBE
Các trường được đề xuất: af_revenue, af_currency
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_revenue |
_valueToSum |
- |
- |
- |
price |
af_currency |
fb_currency |
- |
- |
- |
currency |
af_subscription_id |
subscription_id |
- |
- |
- |
- |
Bắt đầu dùng thử
Tên sự kiện: af_start_trial
Mô tả: Được dùng để ghi nhận việc bắt đầu dùng thử một sản phẩm
Hằng số tên sự kiện (Android): AFInAppEventType.START_TRIAL
Hằng số tên sự kiện (iOS): AFEventStartTrial
Sự kiện được ánh xạ Facebook: StartTrial
Sự kiện được ánh xạ Twitter: Không có
Sự kiện được ánh xạ Criteo: Không có
Quảng cáo của Google: Không có
Snapchat: START_TRIAL
Các trường được đề xuất: af_price, af_currency
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
- |
- |
- |
price |
af_currency |
fb_currency |
- |
- |
- |
currency |
af_subscription_id |
subscription_id |
- |
- |
- |
- |
Rate
Tên Sự kiện: af_rate
Mô tả: Được dùng để ghi nhận các sự kiện xếp hạng ứng dụng/mặt hàng.
Hằng số tên sự kiện (Android): AFInAppEventType.RATE
Hằng số tên sự kiện (iOS): AFEventRate
Sự kiện được ánh xạ Facebook: fb_mobile_rate
Sự kiện được ánh xạ Twitter: ĐÃ XẾP HẠNG
Sự kiện được ánh xạ Criteo: Không có
Google Ads: submit_rating
Snapchat: RATE
Các trường được đề xuất: af_rating_value, af_content_type, af_content_id, af_content, af_max_rating_value
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_rating_value |
_valueToSum |
price_micro |
- |
value |
- |
af_content_type |
fb_content_type |
content_type |
- |
content_type |
item_category |
af_content_id |
fb_content_id |
content_id |
- |
content_id |
item_ids |
af_content |
fb_content |
- |
- |
- |
- |
af_max_rating_value |
fb_max_rating_value |
max_rated_value |
- |
max_rating |
- |
*Để báo cáo một sự kiện gồm nhiều mặt hàng, nhấp vào đây.
Tìm kiếm
Tên sự kiện: af_search
Mô tả: Được dùng để ghi nhận các sự kiện tìm kiếm
Hằng số tên sự kiện (Android): AFInAppEventType.SEARCH
Hằng số tên sự kiện (iOS): AFEventSearch
Sự kiện được ánh xạ Facebook: fb_mobile_search
Sự kiện được ánh xạ Twitter: TÌM KIẾM
Sự kiện được ánh xạ Criteo: viewSearch
Sự kiện được ánh xạ Google Ads: view_search_results
Google Ads: TÌM KIẾM
Các trường được đề xuất: af_content_type, af_search_string, af_success
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_search_string |
fb_search_string |
search_string |
- |
search_term |
search_string |
af_date_a |
fb_checkin_date |
- |
din |
start_date |
- |
af_date_b |
fb_checkout_date |
- |
dout |
end_date |
- |
af_destination_a |
fb_origin_airport |
- |
- |
origin |
- |
af_destination_b |
fb_destination_airport |
- |
- |
destination |
- |
af_success |
fb_success |
- |
- |
success |
success |
af_content_list |
fb_content_id |
- |
- |
item_id |
- |
af_departing_ departure_date |
fb_departing_ |
- | - | - | - |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - |
af_destination_list |
fb_destination_ids |
- | - | - | - |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end- |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - |
Tín dụng đã dùng
Tên Sự kiện: af_spent_credits
Mô tả: Được dùng để ghi nhận các sự kiện chi tiêu tín dụng
Hằng số tên sự kiện (Android): AFInAppEventType.SPENT_CREDIT
Hằng số tên sự kiện (iOS): AFEventSpentCredits
Sự kiện được ánh xạ Facebook: fb_mobile_spent_credits
Sự kiện được ánh xạ Twitter: SPENT_CREDITS
Sự kiện được ánh xạ Criteo: transactionConfirmation
Sự kiện được ánh xạ Google Ads: spend_virtual_currency
Snapchat: SPENT_CREDITS
Các trường được đề xuất: af_price, af_content_type, af_content_id, af_content
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
price_micro* |
price** |
price |
price |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
item_id |
item_id |
item_ids |
af_content |
fb_content |
- |
- |
|
- |
*Để báo cáo một sự kiện gồm nhiều mặt hàng, nhấp vào đây.
Đã mở khóa thành tích
Tên Sự kiện: af_achievement_unlocked
Mô tả: Được dùng để ghi nhận các sự kiện mở khóa thành tích
Hằng số tên sự kiện (Android): AFInAppEventType.ACHIEVEMENT_UNLOCKED
Hằng số tên sự kiện (iOS): AFEventAchievementUnlocked
Sự kiện được ánh xạ Facebook: fb_mobile_achievement_unlocked
Sự kiện được ánh xạ Twitter: ACHIEVEMENT_UNLOCKED
Sự kiện được ánh xạ Criteo: achievement
Google Ads: unlock_achievement
Snapchat: ACHIEVEMENT_UNLOCKED
Các trường được đề xuất: af_description
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
fb_description |
description |
ui_achievement |
description |
description |
Xem nội dung
Tên sự kiện: af_content_view
Mô tả: Được dùng để ghi nhận các sự kiện xem nội dung
Hằng số tên sự kiện (Android): AFInAppEventType.CONTENT_VIEW
Hằng số tên sự kiện (iOS): AFEventContentView
Sự kiện được ánh xạ Facebook: fb_mobile_content_view
Sự kiện được ánh xạ Twitter: CONTENT_VIEW
Sự kiện được ánh xạ Criteo: viewProduct
Google Ads: view_item
Snapchat: XEM_NỘIDUNG
Các trường được đề xuất: af_price, af_content_type, af_content_id, af_content, af_currency
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snap | ||
---|---|---|---|---|---|
af_price |
_valueToSum |
price_micro* |
price |
price |
price |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
id |
item_id |
item_ids |
af_content |
fb_content |
- |
- |
- |
- |
af_currency |
fb_currency |
price_currency |
currency |
currency_code |
currency |
af_content_list |
fb_content_id |
- |
- |
item_id | - |
af_date_a |
fb_checkin_date |
- | din | start_date | - |
af_date_b |
fb_checkout_date |
- | dout | end_date | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | |
af_returning_ departure_date |
fb_returning_ |
- | - | - | - |
af_destination_a |
fb_origin_airport |
- | - | origin | - |
af_destination_b |
fb_destination_ |
- | - | destination | - |
af_destination_list |
fb_destination_ids |
- | - | - | - |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_price_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops |
fb_preferred_num_ |
- | - | - | - |
Xem danh sách
Tên sự kiện: af_list_view
Mô tả: Được dùng để ghi nhận các sự kiện xem danh sách
Hằng số tên sự kiện (Android): sử dụng chuỗi "af_list_view":
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_list_view", eventValue);
Hằng số tên sự kiện (iOS): AFEventListView
Sự kiện được ánh xạ Facebook:
Sự kiện được ánh xạ Twitter:
Sự kiện được ánh xạ Criteo: viewListing
Google Ads: view_item_list
Snapchat: LIST_VIEW
Các trường được đề xuất: af_content_type, af_content_list
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_content_type |
- |
- |
- |
item_Category |
item_category |
af_content_list |
- |
- |
- |
item_id |
- |
Lượt nhấp quảng cáo
Tên sự kiện: af_ad_click
Mô tả: Được dùng để ghi nhận các lượt nhấp quảng cáo hiển thị trong ứng dụng
Hằng số tên sự kiện (Android): AFInAppEventType.AD_CLICK
Hằng số tên sự kiện (iOS): AFEventAdClick
Sự kiện được ánh xạ Facebook: AdClick
Sự kiện được ánh xạ Twitter: Không có
Sự kiện được ánh xạ Criteo: Không có
Quảng cáo của Google: Không có
Snapchat: AD_CLICK
Các trường được đề xuất: af_adrev_ad_type
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_adrev_ad_type |
ad_type |
- |
- |
- |
- |
af_currency |
fb_currency |
- |
- |
- |
currency |
Chế độ xem quảng cáo
Tên sự kiện: af_ad_view
Mô tả: Được dùng để ghi nhận các lượt xem quảng cáo hiển thị trong ứng dụng
Hằng số tên sự kiện (Android): AFInAppEventType.AD_VIEW
Hằng số tên sự kiện (iOS): AFEventAdView
Sự kiện được Ghi lại của Facebook: AdImpression
Sự kiện được ánh xạ Twitter: Không có
Sự kiện được ánh xạ Criteo: Không có
Quảng cáo của Google: Không có
Snapchat: AD_VIEW
Các trường được đề xuất: af_adrev_ad_type
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_adrev_ad_type |
ad_type |
- |
- |
- |
- |
af_currency |
fb_currency |
- |
- |
- |
currency |
Đặt vé du lịch
Tên Sự kiện: af_travel_booking
Mô tả: Được dùng để ghi nhận các sự kiện đặt vé đi lại (và liên kết doanh thu với sự kiện)
Hằng số tên sự kiện (Android): AFInAppEventType.TRAVEL_BOOKING
Hằng số tên sự kiện (iOS): AFEventTravelBooking
Sự kiện được ánh xạ Facebook: fb_mobile_purchase
Sự kiện được ánh xạ Twitter: MUA
Sự kiện được ánh xạ Criteo: transactionConfirmation
Tiếp thị lại trên Google Ads: ecommerce_purchase
Snapchat: RESERVE
Các trường được đề xuất: af_revenue, af_destination_a, af_destination_b, af_class, af_description, af_customer_user_id, af_content_type, af_content_id, af_date_a, af_date_b
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_revenue* |
_valueToSum |
price_micro** |
price*** |
value |
price |
af_customer_user_id |
- |
- |
cid |
customer_user_ |
- |
af_content_type |
fb_content_type |
content_type |
- |
item_category |
item_category |
af_content_id |
fb_content_id |
content_id |
- |
item_id |
item_ids |
af_class |
- |
- |
- |
travel_class |
- |
af_date_a |
- |
- |
din |
start_date |
- |
af_date_b |
- |
- |
dout |
end_date |
- |
af_destination_a |
- |
- |
- |
origin |
- |
af_destination_b |
- |
- |
- |
destination |
- |
af_success |
fb_success |
- |
- |
success |
|
af_content_list |
fb_content_ids |
- |
- |
item_id | - |
af_date_a |
fb_checkin_date |
- | - | start_date | - |
af_date_b |
fb_checkout_date |
- | - | end_date | - |
af_departing_ departure_date |
fb_departing_ |
- | - | - | |
af_returning_ departure_date |
fb_returning_ |
- | - | - | |
af_destination_a |
fb_origin_airport |
- | - | origin | - |
af_destination_b |
fb_destination_airport |
- | - | destination | - |
af_destination_list |
fb_destination_ids |
- | - | - | |
af_city |
fb_city |
- | - | - | - |
af_region |
fb_region |
- | - | - | - |
af_country |
fb_country |
- | - | - | - |
af_departing_arrival_ date |
fb_departing_arrival_ |
- | - | - | - |
af_returning_arrival_ date |
fb_returning_arrival_ |
- | - | - | - |
af_suggested_ destinations |
fb_suggested_ |
- | - | - | - |
af_travel_start |
fb_travel_start |
- | - | - | - |
af_travel_end |
fb_travel_end |
- | - | - | - |
af_num_adults |
fb_num_adults |
- | - | - | - |
af_num_children |
fb_num_children |
- | - | - | - |
af_num_infants |
fb_num_infants |
- | - | - | - |
af_class |
fb_travel_class |
- | - | travel_class | - |
af_suggested_hotels |
fb_suggested_hotels |
- | - | - | - |
af_user_score |
fb_user_score |
- | - | - | - |
af_hotel_score |
fb_hotel_score |
- | - | - | - |
af_price |
fb_purchase_value |
- | - | price | - |
af_purchase_currency |
fb_purchase_currency |
- | - | - | - |
af_preferred_star_ ratings- |
fb_preferred_star_ |
- | - | - | - |
af_preferred_price_ range |
fb_preferred_star_ |
- | - | - | - |
af_preferred_ neighborhoods |
fb_preferred_ |
- | - | - | - |
af_preferred_num_ stops- |
fb_preferred_num_ |
- | - | - | - |
af_order_id |
fb_order_id |
- | - | order_id | transaction_id |
Chia sẻ
Tên sự kiện: af_share
Mô tả: Được dùng để ghi nhận các sự kiện chia sẻ
Hằng số tên sự kiện (Android): AFInAppEventType.SHARE
Hằng số tên sự kiện (iOS): AFEventShare
Sự kiện được ánh xạ Facebook: Không có
Sự kiện được ánh xạ Twitter: CHIA SẺ
Sự kiện được ánh xạ Criteo: Không có
Quảng cáo của Google: chia sẻ
Snapchat: SHARE
Các trường được đề xuất: af_description
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
- |
description |
- |
description |
description |
Mời
Tên sự kiện: af_invite
Mô tả: Được dùng để ghi nhận các sự kiện mời (xã hội)
Hằng số tên sự kiện (Android): AFInAppEventType.INVITE
Hằng số tên sự kiện (iOS): AFEventInvite
Sự kiện được ánh xạ Facebook: Không có
Sự kiện được ánh xạ Twitter: MỜI
Sự kiện được ánh xạ Criteo: Không có
Quảng cáo của Google: mời
Snapchat: INVITE
Các trường được đề xuất: Không có
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
---|---|---|---|---|---|
af_description |
- |
description |
- |
description |
description |
Đăng nhập
Tên Sự kiện: af_login
Mô tả: Được dùng để ghi nhận các sự kiện đăng nhập của người dùng
Hằng số tên sự kiện (Android): AFInAppEventType.LOGIN
Hằng số tên sự kiện (iOS): AFEventLogin
Sự kiện được ánh xạ Facebook: Không có
Sự kiện được ánh xạ Twitter: ĐĂNG NHẬP
Sự kiện được ánh xạ Criteo: Không có
Quảng cáo của Google: đăng nhập
Các trường được đề xuất: Không có
Tương tác lại
Tên sự kiện: af_re_engage
Mô tả: Được dùng để ghi nhận các sự kiện tương tác lại người dùng
Hằng số tên sự kiện (Android): AFInAppEventType.RE_ENGAGE
Hằng số tên sự kiện (iOS): AFEventReEngage
Sự kiện được ánh xạ Facebook: Không có
Sự kiện được ánh xạ Twitter: RE_ENGAGE
Sự kiện được ánh xạ Criteo: Không có
Tiếp thị lại trên Google Ads: custom_event
Các trường được đề xuất: Không có
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | ||
---|---|---|---|---|
af_description |
- |
description |
- |
description |
Được mở từ Thông báo đẩy
Tên Sự kiện: af_opened_from_push_notification
Mô tả: Được dùng để ghi nhận các sự kiện mở ứng dụng từ thông báo đẩy
Hằng số tên sự kiện (Android): AFInAppEventType.OPENED_FROM_PUSH_NOTIFICATION
Hằng số tên sự kiện (iOS): AFEventOpenedFromPushNotification
Sự kiện được ánh xạ Facebook: Không có
Sự kiện được ánh xạ Twitter: Không có
Sự kiện được ánh xạ Criteo: Không có
Google Ads: notification_open
Các trường được đề xuất: Không có
Cập nhật
Tên Sự kiện: af_update
Mô tả: Được dùng để ghi nhận các sự kiện cập nhật
Hằng số tên sự kiện (Android): AFInAppEventType.UPDATE
Hằng số tên sự kiện (iOS): AFEventUpdate
Sự kiện được ánh xạ Facebook: Không có
Sự kiện được ánh xạ Twitter: CẬP NHẬT
Sự kiện được ánh xạ Criteo: Không có
Tiếp thị lại trên Google Ads: app_update
Các trường được đề xuất: af_content_id
Ánh xạ trường:
AppsFlyer | Criteo | Google Ads | ||
---|---|---|---|---|
af_content_id |
- |
content_id |
- |
item_id |
*Để báo cáo một sự kiện gồm nhiều mặt hàng, nhấp vào đây.
Ngoài các sự kiện được mô tả ở trên, có thể được ánh xạ tới các sự kiện được xác định trước của các mạng khác nhau, Facebook cung cấp các sự kiện bổ sung được gửi mà không có phân bổ.
Tham số tùy chọn
Ngoài các tham số đề xuất có thể đi kèm từng sự kiện, các tham số bên dưới được định nghĩa là một phần của giao diện AFInAppEventParameterName
và có thể được gửi như một phần của giá trị từ điển sự kiện:
Hằng số chuỗi tham số | Tên chuỗi tham số | Loại giá trị đề xuất |
---|---|---|
REVENUE (chi tiết) |
af_revenue |
Float |
PRICE (chi tiết) |
af_price |
Float |
LEVEL |
af_level |
Int |
SUCCESS |
af_success |
Boolean |
CONTENT_TYPE |
af_content_type |
chuỗi |
CONTENT_LIST |
af_content_list |
Mảng của chuỗi |
CONTENT_ID |
af_content_id |
chuỗi |
CURRENCY |
af_currency |
chuỗi |
REGISTRATION_METHOD |
af_registration_method |
chuỗi |
QUANTITY |
af_quantity |
Int |
PAYMENT_INFO_AVAILABLE |
af_payment_info_available |
Boolean |
RATING_VALUE |
af_rating_value |
Float |
MAX_RATING_VALUE |
af_max_rating_value |
Float |
SEARCH_STRING |
af_search_string |
chuỗi |
DESCRIPTION |
af_description |
chuỗi |
SCORE |
af_score |
Int |
DESTINATION_A |
af_destination_a |
chuỗi |
DESTINATION_B |
af_destination_b |
chuỗi |
CLASS |
af_class |
chuỗi |
DATE_A |
af_date_a |
chuỗi |
DATE_B |
af_date_b |
chuỗi |
EVENT_START |
af_event_start |
Unixtime (00:00:00) |
EVENT_END |
af_event_end |
Unixtime (00:00:00) |
LATITUDE |
af_lat |
Int |
LONGITUDE |
af_long |
Int |
CUSTOMER_USER_ID |
af_customer_user_id |
chuỗi |
CUSTOMER_SEGMENT |
af_customer_segment |
chuỗi |
VALIDATED |
af_validated |
chuỗi |
RECEIPT_ID |
af_receipt_id |
chuỗi |
ORDER_ID |
af_order_id |
chuỗi |
TUTORIAL_ID |
af_tutorial_id |
chuỗi |
ACHIEVEMENT_ID |
af_achievement_id |
chuỗi |
VIRTUAL_CURRENCY_NAME |
af_virtual_currency_name |
chuỗi |
DEEP_LINK |
af_deep_link |
chuỗi |
OLD_VERSION |
af_old_version |
chuỗi |
NEW_VERSION |
af_new_version |
chuỗi |
REVIEW_TEXT |
af_review_text |
chuỗi |
COUPON_CODE |
af_coupon_code |
chuỗi |
DEPARTING_DEPARTURE_DATE |
af_departing_departure_date |
chuỗi |
RETURNING_DEPARTURE_DATE |
af_returning_departure_date |
chuỗi |
DESTINATION_LIST |
af_destination_list |
String[] |
CITY |
af_city |
chuỗi |
REGION |
af_region |
chuỗi |
COUNTRY |
af_county |
chuỗi |
DEPARTING_ARRIVAL_DATE |
af_departing_arrival_date |
chuỗi |
RETURNING_ARRIVAL_DATE |
af_returning_arrival_date |
chuỗi |
SUGGESTED_DESTINATIONS |
af_suggested_destinations |
String[] |
TRAVEL_START |
af_travel_start |
chuỗi |
TRAVEL_END |
af_travel_end |
chuỗi |
NUM_ADULTS |
af_num_adults |
Int |
NUM_CHILDREN |
af_num_children |
Int |
NUM_INFANTS |
af_num_infants |
Int |
SUGGESTED_HOTELS |
af_suggested_hotels |
String[] |
USER_SCORE |
af_user_score |
Float |
HOTEL_SCORE |
af_hotel_score |
Float |
PURCHASE_CURRENCY |
af_purchase_currency |
chuỗi |
PREFERRED_STAR_RATINGS |
af_preferred_star_ratings |
Int[2] |
PREFERRED_PRICE_RANGE |
af_preferred_price_range |
Int[2] |
PREFERRED_NEIGHBORHOODS |
af_preferred_neighborhoods |
String[] |
PREFERRED_NUM_STOPS |
af_preferred_num_stops |
Int |
CONTENT |
af_content |
chuỗi |
PARAM_1 |
af_param_1 |
chuỗi |
PARAM_2 |
af_param_2 |
chuỗi |
PARAM_3 |
af_param_3 |
chuỗi |
PARAM_4 |
af_param_4 |
chuỗi |
PARAM_5 |
af_param_5 |
chuỗi |
PARAM_6 |
af_param_6 |
chuỗi |
PARAM_7 |
af_param_7 |
chuỗi |
PARAM_8 |
af_param_8 |
chuỗi |
PARAM_9 |
af_param_9 |
chuỗi |
PARAM_10 |
af_param_10 |
chuỗi |
Xem dữ liệu sự kiện trong ứng dụng phong phú
- Tên sự kiện trong ứng dụng cũng như doanh thu của bạn sẽ xuất hiện trong trang overview (tổng quan) của Bảng điều khiển và trang Events (Sự kiện).
- Các giá trị thông số bổ sung xuất hiện trong Báo cáo dữ liệu thô sự kiện trong ứng dụng. Dữ liệu thô là một tính năng cao cấp.
Thông số Doanh thu
Bạn có thể gửi giá trị doanh thu với bất kỳ tên thông số và sự kiện nào. Tuy nhiên, để đăng ký doanh thu (bao gồm doanh thu âm) trong dữ liệu thô và hợp nhất của AppsFlyer, bạn PHẢI sử dụng thông số af_revenue. Luôn sử dụng giá trị này với các sự kiện trong ứng dụng đại diện cho việc tạo doanh thu thực tế trong logic kinh doanh của bạn.
Để biết thêm chi tiết về thông số af_revenue, hãy truy cập Hướng dẫn Phân bổ Doanh thu.
Thông tin nhận dạng cá nhân
Thông tin nhận dạng cá nhân (PII) là thông tin có thể được sử dụng để xác định hoặc theo dõi danh tính của một cá nhân (tên, số chứng minh nhân dân, số an sinh xã hội) khi đứng một mình, hoặc khi kết hợp với các thông tin nhận dạng khác được liên kết với ngày và nơi sinh cá nhân.
AppsFlyer tôn trọng các quy định về quyền riêng tư của người dùng và không thu thập PII của người dùng.
Không gửi PII trong các giá trị sự kiện.
Lưu ý
AppsFlyer thu thập địa chỉ IP của thiết bị trong quá trình tương tác. Trong một số khu vực pháp lý hoặc các tình huống sử dụng, địa chỉ IP có thể được coi là PII. Chúng tôi sử dụng địa chỉ IP để lấy vị trí địa lý rộng (cấp thành phố, cấp quận) của thiết bị nhưng không phải là địa chỉ cụ thể. Nếu cần, bạn có thể chọn che dấu các địa chỉ IP để chúng không xuất hiện trong các báo cáo dữ liệu thô.
Nhiều mặt hàng
Bạn có thể thêm nhiều mặt hàng vào một giao dịch duy nhất. Thay vì các giá trị duy nhất cho mỗi tham số sự kiện, bạn có thể có nhiều mặt hàng mô tả giao dịch, được phân tách bởi dấu phẩy.
Ví dụ
Trong cùng một giao dịch, ông A. Flyer mua hai chiếc áo sơ mi giống hệt nhau, một đôi giày và một chiếc mũ từ một cửa hàng trực tuyến tại Hoa Kỳ. Trình tự liệt kê từng mặt hàng phải giống hệt từng tham số.
af_content_id: ["123","988","399"]
af_quantity: [2,1,1]
af_price: [25,50,10]
af_revenue: [110]
af_currency: USD
Với Nhiều mặt hàng, đoạn mã xuất hiện như sau:
Map<String,Object> eventData = new HashMap<>();
eventData.put(AFInAppEventParameterName.CONTENT_ID, new String[] {"123","988","399"});
eventData.put(AFInAppEventParameterName.QUANTITY, new int[] {2, 1, 1});
eventData.put(AFInAppEventParameterName.PRICE,new int[] {25, 50, 10});
eventData.put(AFInAppEventParameterName.CURRENCY,"USD");
eventData.put(AFInAppEventParameterName.REVENUE,110);
AppsFlyerLib.getInstance().logEvent(AppsFlyerTestActivity.this, AFInAppEventType.PURCHASE,eventData);
Nhiều mục được gửi trở về sau như một dãy trong postback. Hiện tại Facebook và Twitter không thể phân tích các thông số dãy chính xác. Để giúp AppsFlyer tính tổng số lượng các mục (af_quantity) thay vì gửi số lượng cho họ như một dãy (ví dụ, trong ví dụ trên Facebook sẽ nhận được af_quantity=4).
Lưu ý
Nhiều mặt hàng có thể được dùng với các sự kiện trong ứng dụng sau:
af_add_to_cart, af_add_to_wishlist, af_tutorial_completion, af_initiated_checkout, af_purchase, af_rate, af_spent_credits, af_content_view, af_travel_booking, af_update
Sự kiện trong ứng dụng phức tạp
Sự kiện trong ứng dụng phức tạp cho phép gửi nhiều sự kiện trong một lần gọi API duy nhất.
Tính năng này hữu ích khi bạn muốn xem một số hoạt động của người dùng có liên quan chặt chẽ với nhau đã được nhóm cùng với nhau, ví dụ: thêm một vài sản phẩm vào giỏ trong một phiên duy nhất.
Ví dụ:
{
"af_revenue":"50.87",
"af_currency":"USD",
"af_receipt_id":"57601333",
"product":[
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1164_8186",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"1177_8185",
"af_price":"8.97",
"af_quantity":"1"
},
{
"af_content_id":"0153_9077",
"af_price":"14.99",
"af_quantity":"1"
}
]
}
Chú ý
Các sự kiện phức tạp trong ứng dụng gây ra các vấn đề postback với Facebook và Criteo. Nếu cần sự kiện được postback đầy đủ với Facebook và Criteo, bạn nên gửi các sự kiện riêng lẻ cho từng hoạt động của người dùng, ví dụ: gửi sự kiện Thêm vào giỏ hàng cho từng mặt hàng được thêm. Bằng cách sử dụng dữ liệu thô của các sự kiện trong ứng dụng, bạn có thể nhóm các sự kiện này lại với nhau.
Ghi nhận sự kiện ngoại tuyến
- SDK gửi các sự kiện tới máy chủ của AppsFlyer và chờ đợi phản hồi.
- Nếu SDK không nhận được phản hồi mã 200, sự kiện được lưu trữ trong bộ nhớ cache.
- Khi nhận được phản hồi mã 200 tiếp theo, sự kiện được lưu trữ được gửi lại cho máy chủ.
- Nếu có nhiều sự kiện trong bộ nhớ cache, chúng được gửi đến máy chủ một cách lần lượt và nhanh chóng.
Lưu ý
Bộ nhớ cache của SDK có thể lưu trữ tối đa 40 sự kiện, có nghĩa là chỉ lưu được 40 sự kiện đầu tiên xảy ra ngoại tuyến. Tất cả mọi thứ xảy ra sau đó cho đến phản hồi mã 200 tiếp theo được loại bỏ.
Thời gian sự kiện xuất hiện trong dữ liệu thô là thời gian mà sự kiện được gửi tới AppsFlyer sau khi thiết bị được kết nối internet trở lại. Đây không phải là thời gian thực tế mà sự kiện diễn ra.
Hủy trùng lặp sự kiện
AppsFlyer có một cơ chế hủy trùng lặp sự kiện trong ứng dụng. Nó sẽ kiểm tra tất cả các sự kiện trong ứng dụng để xem có sự kiện trong ứng dụng giống hệt xuất phát từ cùng một appsflyer_id ít hơn 10 giây trước hay không. Nếu tìm thấy sự kiện này, cơ chế đó sẽ loại bỏ trùng lặp.
Hai sự kiện được coi là giống hệt nhau nếu các trường sau đây trong cả hai sự kiện giống nhau:
- Tên của sự kiện
- Giá trị của sự kiện
- ID ứng dụng
- ID AppsFlyer
Lưu ý
Hủy trùng lặp chỉ hoạt động với các sự kiện trong ứng dụng được gửi từ SDK.
Các sự kiện trong ứng dụng S2S không được hủy trùng lặp.
Trong phần này, chúng tôi liệt kê các bộ sự kiện toàn diện trong ứng dụng cho một số cấu trúc dọc. Mỗi cấu trúc dọc trong phần này bao gồm các sự kiện trong ứng dụng được lựa chọn cẩn thận mà chúng tôi khuyên bạn nên ghi nhận.
Để bắt đầu ghi nhận sự kiện trong ứng dụng:
- Chọn cấu trúc của bạn.
- Chọn các sự kiện trong ứng dụng mà bạn muốn ghi nhận. Chúng tôi khuyên bạn nên ghi nhận tất cả các sự kiện được liệt kê trong cấu trúc dọc của bạn.
- Sao chép đoạn mã cho mỗi sự kiện trong ứng dụng và triển khai trong ứng dụng của bạn nếu có.
Nếu bạn muốn tìm hiểu các sự kiện trong ứng dụng phổ biến nhất được ánh xạ theo kích thước ứng dụng và theo cấu trúc dọc, nhấp vào đây.
Chơi game
Các ứng dụng chơi game bao gồm các trò chơi như trò chơi điện tử, trò chơi chiến lược, trò chơi giáo dục và thậm chí là trò chơi đánh bạc. Các sự kiện chúng tôi khuyên bạn nên ghi nhận trong các ứng dụng trò chơi là mua hàng trong ứng dụng, chia sẻ trên mạng xã hội và mời bạn bè. Các sự kiện bổ sung có thể tăng cấp trong trò chơi và hoàn thành hướng dẫn trong trò chơi. Dưới đây là một số ví dụ cho thấy việc ghi nhận các sự kiện này có thể mang lại lợi ích cho bạn như thế nào:
- ghi nhận mua hàng trong ứng dụng có thể giúp bạn hiểu người dùng mua mặt hàng nào nhiều nhất.
- ghi nhận nâng cấp giúp bạn hiểu mức độ tương tác của người dùng.
- ghi nhận lượt chia sẻ và sự kiện mời giúp bạn biết được số người dùng chia sẻ và mời người chơi khác, cũng như họ chia sẻ và mời người chơi trên nền tảng mạng xã hội nào.
Lời khuyên
Các sự kiện thảo luận ở đây cũng có liên quan với các ứng dụng chơi trò chơi chạy trên các nền tảng sau đây:
- TV thông minh Android
- Apple TV (tvOS)
- Amazon Fire TV
- Xbox
- Thiết bị di động Windows
Đăng nhập
Tên Sự kiện: af_login
Mục đích
Sự kiện này có thể giúp bạn hiểu về tỷ lệ giữ chân người dùng đã đăng ký của bạn.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào người dùng đăng nhập.
Các trường được đề xuất
Sự kiện này có thể được gửi mà không cần có bất kỳ trường 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);
Đăng ký Hoàn thành
Tên sự kiện: af_complete_registration
Mục đích
Bạn có thể ghi nhận đăng ký người dùng và so sánh với các dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Bằng cách ghi nhận các sự kiện đăng ký người dùng, bạn có thể:
- Tìm hiểu xem có bao nhiêu người dùng đã cài đặt ứng dụng nhưng chưa bao giờ đăng ký.
- Tìm hiểu những phương thức đăng ký mà người dùng của bạn ưa thích.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi người dùng hoàn tất quá trình đăng ký.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | email, facebook | Loại phương thức đăng ký |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_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> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Mua
Tên sự kiện: af_purchase
Mục đích
Nhiều ứng dụng trò chơi cho phép người dùng mua các vật phẩm, ví dụ: tiền xu, đá quý hoặc vũ khí, v.v. Sự kiện Mua giúp bạn ghi nhận mua hàng trong ứng dụng do người dùng thực hiện. Bằng cách ghi nhận các giao dịch mua hàng, bạn có thể:
- Xác định Giá trị trọn đời của người dùng và Tỷ suất hoàn vốn 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 mua 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 Logic
Để ghi nhận sự kiện này đúng cách, bạn nên kích hoạt sự kiện khi người dùng đến trang cảm ơn sau khi mua hàng thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 2000 | Doanh thu ước tính từ giao dịch mua |
af_currency | chuỗi | THB / USD | Mã tiền tệ |
af_quantity | int | 2 | Số lượng mặt hàng đã mua |
af_content_id | chuỗi | 001, 092 | ID mặt hàng |
af_order_id | chuỗi | 9277 | ID đơn đặt hàng |
af_receipt_id | chuỗi | 9277 | ID hóa đơn |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 200);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put(AFInAppEventParameterName.ORDER_ID, "9277");
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "9277");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @200,
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
AFEventParamContentId: @"092",
AFEventParamOrderId: @"9277",
AFEventParamReceiptId: @"9277"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 200,
AFEventParamCurrency: "THB",
AFEventParamQuantity: 2,
AFEventParamContentId: "092",
AFEventParamOrderId: "9277",
AFEventParamReceiptId: "9277"
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "200");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_quantity", "2");
purchaseEvent.Add("af_content_id", "001");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("af_receipt_id", "9277");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Đạt được Cấp độ
Tên Sự kiện: af_level_achieved
Mục đích
Một trong những mục tiêu chính của người dùng là tăng cấp độ trong trò chơi. Tăng cấp độ thường mở ra các tính năng và giai đoạn mới trong trò chơi và điều này khuyến khích người dùng tiếp tục chơi. Sự kiện Cấp độ đạt được giúp bạn ghi nhận mức độ tương tác của người dùng với ứng dụng của bạn. Bằng cách ghi nhận các cấp độ mà người dùng đạt được, bạn có thể:
- Xác định chiến dịch nào tạo ra người dùng hoạt động nhiều nhất.
- Xem loại người dùng nào hoạt động và tương tác nhiều nhất.
- Liên kết hoạt động tổng thể của người dùng với các thứ nguyên như doanh thu, v.v.
Kích hoạt Logic
Để ghi nhận sự kiện này đúng cách, bạn nên kích hoạt sự kiện khi người dùng truy cập vào trang hoàn thành cấp độ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_level | int | 3 | Cấp độ người dùng đạt được |
af_score | int | 500 | Điểm số liên kết với thành tích của người dùng |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.LEVEL, 10);
eventValue.put(AFInAppEventParameterName.SCORE, 500);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LEVEL_ACHIEVED, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventLevelAchieved
withValues: @{
AFEventParamLevel: @10,
AFEventParamScore: @500
}];
AppsFlyerLib.shared().logEvent(AFEventLevelAchieved,
withValues: [
AFEventParamLevel: 3,
AFEventParamScore: 500
]);
Dictionary<string, string> LevelAchievedEvent = new Dictionary<string, string>();
LevelAchievedEvent.Add("af_level", "10");
LevelAchievedEvent.Add("af_score", "500");
AppsFlyer.sendEvent ("af_level_achieved", LevelAchievedEvent);
Hoàn thành Hướng dẫn
Tên Sự kiện: af_tutorial_completion
Mục đích
Hướng dẫn giúp người dùng tìm hiểu cách sử dụng ứng dụng của bạn tốt hơn. Bằng cách ghi nhận việc hoàn thành đọc hướng dẫn, bạn có thể:
- Tìm hiểu những chủ đề mà người dùng có thể gặp khó khăn.
- Tìm hiểu những hướng dẫn nào không hoạt động tốt và cải thiện chúng.
Kích hoạt Logic
Có hai trường hợp sự kiện này sẽ được kích hoạt:
- Khi người dùng xem xong hướng dẫn. Một sự kiện sẽ được gửi cùng với một trường cho biết người dùng đã xem xong hướng dẫn.
- Khi người dùng bắt đầu xem hướng dẫn nhưng thoát ra và không hoàn thành. Khi người dùng thoát ra, một sự kiện được gửi đi với một trường cho biết người dùng không xem xong hướng dẫn.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_success | boolean | đúng | Người dùng có hoàn thành hướng dẫn hay không |
af_tutorial_id | chuỗi | 3 | ID hướng dẫn chơi |
af_content | chuỗi | Bắt đầu | Tên hướng dẫn chơi |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
eventValue.put(AFInAppEventParameterName.TUTORIAL_ID, "3");
eventValue.put(AFInAppEventParameterName.CONTENT, "Getting Started");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TUTORIAL_COMPLETION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTutorial_completion
withValues: @{
AFEventParamSuccess: @TRUE,
AFEventParamTutorialId: @"3",
AFEventParamContent: @"Getting Started"
}];
AppsFlyerLib.shared().logEvent(AFEventTutorial_completion,
withValues: [
AFEventParamSuccess: true,
AFEventParamTutorialId: "3",
AFEventParamContent: "Getting started"
]);
Dictionary<string, string> TutorialCompletiondEvent = new Dictionary<string, string>();
TutorialCompletiondEvent.Add("af_success", "true");
TutorialCompletiondEvent.Add("af_tutorial_id", "3");
TutorialCompletiondEvent.Add("af_tutorial_content", "Getting started");
AppsFlyer.sendEvent ("af_tutorial_completion", TutorialCompletiondEvent);
Chia sẻ
Tên sự kiện: af_share
Mục đích
Người dùng muốn chia sẻ thành tích của họ trong trò chơi trên các trang mạng xã hội. Chia sẻ tạo nên nhận thức về thương hiệu và có thể thúc đẩy nhiều người dùng tải xuống và cài đặt ứng dụng của bạn hơn. Bằng cách ghi nhận sự kiện Chia sẻ bạn có thể hiểu khi nào người dùng có nhiều khả năng chia sẻ ứng dụng với bạn bè nhất.
Lời khuyên
AppsFlyer SDK có các phương thức dành riêng cho việc ghi nhận lượt chia sẻ và mời bạn bè.
Kích hoạt Logic
Để ghi nhận sự kiện này đúng cách, bạn nên kích hoạt sự kiện khi người dùng đăng thành công một chia sẻ trên mạng xã hội:
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_description | chuỗi | Điểm cao mới / Lên cấp / Chiến thắng trò chơi | Lý do chia sẻ trên mạng xã hội. Có thể là điểm số cao mới, tăng cấp, v.v. |
nền tảng | chuỗi | Facebook, Whatsapp, Email | Nền tảng mà người dùng chia sẻ |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DESCRIPTION, "New High Score");
eventValue.put("platform", "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SHARE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventShare
withValues: @{
AFEventParamDescription: @"New High Score",
@"platform": @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventShare,
withValues: [
AFEventParamDescription: "New High Score",
"platform": "Facebook"
]);
Dictionary<string, string> ShareEvent = new Dictionary<string, string>();
ShareEvent.Add("af_description", "New High Score");
ShareEvent.Add("platform", "Facebook");
AppsFlyer.sendEvent ("af_share", ShareEvent);
Mời
Tên sự kiện: af_invite
Mục đích
Người dùng thường mời bạn bè của họ tải xuống và cài đặt ứng dụng. Nhiều lần người dùng muốn chia sẻ ứng dụng và những lần khác họ được thưởng khi mời những người khác tham gia. Bạn có thể ghi nhận lời mời bằng cách sử dụng sự kiện Mời. Bằng cách ghi nhận sự kiện này, bạn có thể:
- Tìm hiểu về những trang mạng xã hội người dùng thường gửi lời mời đến bạn bè.
- Tìm hiểu xem có bao nhiêu người dùng đã mời bạn bè của họ tải xuống và cài đặt ứng dụng.
Kích hoạt Logic
Để ghi nhận sự kiện này đúng cách, bạn nên kích hoạt sự kiện khi người dùng mời thành công một người bạn tải xuống và cài đặt ứng dụng.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_description | chuỗi | Thử ứng dụng này | Bối cảnh của lời mời |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DESCRIPTION, "Try this app");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INVITE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInvite
withValues: @{
AFEventParamDescription: @"Try this app"
}];
AppsFlyerLib.shared().logEvent(AFEventInvite, withValues: [
AFEventParamDescription: "Try this app"
]);
Dictionary<string, string> InviteEvent = new Dictionary<string, string>();
InviteEvent.Add("af_description", "Try this app");
AppsFlyer.sendEvent ("af_invite", InviteEvent);
Thưởng đã nhận
Tên sự kiện: bonus_claimed
Mục đích
Bằng cách ghi nhận sự kiện Thưởng đã nhận, bạn có thể:
- Xem có bao nhiêu người dùng đã nhận được phần thưởng dành cho họ.
- Liên kết thưởng đã nhận với hoạt động và mức độ tương tác của người dùng.
Kích hoạt Logic
Để ghi nhận sự kiện này đúng cách, bạn nên kích hoạt sự kiện khi người dùng yêu cầu tiền thưởng và sự kiện sẽ được cập nhật trong tài khoản của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
bonus_type | chuỗi | tiền xu | Loại tiền thưởng mà người dùng nhận |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("bouns_type", "coins");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "bonus_claimed", eventValue);
[[AppsFlyerLib shared] logEvent:@"bonus_claimed"
withValues: @{
@"bonus_type": @"coins"
}];
AppsFlyerLib.shared().logEvent("bonus_claimed", withValues: [
"bouns_type": "coins"
]);
Dictionary<string, string> BonusClaimedEvent = new Dictionary<string, string>();
BonusClaimedEvent.Add("bouns_type", "coins");
AppsFlyer.sendEvent ("bonus_type", BonusClaimedEvent);
Thương mại điện tử
Ứng dụng Thương mại điện tử cho phép người mua dễ dàng tìm kiếm và mua hàng trực tuyến. Một trong những tính năng chính của ứng dụng Thương mại điện tử là cho phép người mua so sánh giá để nhận giao dịch tốt nhất. Chúng tôi khuyên bạn nên triển khai ghi nhận sự kiện trong ứng dụng Thương mại điện tử của mình. ghi nhận sự kiện có thể giúp bạn có được thông tin chi tiết quý giá về những mặt hàng mọi người tìm kiếm và mua.
Các sự kiện chúng tôi khuyên bạn nên ghi nhận là tìm kiếm, giao dịch mua hàng, thêm vào giỏ hàng và thêm vào danh sách mong muốn. Bằng cách ghi nhận những sự kiện này, bạn có thể:
- Đánh dấu các danh mục phổ biến nhất.
- Biết người mua đang tìm kiếm những gì.
- Ghi nhận số lượng người mua đã hoàn thành thanh toán.
- Tìm hiểu xem có bao nhiêu người mua định kỳ và bao nhiêu người mua một lần.
Đăng ký Hoàn thành
Tên sự kiện: af_complete_registration
Mục đích
Mục đích của sự kiện Hoàn thành đăng ký là cho phép bạn ghi nhận số lượng người dùng đã đăng ký sau khi tải xuống và cài đặt ứng dụng. Bạn cũng có thể ghi nhận phương thức đăng ký, như Facebook, email, v.v.
Kích hoạt Logic
Kích hoạt sự kiện này sau khi người dùng đăng ký thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | Facebook, Google, email | Phương thức người dùng chọn đăng ký |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_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);
Đăng nhập
Tên Sự kiện: af_login
Mục đích
Sự kiện Đăng nhập cho phép bạn ghi nhận số lượng người dùng đăng nhập vào tài khoản của họ. Với sự kiện đăng nhập, bạn có thể ghi nhận:
- Bao nhiêu người dùng đang hoạt động.
- Khi nào người dùng hoạt động nhiều nhất.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng đăng nhập thành công.
Các trường được đề xuất
Sự kiện này có thể được gửi mà không cần có bất kỳ trường 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);
Tìm kiếm
Tên sự kiện: af_search
Mục đích
Bằng việc ghi nhận sự kiện Tìm kiếm bạn có thể tìm hiểu người dùng đang tìm kiếm những gì. Bạn cũng có thể tìm hiểu xem kết quả tìm kiếm nào phù hợp nhất với họ. Ngoài ra, bạn có thể ghi nhận những kết quả tìm kiếm nào dẫn đến giao dịch mua hàng.
Kích hoạt Logic
Bạn nên kích hoạt sự kiện này trong một trong hai trường hợp:
- Khi người dùng nhấp vào nút tìm kiếm.
- Khi người dùng truy cập vào trang kết quả tìm kiếm.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_search_string | chuỗi | váy đỏ, giày chạy bộ | Cụm từ tìm kiếm |
af_content_list | mảng của chuỗi | 001, 092 | Danh sách các ID nội dung |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SEARCH_STRING, "red shoes");
eventValue.put(AFInAppEventParameterName.CONTENT_LIST, new String[] {"001", "092"});
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamSearchString: @"red shoes",
AFEventParamContentList: @[@"001", @"092"]
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamSearchString: "red shoes",
AFEventParamContentList: ["001", "092"]
]);
Dictionary<string, string> SearchEvent = new Dictionary<string, string>();
SearchEvent.Add("af_search_string", "red shoes");
SearchEvent.Add("af_content_list", "['001', '092']");
AppsFlyer.sendEvent("af_search", SearchEvent);
Chế độ xem nội dung
Tên sự kiện: af_content_view
Mục đích
Sự kiện Xem nội dung có thể giúp bạn ghi nhận tỷ lệ xem các sản phẩm cụ thể. ghi nhận sự kiện này có thể giúp bạn:
- 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 Logic
Bạn nên kích hoạt sự kiện này khi người dùng xem trang chi tiết sản phẩm cụ thể.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 2000 | Giá sản phẩm |
af_content_id | chuỗi | 102 | ID sản phẩm |
af_content_type | chuỗi | giày dép | Danh mục sản phẩm |
af_currency | chuỗi | THB, USD | Đơn vị tiền tệ trong trang chi tiết sản phẩm |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 2000);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "102";
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shoes");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamPrice: @2000,
AFEventParamContentId: @"102",
AFEventParamContentType: @"shoes",
AFEventParamCurrency: @"USD"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView,
withValues: [
AFEventParamPrice: 2000,
AFEventParamContentId: "102",
AFEventParamContentType: "shoes",
AFEventParamCurrency: "USD"
]);
Dictionary<string, string> ContentViewEvent = new Dictionary<string, string>();
ContentViewEvent.Add("af_price", "2000");
ContentViewEvent.Add("af_content_type", "shoes");
ContentViewEvent.Add("af_currency", "USD");
AppsFlyer.sendEvent("af_content_view", ContentViewEvent);
Xem danh sách
Tên sự kiện: af_list_view
Mục đích
Thông thường, các nền tảng Thương mại điện tử có danh sách hiển thị các sản phẩm theo danh mục như sản phẩm mới thêm, sản phẩm liên quan, sản phẩm được đề xuất, v.v. Sự kiện Xem danh sách có thể giúp bạn ghi nhận danh sách nào được người mua xem nhiều nhất.
Kích hoạt Logic
Kích hoạt sự kiện này khi người mua xem danh sách cụ thể.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_content_type | chuỗi | liên quan, được đề xuất, hàng mới về | Loại danh sách |
af_content_list | mảng của chuỗi | 001, 092 | Danh sách ID nội dung từ danh mục |
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);
Thêm vào Danh sách mong muốn
Tên sự kiện: af_add_to_wishlist
Mục đích
Bằng cách ghi nhận sự kiện Thêm vào Danh sách mong muốn, bạn có thể ghi nhận sản phẩm và danh mục mà người mua thêm vào danh sách mong muốn của họ. Khi bạn biết sản phẩm nào thường được thêm vào danh sách mong muốn, bạn có thể cung cấp các sản phẩm này trong danh mục khuyến mãi hoặc giảm giá và khuyến khích người mua mua sản phẩm đó. Bạn cũng có thể nhắm lại mục tiêu những người dùng này theo các sản phẩm họ đã thêm vào danh sách mong muốn của họ.
Kích hoạt Logic
Kích hoạt sự kiện này khi người mua thêm các mục vào danh sách mong muốn của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 600 | Giá sản phẩm |
af_content_id | chuỗi | 300 | ID sản phẩm |
af_content_type | chuỗi | giày dép, thiết bị điện tử | Danh mục sản phẩm |
af_currency | chuỗi | GBP | Đơn vị tiền tệ được hiển thị trên trang chi tiết sản phẩm |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 600);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "300");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "electronics");
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_WISH_LIST, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToWishlist
withValues: @{
AFEventParamPrice: @600,
AFEventParamContentId: @"300",
AFEventParamContentType: @"electronics",
AFEventParamCurrency: @"GBP"
}];
AppsFlyerLib.shared().logEvent(AFEventAddToWishlist,
withValues: [
AFEventParamPrice: 600,
AFEventParamContentId: "300",
AFEventParamContentType: "electronics",
AFEventParamCurrency: "GBP"
]);
Dictionary<string, string> AddToWishListEvent =
new Dictionary<string, string>();
AddToWishListEvent.Add("af_price", "600");
AddToWishListEvent.Add("af_content_id", "300");
AddToWishListEvent.Add("af_content_type", "electronics");
AddToWishListEvent.Add("af_currency", "GBP");
AppsFlyer.sendEvent("af_add_to_wishlist", AddToWishListEvent);
Thêm vào Giỏ hàng
Tên sự kiện: af_add_to_cart
Mục đích
Mục đích của sự kiện Thêm vào Giỏ hàng là ghi nhận việc thêm sản phẩm vào giỏ hàng. Bằng cách ghi nhận sự kiện này, bạn có thể:
- Xem số lượng sản phẩm trung bình mà người mua thêm vào trong một lần mua hàng.
- Xem khoảng thời gian giữa hai lần thêm vào sản phẩm khác nhau.
- Xem bao nhiều người mua bỏ giỏ hàng của họ.
Kích hoạt Logic
Kích hoạt sự kiện này khi người mua thêm sản phẩm vào giỏ hàng.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 350, 1000 | Giá sản phẩm |
af_content_id | chuỗi | 001, 092 | ID sản phẩm |
af_content_type | chuỗi | áo sơ mi, giày dép | Loại sản phẩm |
af_currency | chuỗi | THB, USD | Đơn vị tiền tệ sản phẩm |
af_quantity | float | 2, 5 | Có bao nhiêu sản phẩm cùng loại đã được thêm vào giỏ hàng |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "001");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_CART, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToCart
withValues: @{
AFEventParamPrice: @350,
AFEventParamContentId: @"001",
AFEventParamContentType: @"shirt",
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2
}];
AppsFlyerLib.shared().logEvent(AFEventAddToCart, withValues: [
AFEventParamPrice: 350,
AFEventParamContentId: "001",
AFEventParamContentType: "shirt",
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2
]);
Dictionary<string, string> AddToCartEvent = new Dictionary<string, string>();
AddToCartEvent.Add("af_price", "350");
AddToCartEvent.Add("af_content_id", "001");
AddToCartEvent.Add("af_content_type", "shirt");
AddToCartEvent.Add("af_currency", "USD");
AddToCartEvent.Add("af_quantity", "2");
AppsFlyer.sendEvent("af_add_to_cart", AddToCartEvent);
Thanh toán được khởi tạo
Tên Sự kiện: af_initiated_checkout
Mục đích
ghi nhận sự kiện Bắt đầu thanh toán có thể giúp bạn hiểu cách người mua hành xử khi họ tiến hành thanh toán. Ví dụ, bạn có thể:
- Xem giá trung bình khi người mua thanh toán và so sánh giá với mức giá trung bình trong sự kiện mua.
- Xem liệu người dùng có thêm hoặc xóa sản phẩm sau khi tiếp tục thanh toán.
Kích hoạt Logic
Kích hoạt sự kiện này khi người mua bắt đầu thanh toán, nhưng chưa hoàn tất việc thanh toán.
Các trường được đề xuất
Lời khuyên
Nếu có một số sản phẩm từ các danh mục khác nhau, hãy sử dụng mảng để gửi dữ liệu.
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 4000 | Tổng giá tiền trong giỏ hàng |
af_content_id | chuỗi hoặc mảng chuỗi | 221, 124 | ID sản phẩm trong giỏ hàng |
af_content_type | chuỗi hoặc mảng chuỗi | áo sơ mi, quần | Danh sách danh mục sản phẩm |
af_currency | chuỗi | THB | Tiền tệ trong thời điểm thanh toán |
af_quantity | int hoặc mảng int | 2, 5 | Tổng số mặt hàng trong giỏ hàng |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories,, set the param value as: new String {"shirt", "pants"}
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories,, set the param value as: new int {2, 5}
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INITIATED_CHECKOUT, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInitiatedCheckout
withValues: @{
AFEventParamPrice: @350,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"shirt", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2
// for multiple product categories, set the param value as: @[@2, @5]
}];
AppsFlyerLib.shared().logEvent(AFEventInitiatedCheckout,
withValues: [AFEventParamPrice: 350,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]*/
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shirt", "pants"] AFEventParamCurrency: "USD",
AFEventParamQuantity: 2
//for multiple product categories, set the param value as: [2, 5]
]);
Dictionary<string, string> InitiatedCheckoutEvent = new Dictionary<string, string>();
InitiatedCheckoutEvent.Add("af_price", "350");
InitiatedCheckoutEvent.Add("af_content_id", "001");
InitiatedCheckoutEvent.Add("af_content_type", "shirt");
InitiatedCheckoutEvent.Add("af_currency", "USD");
InitiatedCheckoutEvent.Add("af_quantity", "2");
AppsFlyer.sendEvent ("af_initiated_checkout", InitiatedCheckoutEvent);
Mua
Tên sự kiện: af_purchase
Mục đích
Sự kiện Mua hàng là một trong những sự kiện quan trọng nhất trong Thương mại điện tử. ghi nhận sự kiện Mua hàng có thể cho bạn biết rất nhiều về xu hướng mua hàng trong ứng dụng Thương mại điện tử của bạn. Bằng cách ghi nhận sự kiện Mua hàng bạn có thể:
- Xem tổng số người dùng thực sự là người mua.
- Ghi nhận những người mua tích cực nhất và nhắm mục tiêu lại các giao dịch đó theo lịch sử mua hàng của họ.
- Hiểu những sản phẩm và danh mục nào hoạt động tốt trong tất cả các giao dịch mua.
- Ghi nhận doanh thu được tạo từ các giao dịch mua trên các sản phẩm và danh mục.
- Ghi nhận doanh thu được tạo trên các chiến dịch và nguồn phương tiện.
Kích hoạt Logic
Kích hoạt sự kiện này khi người mua hoàn tất giao dịch mua của họ nhưng chưa nhất thiết trả tiền.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 1200 | Doanh thu từ giao dịch mua |
af_price | float | 4000 | Tổng số tiền mua hàng |
af_content_id | chuỗi | 121, 262 | ID mặt hàng |
af_content_type | chuỗi | giầy dép, quần | Danh mục mặt hàng |
af_currency | chuỗi | AUD | Tiền tệ |
af_quantity | int | 2, 5 | Tổng số mặt hàng trong giỏ hàng |
af_order_id | chuỗi | X123ABC | ID đơn đặt hàng được tạo sau khi mua |
af_receipt_id | chuỗi | X123ABC | ID đơn đặt hàng, nhưng cần thiết để tích hợp nhắm mục tiêu lại cho CRITEO và Google AdWords |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: // new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories,, set the param value as: new String {"shoes", "pants"}
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {2, 5}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as:
// @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as:
// @[@"shoes", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as:
// @[@2, @5]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase, withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"],
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shoes", "pants"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: [2, 5]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> PurchaseEvent = new Dictionary<string, string>();
PurchaseEvent.Add("af_revenue", "1200");
PurchaseEvent.Add("af_price", "4000");
PurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
PurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["shirt", "pants"]
PurchaseEvent.Add("af_currency", "USD");
PurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [2, 5]
PurchaseEvent.Add("af_order_id", "X123ABC");
PurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("af_purchase", PurchaseEvent);
Giao dịch mua hàng đã hoàn tất
Tên sự kiện: completed_purchase
Mục đích
ghi nhận sự kiện Giao dịch đã hoàn tất có thể giúp bạn phân tích các giao dịch mua hàng được thanh toán đầy đủ như thế nào.
Kích hoạt Logic
Khi một người dùng trả tiền cho sản phẩm, sự kiện có thể được gửi bằng S2S vì sự kiện này xảy ra sau.
Quan trọng!
Sự kiện này sẽ được gửi nếu thanh toán được thực hiện offline tức là chuyển khoản ngân hàng hoặc thanh toán tiền mặt khi giao hàng. Nếu bạn gửi sự kiện này, hãy đảm bảo rằng sự kiện Mua hàng ( af_purchase
) không chứa tham số af_revenue
. Nếu bạn gửi cả hai sự kiện với tham số af_revenue
, doanh thu sẽ tăng gấp đôi.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 4000 | Doanh thu được tạo từ giao dịch mua |
af_order_id | chuỗi | X123ABC | ID đơn đặt hàng được tạo từ giao dịch mua |
af_receipt_id | chuỗi | X123ABC | ID hóa đơn được tạo cho người mua |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 4000);
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id" "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "completed_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"completed_purchase"
withValues: @{
AFEventParamRevenue: @4000,
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("completed_purchase", withValues: [
AFEventParamRevenue: 4000,
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> CompletedPurchaseEvent = new Dictionary<string, string>();
CompletedPurchaseEvent.Add("af_revenue", "1200");
CompletedPurchaseEvent.Add("af_order_id", "X123ABC");
CompletedPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("completed_purchase", CompletedPurchaseEvent);
Xóa khỏi giỏ hàng
Tên sự kiện: remove_from_cart
Mục đích
Bằng cách ghi nhận sự kiện Xóa khỏi giỏ hàng bạn có thể:
- Xem những mặt hàng mà người mua xóa khỏi giỏ hàng của họ.
- Xem danh mục sản phẩm của các mặt hàng mà người mua xóa khỏi giỏ hàng của họ.
- So sánh dữ liệu từ sự kiện Thêm vào giỏ hàng để có được thông tin chi tiết về các sản phẩm không được thanh toán.
Kích hoạt Logic
Kích hoạt sự kiện này khi người mua xóa một mặt hàng khỏi giỏ hàng.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_content_id | chuỗi | 521 | ID sản phẩm hoặc mặt hàng |
af_content_type | chuỗi | giày dép | Danh mục sản phẩm hoặc mặt hàng |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "521");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shoes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "remove_from_cart", eventValue);
[[AppsFlyerLib shared] logEvent:@"remove_from_cart"
withValues: @{
AFEventParamContentId: @"521",
AFEventParamContentType: @"shoes",
}];
AppsFlyerLib.shared().logEvent("remove_from_cart", withValues: [
AFEventParamContentId: "521",
AFEventParamContentType: "shoes",
]);
Dictionary<string, string> RemoveFromCartEvent = new Dictionary<string, string>();
RemoveFromCartEvent.Add("af_content_id", "521");
RemoveFromCartEvent.Add("af_content_type", "shoes");
AppsFlyer.sendEvent ("remove_from_cart", RemoveFromCartEvent);
Mua hàng lần đầu
Tên sự kiện: first_purchase
Mục đích
Sự kiện này giống như sự kiện Mua hàng. Tuy nhiên, không giống sự kiện Mua hàng, sự kiện Mua hàng lần đầu có thể được sử dụng để:
- Xem khoảng thời gian cần thiết để một người mua mới mua sản phẩm.
- Xem những sản phẩm mà người mua lần đầu muốn mua.
- Xem giá và doanh thu trung bình của lần mua hàng đầu tiên.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng hoàn tất giao dịch mua đầu tiên của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 1200 | Doanh thu từ giao dịch mua |
af_price | float | 4000 | Tổng số tiền mua hàng |
af_content_id | chuỗi | 121, 262 | ID mặt hàng |
af_content_type | chuỗi | giầy dép, quần | Danh mục mặt hàng |
af_currency | chuỗi | AUD | Tiền tệ |
af_quantity | int | 2, 5 | Số lượng mặt hàng trong giỏ hàng |
af_order_id | chuỗi | X123ABC | ID đơn đặt hàng được tạo sau khi mua |
af_receipt_id | chuỗi | X123ABC | ID đơn đặt hàng, nhưng cần thiết để tích hợp nhắm mục tiêu lại cho CRITEO và Google AdWords |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "shirt");
// for multiple product categories set the param value as: new String {"shoes", "pants"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {2, 5}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"shoes", @"pants"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@2, @5]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["shoes", "pants"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [2, 5]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["shirt", "pants"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [2, 5]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Giải trí: truyền trực tiếp
Với yêu cầu ngày càng tăng cao của người dùng về nội dung theo yêu cầu, thị trường ứng dụng phát trực tuyến ngày càng cạnh tranh gay gắt. Nếu bạn quản lý và chạy một ứng dụng phát trực tuyến nội dung theo yêu cầu, bạn nên ghi nhận các sự kiện trong ứng dụng.
Lời khuyên
Các sự kiện thảo luận ở đây cũng có liên quan với các ứng dụng phát trực tiếp chạy trên các tivi thông minh sau đây:
- TV thông minh Android
- Apple TV (tvOS)
- Amazon Fire TV
Bằng cách ghi nhận các sự kiện trong ứng dụng phát trực tuyến, bạn có thể:
- Xem nội dung người dùng sử dụng.
- Phân tích và tối ưu hóa chiến dịch theo nhu cầu nội dung.
- Đo lường mức độ tương tác và sử dụng của người dùng.
Đăng ký Hoàn thành
Tên sự kiện: af_complete_registration
Mục đích
Mục đích của sự kiện Hoàn thành đăng ký là cho phép bạn ghi nhận số lượng người dùng đã đăng ký sau khi tải xuống và cài đặt ứng dụng. Bạn cũng có thể ghi nhận phương thức đăng ký, như Facebook, email, v.v. để tìm hiểu những phương thức đăng ký mà người dùng của bạn ưa thích.
Kích hoạt Logic
Kích hoạt sự kiện này sau khi người dùng đăng ký thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | Facebook, Google, email | Phương thức người dùng chọn đăng ký |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_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);
Đăng nhập
Tên Sự kiện: af_login
Mục đích
Sự kiện Đăng nhập cho phép bạn ghi nhận số lượng người dùng đăng nhập vào tài khoản của họ. Với sự kiện đăng nhập, bạn có thể ghi nhận:
- Bao nhiêu người dùng đang hoạt động.
- Khi nào người dùng hoạt động nhiều nhất.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng đăng nhập thành công.
Các trường được đề xuất
Sự kiện này có thể được gửi mà không cần có bất kỳ trường 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);
Bắt đầu dùng thử
Tên sự kiện: af_start_trial
Mục đích
Nhiều dịch vụ phát trực tuyến cung cấp cho người dùng thời gian dùng thử để khám phá các tính năng cao cấp. Bằng cách ghi nhận sự kiện Bắt đầu Dùng thử bạn có thể:
- Xem có bao nhiêu người dùng chọn tham gia trong thời gian dùng thử.
- Nếu bản dùng thử là một phần của chương trình quảng cáo hoặc cộng tác với đối tác, bạn có thể ghi nhận quảng cáo nào đã nhắc người dùng kích hoạt thời gian dùng thử.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng chọn tham gia và kích hoạt thời gian dùng thử.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
trial_method | chuỗi | miễn phí với điện thoại mới, miễn phí với nhà cung cấp dịch vụ, khuyến mãi, phiếu giảm giá | Phương pháp kích hoạt bản dùng thử |
trial_method_identifier | chuỗi |
tên nhà cung cấp dịch vụ cụ thể là Vodafone, tên đối tác, cụ thể là Facebook, mã phiếu giảm giá, cụ thể là TRA123 |
Mã định danh phương pháp thử |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("trial_method", "coupon code");
eventValue.put("trial_method_identifier", "TRA123");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.START_TRIAL, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventStartTrial
withValues: @{
@"trial_method": @"coupon code",
@"trial_method_identifier": @"TRA123"
}]
AppsFlyerLib.shared().logEvent(AFEventStartTrial,
withValues: [
"trial_method": "coupon code",
"trial_method_identifier": "TRA123"
]);
Dictionary<string, string> SubscriptionTrial = new Dictionary<string, string>();
SubscriptionTrial.Add("trial_method ", "coupon code");
SubscriptionTrial.Add("trial_method_identifier", "TRA123");
AppsFlyer.sendEvent("af_start_trial", SubscriptionTrial);
Đăng ký
Tên sự kiện: af_subscribe
Mục đích
Đăng ký là yếu tố chính của dịch vụ phát trực tuyến. Bằng cách ghi nhận các sự kiện đăng ký người dùng, bạn có thể:
- Xem chiến dịch nào mang đến những người dùng đăng ký.
- So sánh lượng người dùng thử với lượng người dùng đă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 phương tiện.
Kích hoạt Logic
Kích hoạt sự kiện này theo một trong hai tình huống:
- khi người dùng đăng ký thành công.
- Khi đăng ký được gia hạn.
Lời khuyên
Tham khảo Hướng dẫn ghi nhận Đăng ký của chúng tôi để biết thêm thông tin.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
new_subscription | boolean | đúng / sai | Cho dù đăng ký mới hay gia hạn |
af_coupon_code | chuỗi | 3MonthsSubscription | Mã phiếu giảm giá nếu có sử dụng trong quá trình đăng ký |
coupon_code_value | chuỗi | 10% | Phiếu giảm giá khấu trừ bao nhiêu tiền từ giá ban đầu |
af_revenue | float | 5 | Doanh thu liên quan tới đăng ký |
af_currency | chuỗi | USD | Đơn vị tiền tệ thanh toán cho đăng ký |
subscription_method | chuỗi | thẻ tín dụng, ví điện tử, PayPal | Phương thức thanh toán sử dụng trong đăng ký |
expiration_date | chuỗi | 2018/07/18 | Ngày hết hạn của thuê bao |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("new_subscription", true);
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "3MonthsSubscription");
eventValue.put("coupon_code_value", "10%");
eventValue.put(AFInAppEventParameterName.REVENUE, 5);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put("subscription_method", "");
eventValue.put("expiration_date", "2018/07/18");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SUBSCRIBE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSubscribe
withValues: @{
@"new_subscription": @TRUE,
AFEventParamCouponCode: @"3MonthsSubscription",
@"coupon_code_value": @"10%",
AFEventParamRevenue: @5,
AFEventParamCurrency: @"USD",
@"subscription_method": @"",
@"expiration_date": @"2018/07/18"
}];
AppsFlyerLib.shared().logEvent(AFEventSubscribe,
withValues: [
"new_subscription": true,
AFEventParamCouponCode: "3MonthsSubscription",
"coupon_code_value": "10%",
AFEventParamRevenue: 5,
AFEventParamCurrency: "USD",
"subscription_method": "",
"expiration_date": "2018/07/18"
]);
Dictionary<string, string> Subscription = new Dictionary<string, string>();
Subscription.Add("new_subscription", "true");
Subscription.Add("af_coupon_code", "3MonthsSubscription");
Subscription.Add("coupon_code_value", "10%");
Subscription.Add("af_revenue", "5");
Subscription.Add("af_currency", "USD");
Subscription.Add("subscription_method", "");
Subscription.Add("expiration_date", "2018/07/18");
AppsFlyer.sendEvent("af_subscribe", Subscription);
Phát đa phương tiện
Tên sự kiện: media_play
Mục đích
ghi nhận sự kiện Media Play có nghĩa là ghi nhận các sự kiện trong đó người dùng phát tệp phương tiện mà bạn cung cấp. Các tệp phương tiện đó có thể là video, âm nhạc, chương trình truyền hình, chương trình phát thanh, v.v. Nếu bạn cung cấp nhiều loại tệp phương tiện, bạn có thể ghi nhận tỷ lệ phát giữa các loại nội dung và phương tiện khác nhau. Ví dụ: bạn có thể xem liệu người dùng có phát nhạc nhiều hơn video hay không. Bạn cũng có thể xem liệu người dùng có xem nhiều chương trình truyền hình hơn phim không. Ngoài ra, bằng cách ghi nhận sự kiện phát tệp phương tiện, bạn có thể:
- Ghi nhận mức độ xem các tệp phương tiện theo loại và nội dung.
- Xem ngôn ngữ nội dung được truyền trực tuyến phổ biến nhất.
- Xem thời lượng thời gian tối thiểu, tối đa và trung bình của nội dung được truyền trực tuyến.
Kích hoạt Logic
Kích hoạt sự kiện này sau một số được xác định trước (2 phút) của nội dung được phát trực tuyến.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_content_type | chuỗi | chương trình truyền hình, âm nhạc | Loại nội dung phát trực tuyến |
af_content_id | chuỗi | 092, E34 | Id nội dung phát trực tuyến |
af_content | chuỗi | Tiêu đề nội dung | Tiêu đề nội dung, tức là tên bài hát hoặc tiêu đề và tập của chương trình truyền hình |
media_duration | float | 5 | Thời gian chạy |
ngôn ngữ | chuỗi | en-us, fr, es | Ngôn ngữ nội dung |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_play", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_play"
withValues: @{
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_play",
withValues: [
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaPlay = new Dictionary<string, string>();
MediaPlay.Add("af_content_type", "tv show");
MediaPlay.Add("af_content_id", "E34");
MediaPlay.Add("af_content", "My show");
MediaPlay.Add("media_duration", "5");
MediaPlay.Add("language", "en-us");
AppsFlyer.sendEvent("media_play", MediaPlay);
Số phút của đa phương tiện
Tên Sự kiện: media_minutes
Mục đích
Số phút của đa phương tiện là lượng thời gian mà người dùng sử dụng cho một mục nội dung nhất định. Sau chỉ số doanh thu, đây là số liệu quan trọng nhất trong ngành phát trực tuyến. Số liệu này rất quan trọng vì nó cho phép bạn ước tính mức sử dụng dịch vụ của người dùng. Nó cũng cho phép bạn biết được tỷ lệ sử dụng tổng thể của dịch vụ là bao nhiêu và nội dung nào là phổ biến nhất. Bằng cách ghi nhận Số phút của đa phương tiện (sử dụng thông số minutes_consumed) bạn có thể:
- Xem người dùng nào sử dụng nhiều dịch vụ của bạn và người dùng nào ít sử dụng.
- Hiểu được loại phương tiện và nội dung nào phổ biến.
Kích hoạt Logic
Kích hoạt sự kiện này theo một trong hai tình huống:
- Khi nào người dùng kết thúc truyền trực tuyến một tệp đa phương tiện.
- Khi nào người dùng thoát truyền trực tuyến một tệp đa phương tiện.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
minutes_consumed | float | 3 | Thời gian người dùng chạy đa phương tiện thực tế |
af_content_type | chuỗi | chương trình truyền hình, âm nhạc | Loại nội dung phát trực tuyến |
af_content_id | chuỗi | 092, E34 | Id nội dung phát trực tuyến |
af_content | chuỗi | Tiêu đề nội dung | Tiêu đề nội dung, tức là tên bài hát hoặc tiêu đề và tập của chương trình truyền hình |
media_duration | float | 5 | Thời gian chạy |
ngôn ngữ | chuỗi | en-us, fr, es | Ngôn ngữ nội dung |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"media_minutes", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_minutes"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_minutes", withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaMinutes =
new Dictionary<string, string>();
MediaMinutes.Add("minutes_consumed", "3");
MediaMinutes.Add("af_content_type", "tv show");
MediaMinutes.Add("af_content_id", "E34");
MediaMinutes.Add("af_content", "My show");
MediaMinutes.Add("media_duration", "5");
MediaMinutes.Add("language", "en-us");
AppsFlyer.sendEvent("media_minutes", MediaMinutes);
Đa phương tiện đã tải xuống
Tên sự kiện: media_downloaded
Mục đích
ghi nhận tệp phương tiện đã tải xuống có thể giúp bạn làm rõ ưu tiên của người dùng. Bạn có thể ghi nhận lượt phát tệp phương tiện và lượt tải về tệp phương tiện và so sánh hai loại này. Bạn có thể xem người dùng thích phát loại tệp phương tiện nào và muốn tải xuống loại tệp phương tiện nào.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng bắt đầu tải xuống tệp đa phương tiện.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_content_type | chuỗi | chương trình truyền hình, âm nhạc | Loại nội dung |
af_content_id | chuỗi | 092, E34 | ID nội dung |
af_content | chuỗi | Tiêu đề nội dung | Tiêu đề nội dung, tức là tên bài hát hoặc tiêu đề và tập của chương trình truyền hình |
media_duration | float | 5 | Thời gian chạy |
ngôn ngữ | chuỗi | en-us, fr, es | Ngôn ngữ nội dung |
Ví dụ về eCode
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_downloaded", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_downloaded"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_downloaded",
withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"
]);
Dictionary<string, string> MediaDownloaded = new Dictionary<string, string>();
MediaDownloaded.Add("minutes_consumed", "3");
MediaDownloaded.Add("af_content_type", "tv show");
MediaDownloaded.Add("af_content_id", "E34");
MediaDownloaded.Add("af_content", "My show");
MediaDownloaded.Add("media_duration", "5");
MediaDownloaded.Add("language", "en-us");
AppsFlyer.sendEvent("media_downloaded", MediaDownloaded);
Đa phương tiện đã lưu
Tên sự kiện: media_saved
Mục đích
ghi nhận tệp phương tiện đã lưu có thể giúp bạn làm rõ ưu tiên của người dùng.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào tệp đa phương tiện được lưu vào thiết bị của người dùng.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_content_type | chuỗi | chương trình truyền hình, âm nhạc | Loại nội dung |
af_content_id | chuỗi | 092, E34 | ID nội dung |
af_content | chuỗi | Tiêu đề nội dung | Tiêu đề nội dung, tức là tên bài hát hoặc tiêu đề và tập của chương trình truyền hình |
media_duration | float | 5 | Thời gian chạy |
ngôn ngữ | chuỗi | en-us, fr, es | Ngôn ngữ nội dung |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "tv show");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "E34");
eventValue.put(AFInAppEventParameterName.CONTENT, "My Show");
eventValue.put("media_duration", 5);
eventValue.put("language", "en-us");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "media_saved", eventValue);
[[AppsFlyerLib shared] logEvent:@"media_saved"
withValues: @{
@"minutes_consumed": @3,
AFEventParamContentType: @"tv show",
AFEventParamContentId: @"E34",
AFEventParamContent: @"My Show",
@"duration": @5,
@"langague": @"en-us"
}];
AppsFlyerLib.shared().logEvent("media_saved",
withValues: [
"minutes_consumed": 3,
AFEventParamContentType: "tv show",
AFEventParamContentId: "E34",
AFEventParamContent: "My Show",
"media_duration": 5,
"language": "en-us"]);
Dictionary<string, string> MediaSaved = new Dictionary<string, string>();
MediaSaved.Add("minutes_consumed", "3");
MediaSaved.Add("af_content_type", "tv show");
MediaSaved.Add("af_content_id", "E34");
MediaSaved.Add("af_content", "My show");
MediaSaved.Add("media_duration", "5");
MediaSaed.Add("language", "en-us");
AppsFlyer.sendEvent("media_saved", MediaSaved);
Tài chính: ngân hàng
Các ứng dụng về tài chính và ngân hàng cung cấp cho người dùng khả năng thực hiện nhiều mục tiêu liên quan đến tài chính, bao gồm đăng ký thẻ tín dụng mới hoặc đăng ký vay. Các sự kiện trong ứng dụng mà chúng tôi khuyến khích bạn ghi nhận trong các ứng dụng về tài chính/ngân hàng bao gồm mở tài khoản, đơn đăng ký thẻ tín dụng và đơn đăng ký vay. Dưới đây là một số ví dụ cho thấy việc ghi nhận các sự kiện này có thể mang lại lợi ích cho bạn như thế nào:
- Việc ghi nhận đơn đăng ký tài khoản trong ứng dụng giúp bạn nắm được người dùng tài khoản cần điều gì nhất và cho bạn ý tưởng để nhắm mục tiêu lại.
- Việc ghi nhận đơn đăng ký thẻ tín dụng giúp bạn nắm rõ những lợi ích mà người dùng tìm kiếm trong thẻ tín dụng.
- Việc ghi nhận đơn đăng ký vay giúp bạn nắm rõ người dùng cần hỗ trợ về tài chính để làm gì và họ muốn được hỗ trợ bao nhiêu.
Đăng nhập
Tên Sự kiện: af_login
Mục đích
Sự kiện này có thể giúp bạn hiểu về tỷ lệ giữ chân người dùng đã đăng ký của bạn.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào người dùng đăng nhập.
Các trường được đề xuất
Sự kiện này có thể được gửi mà không cần có bất kỳ trường 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);
Đăng ký Hoàn thành
Tên sự kiện: af_complete_registration
Mục đích
Bạn có thể ghi nhận đăng ký người dùng và so sánh với các dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Bằng cách ghi nhận các sự kiện đăng ký người dùng, bạn có thể:
- Tìm hiểu xem có bao nhiêu người dùng đã cài đặt ứng dụng nhưng chưa bao giờ đăng ký.
- Tìm hiểu những phương thức đăng ký mà người dùng của bạn ưa thích.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi người dùng hoàn tất quá trình đăng ký.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | email, facebook | Loại phương thức đăng ký |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
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> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Đã xác minh đăng ký
Tên Sự kiện: registration_verified
Mục đích
Bạn có thể ghi nhận lượt đăng ký được chấp nhận 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ằng cách ghi nhận các sự kiện đăng ký đã xác minh, bạn có thể biết số lượng người dùng đăng ký nhưng không được chấp nhận.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi đăng ký được xác minh.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
submit_registration | chuỗi | email, facebook | Đã xác minh loại phương thức đăng ký. Không điền thông tin nhận dạng cá nhân (PII). |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("submit_registration", "facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "registration_verified", eventValue);
[[AppsFlyerLib shared] logEvent:@"registration_verified"
withValues: @{
@"submit_registartion": @"facebook"
}];
AppsFlyerLib.shared().logEvent("registration_verified",
withValues: [
"submit_registration": "facebook"
])
Dictionary<string, string> RegistrationVerifiedEvent = new Dictionary<string, string>();
RegistrationVerifiedEvent.Add("submit_registration", "facebook");
AppsFlyer.sendEvent ("registration_verified", RegistrationVerifiedEvent);
Gửi đơn đăng ký tài khoản
Tên Sự kiện: submit_account_application
Mục đích
Bạn có thể ghi nhận một đơn đăng ký tài khoản và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Ví dụ: bằng cách ghi nhận các sự kiện đăng ký của người dùng, bạn có thể biết được số lượng người dùng đăng ký nhưng không đăng ký mở tài khoản.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi người dùng hoàn tất quá trình đăng ký tài khoản.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
account_type | chuỗi | tiết kiệm | Loại tài khoản được nộp đơn đăng ký. |
application_method | chuỗi | ứng dụng | Nơi thực hiện đơn đăng ký. |
PII_type | chuỗi | hộ chiếu | Loại ID được sử dụng trong quá trình đăng ký. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "passport");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "submit_account_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_account_application"
withValues: @{
@"account_type": @"savings",
@"application_method": @"app",
@"PII_type": @"passport"
}];
AppsFlyerLib.shared().logEvent("submit_account_application",
withValues: [
"account_type": "savings",
"application_method": "app",
"PII_type": "passport"
])
Dictionary<string, string> SubmitAccountApplicationEvent = new Dictionary<string, string>();
SubmitAccountApplicationEvent.Add("account_type", "savings");
SubmitAccountApplicationEvent.Add("application_method", "app");
SubmitAccountApplicationEvent.Add("PII_type", "passport");
AppsFlyer.sendEvent ("submit_account_applicationn", SubmitAccountApplicationEvent);
Mở tài khoản thành công
Tên Sự kiện: open_account_success
Mục đích
Bạn có thể ghi nhận các đơn đăng ký tài khoản đã được chấp nhận và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Ví dụ: bằng cách ghi nhận các đơn đăng ký tài khoản thành công, bạn có thể tìm hiểu số lượng người dùng đăng ký tài khoản nhưng không được chấp nhận và cố gắng cải thiện kênh hoặc nhắm mục tiêu lại những người dùng đó sau.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi đơn đăng ký của người dùng được chấp nhận và tài khoản được mở.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
account_type | chuỗi | tiết kiệm | Loại tài khoản đã mở. |
application_method | chuỗi | ứng dụng | Nơi thực hiện đơn đăng ký. |
PII_type | chuỗi | thẻ căn cước | Loại ID được sử dụng trong quá trình đăng ký. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "identification card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "open_account_suucess", eventValue);
[[AppsFlyerLib shared] logEvent:@"open_account_success"
withValues: @{
@"account_type": @"savings",
@"application_method": @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("open_account_success",
withValues: [
"account_type": "savings",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> OpenAccountSuccessEvent = new Dictionary<string, string>();
OpenAccountSuccessEventEvent.Add("account_type", "savings");
OpenAccountSuccessEventEvent.Add("application_method", "app");
OpenAccountSuccessEventEvent.Add("PII_type", "identification_card");
AppsFlyer.sendEvent ("open_account_success", OpenAccountSuccessEvent);
Đã từ chối mở tài khoản
Tên Sự kiện: open_account_rejected
Mục đích
Bạn có thể ghi nhận các đơn đăng ký tài khoản đã bị từ chối và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Ví dụ: bằng cách ghi nhận các đơn đăng ký tài khoản không thành công, bạn có thể tìm hiểu số lượng người dùng đăng ký tài khoản nhưng không được chấp nhận và cố gắng cải thiện kênh hoặc nhắm mục tiêu lại những người dùng đó sau.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi người dùng hoàn tất quá trình đăng ký.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
account_type | chuỗi | tiết kiệm | Loại tài khoản được nộp đơn đăng ký. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("account_type", "savings");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "open_account_rejected", eventValue);
[[AppsFlyerLib shared] logEvent:@"open_account_rejected"
withValues: @{
@"account_type": @"savings"
}];
AppsFlyerLib.shared().logEvent("open_account_rejected",
withValues: [
"account_type": "savings"
])
Dictionary<string, string> OpenAccountRejectedEvent = new Dictionary<string, string>();
OpenAccountRejectedEvent.Add("account_type", "savings");
AppsFlyer.sendEvent ("open_account_rejected", OpenAccountRejectedEvent);
Đơn đăng ký thẻ tín dụng
Tên Sự kiện: submit_credit_card_application
Mục đích
Bạn có thể ghi nhận một đơn đăng ký thẻ tín dụng và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Ví dụ: bằng cách ghi nhận các đơn đăng ký thẻ tín dụng của người dùng, bạn có thể tìm hiểu về số lượng người dùng đăng ký nhưng không được chấp nhận và sử dụng những thông tin này để cải thiện kênh của bạn hoặc nhắm mục tiêu lại họ sau.
Kích hoạt Logic
Để ghi nhận đúng cách sự kiện này, bạn nên kích hoạt sự kiện đó khi người dùng gửi đơn đăng ký thẻ tín dụng mới.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
credit_card_type | chuỗi | thẻ vàng | Loại thẻ tín dụng được đăng ký. |
application_method | chuỗi | ứng dụng | Nơi thực hiện đơn đăng ký. |
PII_type | chuỗi | hộ chiếu | Loại ID được sử dụng trong quá trình đăng ký. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", "gold card");
eventValue.put("application_method", "app");
eventValue.put("PII_type", "passport");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "submit_credit_card_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_credit_card_application"
withValues: @{
@"credit_card_type": @"gold_card",
@"application_method": @"app",
@"PII_type": @"passport"
}];
AppsFlyerLib.shared().logEvent("submit_credit_card_application",
withValues: [
"credit_card_type": "gold_card",
"application_method": "app",
"PII_type": "passport"
])
Dictionary<string, string> SubmitCreditCardApplicationEvent = new Dictionary<string, string>();
SubmitCreditCardApplicationEvent.Add("credit_card_type", "gold_card");
SubmitCreditCardApplicationEvent.Add("application_method", "app");
SubmitCreditCardApplicationEvent.Add("PII_type", "passport");
AppsFlyer.sendEvent ("submit_credit_card_application", SubmitCreditCardApplicationEvent);
Đơn đăng ký thẻ tín dụng thành công
Tên Sự kiện: credit_card_application_success
Mục đích
Bạn có thể ghi nhận một đơn đăng ký thẻ tín dụng được chấp nhận và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Ví dụ: bằng cách ghi nhận các đơn đăng ký thẻ tín dụng thành công, bạn có thể biết số lượng người dùng đăng ký nhưng không được chấp nhận và sử dụng những thông tin này để cải thiện kênh của bạn hoặc nhắm mục tiêu lại những người dùng được chấp nhận cho các loại thẻ tín dụng khác.
Kích hoạt Logic
Để ghi nhận đúng cách sự kiện này, bạn nên kích hoạt sự kiện đó khi đơn đăng ký thẻ tín dụng của người dùng được chấp nhận.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
credit_card_type | chuỗi | thẻ vàng | Loại thẻ tín dụng được đăng ký. |
application_method | chuỗi | ứng dụng | Nơi thực hiện đơn đăng ký. |
PII_type | chuỗi | thẻ căn cước | Loại ID được sử dụng trong quá trình đăng ký. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", gold card);
eventValue.put("application_method", app);
eventValue.put("PII_type", identification card);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_application_success", eventValue);
[[AppsFlyerLib shared] logEvent:@"credit_card_application_success"
withValues: @{
@"credit_card_type": @"gold card",
@"application_method": @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("credit_card_application_success",
withValues: [
"credit_card_type": "gold card",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> CreditCardApplicationSuccessEvent = new Dictionary<string, string>();
CreditCardApplicationSuccessEvent.Add("redit_card_type", "gold card");
CreditCardApplicationSuccessEvent.Add("application_method", "app");
CreditCardApplicationSuccessEvent.Add("PII_type", "identificationcard");
AppsFlyer.sendEvent ("credit_card_application_success", CreditCardApplicationSuccessEvent);
Đơn đăng ký thẻ tín dụng bị từ chối
Tên Sự kiện: credit_card_application_rejected
Mục đích
Bạn có thể ghi nhận một đơn đăng ký thẻ tín dụng bị từ chối và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Ví dụ: bằng cách ghi nhận các đơn đăng ký thẻ tín dụng không thành công, bạn có thể biết số lượng người dùng đăng ký nhưng không được chấp nhận và sử dụng những thông tin này để cải thiện kênh của bạn hoặc nhắm mục tiêu lại những người dùng đó cho các loại thẻ tín dụng khác.
Kích hoạt Logic
Để ghi nhận đúng cách sự kiện này, bạn nên kích hoạt sự kiện đó khi đơn đăng ký thẻ tín dụng của người dùng bị từ chối.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
credit_card_type | chuỗi | thẻ vàng | Loại thẻ tín dụng được đăng ký. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", "gold card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_application_rejected", eventValue);
[[AppsFlyerLib shared] logEvent: @"credit_card_application_rejected"
withValues: @{
"credit_card_type: @"gold card"
}];
AppsFlyerLib.shared().logEvent("credit_card_application_rejected",
withValues: [
"credit_card_type: "gold card"
])
Dictionary<string, string> CreditCardApplicationRejectedEvent = new Dictionary<string, string>();
CreditCardApplicationRejectedEvent.Add("credit_card_type", "gold card");
AppsFlyer.sendEvent ("credit_card_application_rejected", CreditCardApplicationRejectedEvent);
Kích hoạt thẻ tín dụng
Tên Sự kiện: credit_card_activation
Mục đích
Bạn có thể ghi nhận thời điểm người dùng kích hoạt thẻ tín dụng mới của họ và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Ví dụ: bằng cách ghi nhận số lần kích hoạt thẻ tín dụng, bạn có thể biết có bao nhiêu người dùng nhận được thẻ tín dụng nhưng không thực hiện kích hoạt thẻ và sử dụng những thông tin này để cải thiện kênh của bạn hoặc nhắm mục tiêu lại những người dùng này.
Kích hoạt Logic
Để ghi nhận đúng cách sự kiện này, bạn nên kích hoạt sự kiện đó khi người dùng kích hoạt thẻ tín dụng mới của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
credit_card_type | chuỗi | thẻ vàng | Loại thẻ tín dụng được đăng ký. |
application_method | chuỗi | ứng dụng | Nơi thực hiện đơn đăng ký. |
PII_type | chuỗi | thẻ căn cước | Loại ID được sử dụng trong quá trình đăng ký. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("credit_card_type", gold card);
eventValue.put("application_method", app);
eventValue.put("PII_type", identification card);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "credit_card_activation", eventValue);
[[AppsFlyerLib shared] logEvent: @"credit_card_activation"
withValues: @{
@"credit_card_type": @"gold card",
@"application_method: @"app",
@"PII_type": @"identification card"
}];
AppsFlyerLib.shared().logEvent("credit_card_activation",
withValues: [
"credit_card_type": "gold card",
"application_method": "app",
"PII_type": "identification card"
])
Dictionary<string, string> CreditCardActivationEvent = new Dictionary<string, string>();
CreditCardActivationEvent.Add("credit_card_type", "gold card");
CreditCardActivationEvent.Add(application_method", "app");
CreditCardActivationEvent.Add(PII_type", "identification_card");
AppsFlyer.sendEvent ("credit_card_activation", CreditCardActivationEvent);
Nộp đơn xin vay tiền
Tên sự kiện: submit_loan_application
Mục đích
Mục đích của sự kiện này là giúp bạn ghi nhận các đơn đăng ký vay. Bằng cách ghi nhận sự kiện Gửi đơn đăng ký vay bạn có thể:
- Ghi nhận tổng số đơn đăng ký vay trong ứng dụng của bạn.
- Tìm hiểu về số tiền tối đa, tối thiểu và trung bình trong các đơn xin vay tiền.
- Xem những loại khoản vay mà mọi người đăng ký.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng gửi thành công một đơn xin vay tiền.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
loan_id | chuỗi | 1735102 | ID khoản vay |
loan_type | chuỗi | nhà ở | Mục đích của khoản vay. |
loan_amount | float | 1000 | Lượng tiền yêu cầu |
loan_period | chuỗi | 3 tháng | Thời gian cho vay. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("loan_id", "1735102");
eventValue.put("loan_type", "housing");
eventValue.put("loam_amount", "1000");
eventValue.put("loan_period", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"submit_loan_application", eventValue);
[[AppsFlyerLib shared] logEvent: @"submit_loan_application"
withValues: @{
@"loan_id": @"1735102",
@"loan_type": @"housing",
@"loan_amount": @"1000",
@"loan_period": @"3 months"
}];
AppsFlyerLib.shared().logEvent("submit_loan_application",
withValues: [
"loan_id": "1735102",
"loan_type": "housing",
"loan_amount": "1000",
"loan_period": "3 months"
])
Dictionary<string, string> SubmitLoanApplication = new Dictionary<string, string>();
SubmitLoanApplication.Add("loan_id", "1735102");
SubmitLoanApplication.Add("loan_type", "housing");
SubmitLoanApplication.Add("loan_amount", "1000");
SubmitLoanApplication.Add("loan_period", "3 months");
AppsFlyer.sendEvent("submit_loan_application", SubmitLoanApplication);
Khoản vay được chấp nhận
Tên sự kiện: loan_accepted
Mục đích
Bằng cách ghi nhận sự kiện Khoản vay được chấp nhận, bạn có thể tìm hiểu về các xu hướng trong các khoản vay và số liệu khác:
- Bạn có thể xem loại khoản vay nào được chấp nhận.
- Bạn có thể xem số tiền được yêu cầu trong các khoản vay được chấp nhận.
- Bạn có thể xem người cho vay nào chấp nhận nhiều khoản vay nhất, loại và số tiền cho vay là bao nhiêu.
Kích hoạt Logic
Kích hoạt sự kiện này khi khoản vay được chấp nhận.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
loan_id | chuỗi | 1735102 | ID khoản vay |
loan_type | chuỗi | nhà ở | Mục đích của khoản vay. |
loan_amount | float | 1000 | Lượng tiền yêu cầu |
loan_period | chuỗi | 3 tháng | Thời gian cho vay. |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", "1000");
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"loan_accepted" , eventValue);
[[AppsFlyerLib shared] logEvent: @"loan_accepted"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @"1000",
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_accepted",
withValues: [
"loan_id": "1735102",
"loan_amount": "1000",
"loan_type": "3 months"
])
Dictionary<string, string> LoanAccepted = new Dictionary<string, string>();
LoanAccepted.Add("loan_id", "1735102");
LoanAccepted.Add("loan_amount", "1000");
LoanAccepted.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_accepted", LoanAccepted);
Khoản vay bị từ chối
Tên sự kiện: loan_rejected
Mục đích
ghi nhận sự kiện Khoản vay bị từ chối có thể giúp bạn hiểu lý do khoản vay bị từ chối. Bạn có thể thấy sự tương quan giữa số tiền và thời gian vay và tỷ lệ từ chối. Bạn cũng có thể nhắm mục tiêu lại người dùng có khoản vay bị từ chối và đề nghị họ vay một khoản vay nhỏ hơn.
Kích hoạt Logic
Kích hoạt sự kiện này khi người cho vay từ chối khoản vay.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
loan_id | chuỗi | 1735102 | ID khoản vay |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("loan_id", "1735102");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "loan_rejected" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_rejected"
withValues: @{
@"loan_id": @"1735102",
}];
AppsFlyerLib.shared().logEvent("loan_rejected",
withValues: [
"loan_id": "1735102",
]);
Dictionary<string, string> LoanRejected = new Dictionary<string, string>();
LoanRejected.Add("loan_id", "1735102");
AppsFlyer.sendEvent("loan_rejected", LoanRejected);
Công nghệ tài chính: cho vay ngang hàng
Cho vay P2P (đồng đẳng) là một phương thức mới để các cá nhân và doanh nghiệp cho vay và vay tiền từ người khác.
Chúng tôi khuyên bạn nên ghi nhận các sự kiện trong ứng dụng cho vay P2P của bạn:
- Bạn có thể ghi nhận hoạt động của người cho vay và người vay cá nhân.
- Bạn có thể tìm hiểu các loại khoản vay mà mọi người cung cấp, cũng như người vay vốn quan tâm đến những khoản vay nào.
- Bạn có thể thu thập số liệu về tổng số tiền vay trung bình, tối thiểu và tối đa.
- Bạn có thể ghi nhận tỷ lệ chấp nhận và từ chối cho vay.
Với những dữ liệu được thu thập từ việc ghi nhận sự kiện, bạn có thể đánh dấu những người vay đáng tin cậy và cung cấp cho họ mức lãi suất tốt hơn. Tương tự, bạn có thể xem ai là người cho vay tích cực nhất và đưa ra mức phí thấp hơn dành cho họ. Ngoài ra, khi bạn biết loại khoản vay nào phổ biến nhất với người dùng của mình, bạn có thể khởi chạy chiến dịch tiếp thị nhắm mục tiêu đến đối tượng như vậy.
Đăng ký đã gửi
Tên sự kiện: registration_submitted
Mục đích
Bởi vì cho vay P2P dễ bị lạm dụng, trước tiên người dùng phải xác minh danh tính của họ. Họ xác minh danh tính bằng cách gửi yêu cầu đăng ký. ghi nhận sự kiện Đăng ký đã gửi có thể giúp bạn:
- Ghi nhận số lượng người dùng đăng ký nhưng không bao giờ xác minh tài khoản của họ.
- Xem mối tương quan giữa phương thức đăng ký (email, Facebook, Google) và tỷ lệ xác minh.
Kích hoạt Logic
Kích hoạt sự kiện này sau khi người dùng gửi yêu cầu đăng ký dịch vụ P2P của bạn.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | email, Facebook, Google | Loại phương thức hoặc đăng nhập xã hội mà người dùng đã chọn |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "registration_submitted", eventValue);
[[AppsFlyerLib shared] logEvent:@"registration_submitted"
withValues: @{
AFEventParamRegistrationMethod: @"Facebook",
}];
AppsFlyerLib.shared().logEvent("registration_submitted",
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> RegistrationSubmitted = new Dictionary<string, string>();
RegistrationSubmitted.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("registration_submitted", RegistrationSubmitted);
Đăng ký Hoàn thành
Tên sự kiện: af_complete_registration
Mục đích
ghi nhận sự kiện Đăng ký hoàn tất có thể giúp bạn biết có bao nhiêu người dùng thực sự xác minh danh tính của họ sau khi đăng ký. Bạn có thể phân bổ những người dùng này cho các chiến dịch và xem chiến dịch nào tạo ra những người dùng đang hoạt động.
Kích hoạt Logic
Kích hoạt sự kiện này khi đăng ký của người dùng được phê duyệt.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | Loại phương thức hoặc đăng nhập xã hội mà người dùng lựa chọn |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_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> CompleteRegistration = new Dictionary<string, string>();
CompleteRegistration.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistration);
Điền vào mẫu cho vay
Tên sự kiện: fill_loan_form_<FORM_NAME>
Mục đích
Người vay phải điền vào một số mẫu đơn để yêu cầu một khoản vay. Bạn có thể ghi nhận các mẫu đơn được điền bởi một người vay tiềm năng để xem tỷ lệ bỏ ngang. Ngoài tỷ lệ bỏ ngang, bạn cũng có thể nhắm mục tiêu lại khách hàng vay đã bỏ không hoàn thành đơn xin vay của họ. Khi bạn gửi sự kiện, hãy bao gồm tên biểu mẫu trong tên sự kiện.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào người vay gửi biểu mẫu.
Các trường được đề xuất
Bạn có thể gửi sự kiện này mà không cần có trường bổ sung.
Lưu ý
Chúng tôi khuyên bạn nên liên kết các khoản vay với người cho vay. Để làm như vậy, hãy đảm bảo đặt customer user ID. Thiết lập customer user id là cách để liên kết người cho vay với người dùng ứng dụng của bạn khi họ xuất hiện trong AppsFlyer. Bằng cách thiết lập customer user id, bạn đảm bảo rằng mọi sự kiện đều được gửi với cùng một customer user id.
Ví dụ
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "fill_loan_form_FORM_NAME", null);
[[AppsFlyerLib shared] logEvent:@"fill_loan_formFORM_NAME"
withValues: nil];
AppsFlyerLib.shared().logEvent("fill_loan_form_FORM_NAME",
withValues: nil);
AppsFlyer.sendEvent("fill_loan_form_FORM_NAME", null);
Nộp đơn xin vay tiền
Tên sự kiện: submit_loan_application
Mục đích
Mục đích của sự kiện này là giúp bạn ghi nhận các đơn đăng ký vay. Bằng cách ghi nhận sự kiện Gửi đơn đăng ký vay bạn có thể:
- Ghi nhận tổng số đơn đăng ký vay trong ứng dụng của bạn.
- Tìm hiểu về số tiền tối đa, tối thiểu và trung bình trong các đơn xin vay tiền.
- Xem những loại khoản vay mà mọi người đăng ký.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng gửi thành công một đơn xin vay tiền.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
loan_id | chuỗi | 1735102 | ID khoản vay |
loan_amount | float | 1000 | Lượng tiền yêu cầu |
loan_type | chuỗi | 3 tháng | Thời gian cho vay |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"submit_loan_application", eventValue);
[[AppsFlyerLib shared] logEvent:@"submit_loan_application"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("submit_loan_applications",
withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> SubmitLoanApplication = new Dictionary<string, string>();
SubmitLoanApplication.Add("loan_id", "1735102");
SubmitLoanApplication.Add("loan_amount", "1000");
SubmitLoanApplication.Add("loan_type", "3 months");
AppsFlyer.sendEvent("submit_loan_application", SubmitLoanApplication);
Khoản vay được chấp nhận
Tên sự kiện: loan_accepted
Mục đích
Bằng cách ghi nhận sự kiện Khoản vay được chấp nhận, bạn có thể tìm hiểu về các xu hướng trong các khoản vay và số liệu khác:
- Bạn có thể xem loại khoản vay nào được chấp nhận.
- Bạn có thể xem số tiền được yêu cầu trong các khoản vay được chấp nhận.
- Bạn có thể xem người cho vay nào chấp nhận nhiều khoản vay nhất, loại và số tiền cho vay là bao nhiêu.
Kích hoạt Logic
Kích hoạt sự kiện này khi khoản vay được chấp nhận.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
loan_id | chuỗi | 1735102 | ID khoản vay |
loan_amount | float | 1000 | Lượng tiền yêu cầu |
loan_type | chuỗi | 3 tháng | Thời gian cho vay |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"loan_accepted" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_accepted"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_accepted",
withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> LoanAccepted = new Dictionary<string, string>();
LoanAccepted.Add("loan_id", "1735102");
LoanAccepted.Add("loan_amount", "1000");
LoanAccepted.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_accepted", LoanAccepted);
Khoản vay bị từ chối
Tên sự kiện: loan_rejected
Mục đích
ghi nhận sự kiện Khoản vay bị từ chối có thể giúp bạn hiểu lý do khoản vay bị từ chối. Bạn có thể thấy sự tương quan giữa số tiền và thời gian vay và tỷ lệ từ chối. Bạn cũng có thể nhắm mục tiêu lại người dùng có khoản vay bị từ chối và đề nghị họ vay một khoản vay nhỏ hơn.
Kích hoạt Logic
Kích hoạt sự kiện này khi người cho vay từ chối khoản vay.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
load_id | chuỗi | 1735102 | ID khoản vay |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("loam_amount", 1000);
eventValue.put("loan_type", "3 months");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),loan_rejected" , eventValue);
[[AppsFlyerLib shared] logEvent:@"loan_rejected"
withValues: @{
@"loan_id": @"1735102",
@"loan_amount": @1000,
@"loan_type": @"3 months"
}];
AppsFlyerLib.shared().logEvent("loan_rejected", withValues: [
"loan_id": "1735102",
"loan_amount": 1000,
"loan_type": "3 months"
]);
Dictionary<string, string> LoanRejected = new Dictionary<string, string>();
LoanRejected.Add("loan_id", "1735102");
LoanRejected.Add("loan_amount", "1000");
LoanRejected.Add("loan_type", "3 months");
AppsFlyer.sendEvent("loan_rejected", LoanRejected);
Thanh toán
Tên sự kiện: payment
Mục đích
ghi nhận sự kiện Thanh toán có thể giúp bạn đánh dấu người vay đáng tin cậy. Những người vay đáng tin cậy là những người tuân thủ nghĩa vụ chi trả các khoản vay. Bạn có thể phân bổ những người vay cho các chiến dịch và hiểu chiến dịch nào đã tạo ra những người vay đáng tin cậy. ghi nhận sự kiện này cũng có thể giúp bạn thu thập dữ liệu về số tiền thanh toán tối thiểu, tối đa và trung bình.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào người dùng thực hiện thanh toán khoản vay của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
loan_id | chuỗi | 1735102 | ID khoản vay |
payment_amount | float | 100 | Số tiền đã trả |
payment_id | chuỗi | AE12SF | ID thanh toán |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
eventValue.put("payment_amount", 100);
eventValue.put("payment_id", "AE12SF");
AppsFlyerLib.getInstance().logEvent(
getApplicationContext(),
"payment" , eventValue);
[[AppsFlyerLib shared] logEvent:@"payment"
withValues: @{
@"loan_id": @"1735102",
@"payment_amount": @100,
@"payment_id": @"AE12SF"
}];
AppsFlyerLib.shared().logEvent("payment",
withValues: [
"loan_id": "1735102",
"payment_amount": 100,
"payment_id": "AE12SF"
]);
Dictionary<string, string> Payment = new Dictionary<string, string>();
Payment.Add("loan_id", "1735102");
Payment.Add("payment_amount", "100");
Payment.Add("payment_id", "AE12SF");
AppsFlyer.sendEvent("payment", Payment);
Thanh toán hoàn tất
Tên sự kiện: payment_completed
Mục đích
ghi nhận sự kiện Thanh toán hoàn tất có thể giúp bạn đánh dấu người vay tuân thủ nghĩa vụ trả nợ. Bạn cũng có thể nhắm mục tiêu lại các khách hàng vay đó và cung cấp cho họ mức lãi suất thấp hơn hoặc các chương trình khuyến mãi khác.
Kích hoạt Logic
Kích hoạt sự kiện này khi khoản vay được hoàn trả đầy đủ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
loan_id | chuỗi | 1735102 | ID khoản vay |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("loan_id", "1735102");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),"payment_completed" , eventValue);
[[AppsFlyerLib shared] logEvent:@"payment_completed"
withValues: @{
@"loan_id": @"1735102"
}];
AppsFlyerLib.shared().logEvent("payment_completed",
withValues: [
"loan_id": "1735102"
]);
Dictionary<string, string> PaymentCompleted = new Dictionary<string, string>();
PaymentCompleted.Add("loan_id", "1735102");
AppsFlyer.sendEvent("payment_completed", PaymentCompleted);
Đào tạo trực tuyến
Ứng dụng đào tạo trực tuyến cho phép người dùng học từ xa. Các sự kiện trong ứng dụng mà chúng tôi khuyến khích bạn nên ghi nhận trong các ứng dụng đào tạo trực tuyến bao gồm đăng ký, hướng dẫn và các khóa học đã hoàn thành cũng như các chứng chỉ nhận được. Dưới đây là một số ví dụ cho thấy việc ghi nhận các sự kiện này có thể mang lại lợi ích cho bạn như thế nào:
- Việc ghi nhận lượt đăng ký trong ứng dụng giúp bạn nắm rõ khóa học nào người dùng quan tâm nhất và cho bạn ý tưởng để nhắm mục tiêu.
- Việc ghi nhận các hướng dẫn đã hoàn thành giúp bạn nắm rõ những người dùng nào có thể được nhắm mục tiêu lại và nhắc bạn rằng họ còn có các hướng dẫn khác để hoàn thành khóa học.
- Việc ghi nhận các chứng chỉ nhận được giúp bạn nắm rõ các khóa học và chứng chỉ nào có nhu cầu nhiều nhất.
Đăng nhập
Tên Sự kiện: af_login
Mục đích
Sự kiện này có thể giúp bạn hiểu về tỷ lệ giữ chân người dùng đã đăng ký của bạn.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào người dùng đăng nhập.
Các trường được đề xuất
Sự kiện này có thể được gửi mà không cần có bất kỳ trường 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);
Đăng ký Hoàn thành
Tên sự kiện: af_complete_registration
Mục đích
Bạn có thể ghi nhận đăng ký người dùng và so sánh với các dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Bằng cách ghi nhận các sự kiện đăng ký người dùng, bạn có thể:
- Tìm hiểu xem có bao nhiêu người dùng đã cài đặt ứng dụng nhưng chưa bao giờ đăng ký.
- Tìm hiểu những phương thức đăng ký mà người dùng của bạn ưa thích.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi người dùng hoàn tất quá trình đăng ký.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | email, facebook | Loại phương thức đăng ký |
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);
Hoàn thành Hướng dẫn
Tên Sự kiện: af_tutorial_completion
Mục đích
Hướng dẫn giúp người dùng tìm hiểu cách sử dụng ứng dụng của bạn tốt hơn. Bằng cách ghi nhận việc hoàn thành đọc hướng dẫn, bạn có thể:
- Tìm hiểu những chủ đề mà người dùng có thể gặp khó khăn.
- Tìm hiểu những hướng dẫn nào không hoạt động tốt và cải thiện chúng.
Kích hoạt Logic
Có hai trường hợp sự kiện này sẽ được kích hoạt:
- Khi người dùng xem xong hướng dẫn. Một sự kiện sẽ được gửi cùng với một trường cho biết người dùng đã xem xong hướng dẫn.
- Khi người dùng bắt đầu xem hướng dẫn nhưng thoát ra và không hoàn thành. Khi người dùng thoát ra, một sự kiện được gửi đi với một trường cho biết người dùng không xem xong hướng dẫn.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_success | boolean | có | Người dùng có hoàn thành hướng dẫn hay không |
af_tutorial_id | chuỗi | 3 | ID hướng dẫn chơi |
af_content | chuỗi | đại số | Tên hướng dẫn chơi |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.SUCCESS, yes);
eventValue.put(AFInAppEventParameterName.TUTORIAL_ID, "3");
eventValue.put(AFInAppEventParameterName.CONTENT, "algebra");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TUTORIAL_COMPLETION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTutorial_completion
withValues: @{
AFEventParamSuccess: @YES,
AFEventParamTutorialId: @"3",
AFEventParamContent: @"algebra"
}];
AppsFlyerLib.shared().logEvent(AFEventTutorial_completion,
withValues: [
AFEventParamSuccess: YES,
AFEventParamTutorialId: "3",
AFEventParamContent: "algebra"
]);
Dictionary<string, string> TutorialCompletiondEvent = new Dictionary<string, string>();
TutorialCompletiondEvent.Add("af_success", "yes");
TutorialCompletiondEvent.Add("af_tutorial_id", "3");
TutorialCompletiondEvent.Add("af_tutorial_content", "algebra");
AppsFlyer.sendEvent ("af_tutorial_completion", TutorialCompletiondEvent);
Hoàn thành bài tập
Tên Sự kiện: complete_excercise
Mục đích
Bạn có thể ghi nhận các bài tập đã hoàn thành 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ằng cách ghi nhận các sự kiện hoàn thành bài tập, bạn có thể nắm rõ số lượng người dùng đã bắt đầu nhưng không hoàn thành bài tập.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện đó khi người dùng hoàn thành một bài tập.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
course_name | chuỗi | đại số | Tên của khóa học. |
exercise_name | chuỗi | 2 | Tên của bài tập. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("exercise_name", "2");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "complete_exercise", eventValue);
[[AppsFlyerLib shared] logEvent:@"complete_exercise"
withValues: @{
@"course_name": @"algebra",
@"exercise_name": @"2"
}];
AppsFlyerLib.shared().logEvent("complete_exercise",withValues:
["course_name": "algebra","exercise_name": "2" ])
Dictionary<string, string> CompleteExerciseEvent = new Dictionary<string, string>();
CompleteExerciseEvent.Add("course_name", "algebra");
CompleteExerciseEvent.Add("exercise_name", "2");
AppsFlyer.sendEvent ("complete_exercise", CompleteExerciseEvent);
Đã hoàn thành khóa học
Tên Sự kiện: course_completed
Mục đích
Bạn có thể ghi nhận các khóa học đã hoàn thành 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ằng cách ghi nhận các sự kiện hoàn thành khóa học, bạn có thể nắm rõ có bao nhiêu người dùng bắt đầu nhưng không kết thúc khóa học.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện đó khi người dùng hoàn thành một khóa học.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
course_name | chuỗi | đại số | Tên của khóa học. |
course_completed | chuỗi | có | Người dùng đã hoàn thành khóa học hay chưa. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("course_completed", "yes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "course_completed", eventValue);
[AppsFlyerLib shared] logEvent:@"course_completed" withValues:@{
@"course_name": @"algebra",
@"course_completed": @"yes"}];
ApAppsFlyerLib.shared().logEvent("course_completed", withValues:
[ "course_name": "algebra",
"course_completed": "yes"])
Dictionary<string, string> CourseCompletedEvent = new Dictionary<string, string>();
CourseCompletedEvent.Add("course_name", "algebra");
CourseCompletedEvent.Add("course_completed", "yes");
AppsFlyer.sendEvent ("course_completed
", CourseCompletedEvent);
Đã cấp chứng chỉ
Tên Sự kiện: certificate_issued
Mục đích
Bạn có thể ghi nhận số lần cấp chứng chỉ và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Ví dụ: bằng cách ghi nhận các sự kiện về chứng chỉ đã cấp, bạn có thể nắm rõ số lượng người dùng hoàn thành một khóa học và nhắm mục tiêu lại họ cho khóa học tiếp theo.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện đó khi người dùng được cấp chứng chỉ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
course_name | chuỗi | đại số | Tên của khóa học. |
certificate_received | chuỗi | có | Chứng chỉ đã được cấp hay chưa. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("course_name", "algebra");
eventValue.put("certificate_received", "yes");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "certificate issued", eventValue);
[[AppsFlyerLib shared] logEvent:@"course_completed" withValues: @{
@"course_name": @"algebra",
@"certificate_received": @"yes"}];
AppsFlyerLib.shared().logEvent("certificate issued", withValues:
[ "course_name": "algebra",
"certificate_received": "yes"])
Dictionary<string, string> CertificateIssuedEvent = new Dictionary<string, string>();
CertificateIssuedEvent.Add("course_name", "algebra");
CertificateIssuedEvent.Add("certificate_received", "yes");
AppsFlyer.sendEvent ("certificate issued
", CertificateIssuedEvent);
Mua
Tên sự kiện: af_purchase
Mục đích
Nhiều ứng dụng đào tạo trực tuyến cho phép người dùng mua các mục hàng, ví dụ: khóa học, phần mềm hoặc đồ dùng học tập Sự kiện Mua giúp bạn ghi nhận các giao dịch mua hàng trong ứng dụng do người dùng thực hiện. Bằng cách ghi nhận các giao dịch mua hàng, bạn có thể:
- Xác định Giá trị trọn đời của người dùng và Tỷ suất hoàn vốn 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 mua 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 Logic
Để ghi nhận sự kiện này đúng cách, bạn nên kích hoạt sự kiện khi người dùng đến trang cảm ơn sau khi mua hàng thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 200 | Doanh thu ước tính từ giao dịch mua |
af_currency | chuỗi | USD | Mã tiền tệ |
af_content_id | chuỗi | 001, 092 | ID của mục hàng |
order_id | chuỗi | 9277 | ID đơn đặt hàng |
af_receipt_id | chuỗi | 9277 | ID hóa đơn |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 200);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put("order_id", "9277");
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "9277");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @200,
AFEventParamCurrency: @"USD",
AFEventParamContentId: @"092",
@"order_id": @"9277",
AFEventParamReceiptId: @"9277"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 200,
AFEventParamCurrency: "USD",
AFEventParamContentId: "092",
"order_id": "9277",
AFEventParamReceiptId: "9277"
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "200");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_content_id", "001");
purchaseEvent.Add("order_id", "9277");
purchaseEvent.Add("af_receipt_id", "9277");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
Di chuyển: gọi xe
Ứng dụng gọi xe ngày càng trở nên phổ biến trong thời gian gần đây, đặc biệt là ở các khu vực đô thị, nơi hầu hết người dân không sở hữu xe hơi. Bằng cách ghi nhận và phân tích các sự kiện trong ứng dụng bạn có thể tìm hiểu được rất nhiều về:
- Hành khách và lái xe tương tác với nhau như thế nào
- Các quốc gia nơi có nhiều người sử dụng dịch vụ gọi xe hơn.
- Số liệu về giá, các chuyến đi và khoảng cách chuyến đi.
Đăng ký Hoàn thành
Tên sự kiện: af_complete_registration
Mục đích
ghi nhận sự kiện Đăng ký hoàn tấtcó thể cung cấp cho bạn thông tin chi tiết về người dùng của bạn. Bằng cách ghi nhận sự kiện Đăng ký hoàn tất bạn có thể ghi nhận:
- Tìm hiểu phương thức đăng ký mà người dùng của bạn thích (Google, Facebook, Email).
- Biết được số lượng người dùng thực sự đăng ký sau khi tải xuống và cài đặt ứng dụng.
- Xem xu hướng đăng ký ở các quốc gia để xác định các quốc gia có số lượng người dùng có nhiều khả năng sử dụng ứng dụng của bạn nhiều nhất.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng đăng ký thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | Nền tảng hoặc phương thức mà người dùng đăng ký | |
country_code | chuỗi | 66 | Mã quốc gia (mã điện thoại) |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "shoes");
eventValue.put("country_code", "66");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook",
@"country_code": @"66",
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook",
"country_code": "66"
]);
Dictionary<string, string> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
CompleteRegistrationEvent.Add("country_code", "66");
AppsFlyer.sendEvent("af_complete_registration", CompleteRegistrationEvent);
Thêm Thông tin thanh toán
Tên Sự kiện: af_add_payment_info
Mục đích
ghi nhận sự kiện Thêm thông tin thanh toán có thể giúp bạn phân loại người dùng. Bạn có thể:
- Tìm hiểu thời gian người dùng cần để thêm thông tin thanh toán của họ.
- Phương thức thanh toán nào là phổ biến nhất (thẻ tín dụng, Ví điện tử).
- Thiết lập chiến dịch và cộng tác với các nhà cung cấp phương thức thanh toán phổ biến.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng thêm thông tin thanh toán vào tài khoản của họ thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_success | boolean | đúng | Thêm phương thức thanh toán có thành công hay không |
credit_card_type | chuỗi | Visa, Mastercard | Loại thẻ tín dụng (tùy chọn) |
payment_method_type | chuỗi | thẻ tín dụng, ví điện tử | Loại phương thức thanh toán |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
eventValue.put("credit_card_type", "Visa");
eventValue.put("payment_method_type", true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_PAYMENT_INFO, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddPaymentInfo
withValues: @{
AFEventParamSuccess: @TRUE,
@"credit_card_type": @"Visa",
@"payment_method_type": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventAddPaymentInfo, withValues: [
AFEventParamSuccess: true,
"credit_card_type": "Visa",
"payment_method_type": "credit card"
]);
Dictionary<string, string> AddPaymentInfoEvent = new Dictionary<string, string>();
AddPaymentInfoEvent.Add("af_success", "true");
AddPaymentInfoEvent.Add("credit_card_type", "Visa");
AddPaymentInfoEvent.Add("payment_method_type", "credit card");
AppsFlyer.sendEvent("af_add_payment_info", AddPaymentInfoEvent);
Yêu cầu đặt chuyến đi
Tên sự kiện: ride_booking_requested
Mục đích
Sự kiện Yêu cầu đặt chuyến đi là một trong bốn sự kiện liên quan đến đặt xe. Những sự kiện này được thảo luận dưới đây. Bằng cách ghi nhận sự kiện này, bạn có thể:
- Tìm hiểu về các điểm đến phổ biến.
- Tìm hiểu về các xu hướng, điểm đến và điểm xuất phát.
- Xem khoảng cách trung bình của một chuyến đi.
- Xem hầu hết người dùng đến từ những thành phố, vùng và quốc gia nào.
Ngoài ra, ghi nhận sự kiện này cùng với ba sự kiện liên quan đến đặt xe khác có thể giúp bạn theo dõi các giao dịch thành công. Bạn có thể ghi nhận các giao dịch thành công và so sánh với các giao dịch không thành công. Ví dụ: bạn có thể xem số lượng đặt chuyến đi được yêu cầu và số lượng đặt chuyến đi hoàn thành hoặc bị hủy.
Kích hoạt Logic
Kích hoạt sự kiện này khi hành khách tạo yêu cầu đặt chuyến đi.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 22.4 | Giá công bố cho chuyến đi |
af_currency | chuỗi | SGD | Tiền tệ |
af_destination_a | chuỗi | Plaza Singapura | Điểm khởi hành |
af_destination_b | chuỗi | Marina Bay Sands | Điểm đến |
khoảng cách | float | 5.2 | Khoảng cách giữa điểm khởi hành và điểm đến |
af_content_type | chuỗi | Taxi | Loại phương tiện |
payment_method_type | chuỗi | thẻ tín dụng, ví điện tử | Loại phương thức thanh toán |
af_city | chuỗi | Singapore | Thành phố nơi chuyến đi được đặt |
af_region | chuỗi | SFA | Khu vực nơi chuyến đi được đặt |
af_country | chuỗi | Singapore | Quốc gia nơi chuyến đi được đặt |
order_id | chuỗi | 135790 | ID đặt xe |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_requested", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_requested"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790"
}];
AppsFlyerLib.shared().logEvent("ride_booking_requested",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790"
]);
Dictionary<string, string> RideBookingRequestedEvent = new Dictionary<string, string>();
RideBookingRequestedEvent.Add("af_price", "22.4");
RideBookingRequestedEvent.Add("af_currency", "SGD");
RideBookingRequestedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingRequestedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingRequestedEvent.Add("distance", "5.2");
RideBookingRequestedEvent.Add("af_content_type", "Taxi");
RideBookingRequestedEvent.Add("payment_method_type", "credit card");
RideBookingRequestedEvent.Add("notes", "Taxi stand");
RideBookingRequestedEvent.Add("af_city", "Singapore");
RideBookingRequestedEvent.Add("af_region", "SFA");
RideBookingRequestedEvent.Add("af_country", "Singapore");
RideBookingRequestedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_requested", RideBookingRequestedEvent);
Xác nhận đặt chuyến đi
Tên sự kiện: ride_booking_confirmed
Mục đích
Sự kiện Xác nhận đặt chuyến đilà một trong số bốn sự kiện liên quan đến đặt chuyến đi. Bằng cách ghi nhận sự kiện này, bạn có thể:
- Tìm hiểu xem những người lái xe tích cực nhất là ai.
- Xem những điểm đến phổ biến với các lái xe
- Xem giá chuyến đi trung bình và tổng thể cho mỗi người lái xe.
Ngoài ra, ghi nhận sự kiện này cùng với ba sự kiện liên quan đến đặt chuyến đi khác có thể giúp bạn hiểu rõ hơn về hoạt động của người lái xe. Bạn có thể thấy lái xe nào xác nhận các yêu cầu đặt chỗ chuyến đi nhiều nhất, lái xe nào chọn các chuyến đi ngắn hoặc ngược lại lái xe nào chọn các chuyến đi dài v.v.
Kích hoạt Logic
Kích hoạt sự kiện này khi người lái xe nhận chuyến đi đã đặt.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 22.4 | Giá công bố cho chuyến đi |
af_currency | chuỗi | SGD | Tiền tệ |
af_destination_a | chuỗi | Plaza Singapura | Điểm khởi hành |
af_destination_b | chuỗi | Marina Bay Sands | Điểm đến |
khoảng cách | float | 5.2 | Khoảng cách giữa điểm khởi hành và điểm đến |
af_content_type | chuỗi | Taxi | Loại phương tiện |
driver_id | chuỗi | 1706 | ID của tài xế xác nhận chuyến đi |
payment_method_type | chuỗi | thẻ tín dụng, ví điện tử | Loại phương thức thanh toán |
af_city | chuỗi | Singapore | Thành phố nơi chuyến đi được đặt |
af_region | chuỗi | SFA | Khu vực nơi chuyến đi được đặt |
af_country | chuỗi | Singapore | Quốc gia nơi chuyến đi được đặt |
af_order_id | chuỗi | 135790 | ID đặt xe |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_confirmed", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_confirmed"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790"
}];
AppsFlyerLib.shared().logEvent("ride_booking_confirmed",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790"
]);
Dictionary<string, string> RideBookingConfirmedEvent = new Dictionary<string, string>();
RideBookingConfirmedEvent.Add("af_price", "22.4");
RideBookingConfirmedEvent.Add("af_currency", "SGD");
RideBookingConfirmedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingConfirmedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingConfirmedEvent.Add("distance", "5.2");
RideBookingConfirmedEvent.Add("af_content_type", "Taxi");
RideBookingConfirmedEvent.Add("driver_id", "1706");
RideBookingConfirmedEvent.Add("payment_method_type", "credit card");
RideBookingConfirmedEvent.Add("notes", "Taxi stand");
RideBookingConfirmedEvent.Add("af_city", "Singapore");
RideBookingConfirmedEvent.Add("af_region", "SFA");
RideBookingConfirmedEvent.Add("af_country", "Singapore");
RideBookingConfirmedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_confirmed", RideBookingConfirmedEvent);
Đặt chuyến bị hủy
Tên sự kiện: ride_booking_cancelled
Mục đích
Sự kiện Đặt chuyến bị hủy là một trong số bốn sự kiện liên quan đến đặt chuyến đi. Bằng cách ghi nhận sự kiện này, bạn có thể:
- Ghi lại lái xe hoặc hành khách liên tục hủy chuyến.
- Tìm hiểu xem có bao nhiêu chuyến đi bị hủy.
- Liên hệ tỷ lệ hủy với các thuộc tính như giá, điểm đến, khoảng cách, thành phố, v.v.
- Tìm hiểu lý do tại sao chuyến đi bị hủy.
Kích hoạt Logic
Kích hoạt sự kiện này khi đặt chuyến bị hủy.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 22.4 | Giá công bố cho chuyến đi |
af_currency | chuỗi | SGD | Tiền tệ |
af_destination_a | chuỗi | Plaza Singapura | Điểm khởi hành |
af_destination_b | chuỗi | Marina Bay Sands | Điểm đến |
khoảng cách | float | 5.2 | Khoảng cách giữa điểm khởi hành và điểm đến |
af_content_type | chuỗi | Taxi | Loại phương tiện |
driver_id | chuỗi | 1706 | ID của tài xế xác nhận chuyến đi |
cancelation_reason | chuỗi | giá quá cao, tài xế không xuất hiện, hành khách không xuất hiện | Lý do chuyến đi bị hủy |
payment_method_type | chuỗi | thẻ tín dụng, ví điện tử | Loại phương thức thanh toán |
af_city | chuỗi | Singapore | Thành phố nơi chuyến đi được đặt |
af_region | chuỗi | SFA | Khu vực nơi chuyến đi được đặt |
af_country | chuỗi | Singapore | Quốc gia nơi chuyến đi được đặt |
order_id | chuỗi | 135790 | ID đặt xe |
canceled_by | chuỗi | Hành khách | Chuyến đi bị hủy bởi hành khách hay lái xe |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("cancellation_reason", "driver didn't show up");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
eventValue.put("canceled_by", "passenger");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_canceled", eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_canceled"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"cancelation_reason": @"driver didn't show up",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790",
@"canceled_by": @"passenger"
}];
AppsFlyerLib.shared().logEvent("ride_booking_canceled",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
"distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"cancelation_reason": "driver didn't show up",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790",
"canceled_by": "passenger"
]);
Dictionary<string, string> RideBookingCanceledEvent = new Dictionary<string, string>();
RideBookingCanceledEvent.Add("af_price", "22.4");
RideBookingCanceledEvent.Add("af_currency", "SGD");
RideBookingCanceledEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingCanceledEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingCanceledEvent.Add("distance", "5.2");
RideBookingCanceledEvent.Add("af_content_type", "Taxi");
RideBookingCanceledEvent.Add("driver_id", "1706");
RideBookingCanceledEvent.Add("cancelation_reason", "driver didn't show up");
RideBookingCanceledEvent.Add("payment_method_type", "credit card");
RideBookingCanceledEvent.Add("notes", "Taxi stand");
RideBookingCanceledEvent.Add("af_city", "Singapore");
RideBookingCanceledEvent.Add("af_region", "SFA");
RideBookingCanceledEvent.Add("af_country", "Singapore");
RideBookingCanceledEvent.Add("af_order_id", "135790");
RideBookingCanceledEvent.Add("canceled_by", "passenger");
AppsFlyer.sendEvent("ride_booking_cancelled", RideBookingCanceledEvent);
Đặt chuyến đã hoàn tất
Tên sự kiện: ride_booking_completed
Mục đích
Sự kiện Đặt chuyến đã hoàn tất là một trong bốn sự kiện liên quan đến đặt chuyến đi khác. Bằng cách ghi nhận sự kiện này, bạn có thể:
- Tìm hiểu về số tiền hành khách đã trả và thu nhập của lái xe.
- Liên hệ các chuyến đi đã hoàn thành với các thuộc tính như điểm đến, khoảng cách, loại thanh toán, ID lái xe, v.v.
- Xem khoảng cách trung bình và tổng thể của lái xe và hành khách.
- So sánh các chuyến đi đã hoàn thành với các chuyến đi bị hủy.
- Ghi lại và ghi nhận điểm số của tài xế.
Kích hoạt Logic
Kích hoạt sự kiện này khi hành trình hoàn tất.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 22.4 | Giá công bố cho chuyến đi |
af_currency | chuỗi | SGD | Tiền tệ |
af_destination_a | chuỗi | Plaza Singapura | Điểm khởi hành |
af_destination_b | chuỗi | Marina Bay Sands | Điểm đến |
khoảng cách | float | 5.2 | Khoảng cách giữa điểm khởi hành và điểm đến |
af_content_type | chuỗi | Taxi | Loại phương tiện |
driver_id | chuỗi | 1706 | ID của tài xế xác nhận chuyến đi |
payment_method_type | chuỗi | thẻ tín dụng, ví điện tử | Loại phương thức thanh toán |
af_city | chuỗi | Singapore | Thành phố nơi chuyến đi được đặt |
af_region | chuỗi | SFA | Khu vực nơi chuyến đi được đặt |
af_country | chuỗi | Singapore | Quốc gia nơi chuyến đi được đặt |
order_id | chuỗi | 135790 | ID đặt xe |
credits_earned | int | 248 | Điểm hành khách nhận được khi hoàn thành chuyến đi |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 22.4);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "Plaza Singapura");
eventValue.put(AFInAppEventParameterName.DESTINATION_B,"Marina Bay Sands");
eventValue.put("distance", 5.2);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Taxi");
eventValue.put("driver_id", "1706");
eventValue.put("payment_method_type", "credit card");
eventValue.put("notes", "Taxi stand");
eventValue.put(AFInAppEventParameterName.CITY, "Singapore");
eventValue.put(AFInAppEventParameterName.REGION, "SFA");
eventValue.put(AFInAppEventParameterName.COUNTRY, "Singapore");
eventValue.put("af_order_id", "135790");
eventValue.put("credits_earned", 248);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "ride_booking_completed" , eventValue);
[[AppsFlyerLib shared] logEvent:@"ride_booking_completed"
withValues: @{
AFEventParamPrice: @22.4,
AFEventParamCurrency: @"SGD",
AFEventParamDestinationA: @"Plaza Singapura",
AFEventParamDestinationB: @"Marina Bay Sands",
@"distance": @5.2,
AFEventParamContentType: @"Taxi",
@"driver_id": @"1706",
@"payment_method_type": @"credit card",
@"notes": @"Taxi stand",
AFEventParamCity: @"Singapore",
AFEventParamRegion: @"SFA",
AFEventParamCountry: @"Singapore",
AFEventParamOrderId: @"135790",
@"credits_earned": @248
}];
AppsFlyerLib.shared().logEvent("ride_booking_completed",
withValues: [
AFEventParamPrice: 22.4,
AFEventParamCurrency: "SGD",
AFEventParamDestinationA: "Plaza Singapura",
AFEventParamDestinationB: "Marina Bay Sands",
distance": 5.2,
AFEventParamContentType: "Taxi",
"driver_id": "1706",
"payment_method_type": "credit card",
"notes": "Taxi stand",
AFEventParamCity: "Singapore",
AFEventParamRegion: "SFA",
AFEventParamCountry: "Singapore",
AFEventParamOrderId: "135790",
"credits_earned": 248
]);
Dictionary<string, string> RideBookingCompletedEvent = new Dictionary<string, string>();
RideBookingCompletedEvent.Add("af_price", "22.4");
RideBookingCompletedEvent.Add("af_currency", "SGD");
RideBookingCompletedEvent.Add("af_destination_a", "Plaza Singapura");
RideBookingCompletedEvent.Add("af_destination_b", "Marina Bay Sands");
RideBookingCompletedEvent.Add("distance", "5.2");
RideBookingCompletedEvent.Add("af_content_type", "Taxi");
RideBookingCompletedEvent.Add("driver_id", "1706");
RideBookingCompletedEvent.Add("payment_method_type", "credit card");
RideBookingCompletedEvent.Add("notes", "Taxi stand");
RideBookingCompletedEvent.Add("af_city", "Singapore");
RideBookingCompletedEvent.Add("af_region", "SFA");
RideBookingCompletedEvent.Add("af_country", "Singapore");
RideBookingCompletedEvent.Add("af_order_id", "135790");
AppsFlyer.sendEvent("ride_booking_completed", RideBookingCompletedEvent);
Tín dụng đã dùng
Tên sự kiện: spent_credits
Mục đích
Sự kiện Đặt chuyến hoàn thành được thảo luận ở trên có một trường được gọi là credits_earned
. Trường này ghi lại điểm số hành khách nhận được cho mỗi chuyến đi. Hành khách có thể sử dụng số điểm này để mua phiếu giảm giá và chiết khấu. Bằng cách ghi lại những sự kiện này, bạn có thể:
- Xem có bao nhiêu hành khách đổi điểm lấy phiếu giảm giá.
- Xem loại phiếu giảm giá và chiết khấu mà hành khách thích.
Kích hoạt Logic
Kích hoạt sự kiện này khi hành khách sử dụng điểm.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_content | chuỗi | Vé xem phim | Loại phiếu giảm giá và chiết khấu |
credits_used | int | 1000 | Số điểm đã sử dụng |
credits_remaining | int | 2090 | Số điểm còn lại trong tài khoản |
invoice_id | chuỗi | KO215123SD | ID hóa đơn của hóa đơn được tạo khi sử dụng điểm |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT, "Single movie ticket");
eventValue.put("credits_used", 1000);
eventValue.put("invoice_id", "");
eventValue.put("credits_remaining", "KO215123SD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "spent_credits" , eventValue);
[[AppsFlyerLib shared] logEvent:@"spent_credits"
withValues: @{
AFEventParamContent: @"Single movie ticket",
@"credits_used": @1000,
@"credits_remaining": @2090,
@"invoice_id": @"KO215123SD"
}];
AppsFlyerLib.shared().logEvent("spent_credits",
withValues: [
AFEventParamContent: "Single movie ticket",
"credits_used": 1000,
"credits_remaining": 2090,
"invoice_id": "KO215123SD"
]);
Dictionary<string, string> CreditsSpent = new Dictionary<string, string>();
CreditsSpent.Add("af_content", "Single movie ticket");
CreditsSpent.Add("credits_used", "1000");
CreditsSpent.Add("credits_remaining", "2090");
CreditsSpent.Add("invoice_id", "KO215123SD");
AppsFlyer.sendEvent("af_content_view", CreditsSpent);
Du lịch: đặt vé máy bay
Ứng dụng Đặt vé máy bay cho phép du khách dễ dàng đặt vé máy bay đồng thời lựa chọn từ các ưu đãi tốt nhất. Các sự kiện mà chúng tôi khuyên bạn nên ghi nhận là đặt vé máy bay, tìm kiếm chuyến bay và xem các chương trình ưu đãi. ghi nhận các sự kiện này giúp bạn phân tích sở thích và giao dịch mua hàng của người dùng. Ví dụ: bằng cách phân tích dữ liệu từ các sự kiện, bạn có thể:
- Tìm hiểu về các điểm đến phổ biến.
- Phân tích xu hướng theo mùa.
- Tìm hiểu về các hãng hàng không phổ biến mà người dùng yêu thích.
Đặt vé du lịch
Tên Sự kiện: af_travel_booking
Mục đích
Khả năng đặt vé máy bay là chức năng chính của ứng dụng. Bằng cách ghi lại sự kiện này với tất cả các trường của sự kiện, bạn có thể hiểu rõ hơn về:
- Những điểm đến phổ biến.
- Các hãng hàng không phổ biến.
- Xu hướng theo mùa.
Kích hoạt Logic
Gửi sự kiện này khi người dùng đến trang cảm ơn sau khi đặt vé thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 647 | Doanh thu liên quan đến việc đặt vé |
af_currency | chuỗi | SGD | Mã tiền tệ |
af_price | float | 674 | Giá |
af_content_id | chuỗi | ODIRNH | ID ưu đãi chuyến bay |
af_departing_departure_date | chuỗi | 2018-06-21 | Ngày đi |
af_returning_departure_date | chuỗi | 2018-06-26 | Ngày về |
af_destination_a | chuỗi | BKK | Điểm đến đầu tiên |
af_destination_b | chuỗi | SYD | Điểm đến thứ hai (nếu có) |
airline_code | chuỗi | KLM | Mã của hãng hàng không |
af_class | chuỗi | phổ thông | Hạng chuyến bay được đặt vé |
phương pháp mua | chuỗi | thẻ tín dụng | Thẻ tín dụng, PayPal, v.v. |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 647);
eventValue.put(AFInAppEventParameterName.CURRENCY, "SGD");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
eventValue.put("airline_code", "KLM");
eventValue.put(AFInAppEventParameterName.CLASS, "economy");
eventValue.put("purchase_method", "credit card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TRAVEL_BOOKING, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTravelBooking
withValues: @{
AFEventParamRevenue: @647,
AFEventParamCurrency: @"SGD",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD",
@"airline_code": @"KLM",
AFEventParamClass: @"economy",
@"purchase_method": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventTravelBooking,
withValues: [
AFEventParamRevenue: 647,
AFEventParamCurrency: "SGD",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamDestinationA: "BKK",
AFEventParamDestinationB: "SYD",
"airline_code": "KLM",
AFEventParamClass: "economy",
"purchase_method": "credit card"
]);
Dictionary<string, string> TravelBookingEvent = new Dictionary<string, string>();
TravelBookingEvent.Add("af_revenue", "647");
TravelBookingEvent.Add("af_currency", "SGD");
TravelBookingEvent.Add("af_price", "974");
TravelBookingEvent.Add("af_content_id", "ODIRNH");
TravelBookingEvent.Add("af_departing_departure_date", "2018-06-21");
TravelBookingEvent.Add("af_returning_departure_date", "2018-06-26");
TravelBookingEvent.Add("af_destination_a", "BKK");
TravelBookingEvent.Add("af_destination_b", "SYD");
TravelBookingEvent.Add("airline_code", "KLM");
TravelBookingEvent.Add("af_class", "economy");
TravelBookingEvent.Add("purchase_method", "credit card");
AppsFlyer.sendEvent ("af_travel_booking", TravelBookingEvent);
Chế độ xem nội dung
Tên sự kiện: af_content_view
Mục đích
Sau khi thực hiện tìm kiếm, người dùng nhấp vào kết quả tìm kiếm mà họ thấy liên quan. ghi nhận nội dung người dùng xem trong kết quả tìm kiếm có thể giúp bạn:
- Hiểu được ưu đãi chuyến bay nào hấp dẫn người dùng nhất.
- Biết được liệu kết quả tìm kiếm có liên quan đến câu hỏi tìm kiếm hay không.
Kích hoạt Logic
Tốt nhất là kích hoạt sự kiện này khi người dùng nhấp vào kết quả tìm kiếm.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_departing_departure_date | chuỗi | 2018-06-21 | Ngày đi |
af_returning_departure_date | chuỗi | 2018-06-26 | Ngày về |
af_destination_a | chuỗi | BKK | Điểm đến đầu tiên |
af_destination_b | chuỗi | SYD | điểm đến thứ hai (nếu có) |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView, withValues: [
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamDestinationA: "BKK",
AFEventParamDestinationA: "SYD"
]);
Dictionary<string, string> ContentViewEvent = new Dictionary<string, string>();
ContentViewEvent.Add("af_departing_departure_date", "2018-06-21");
ContentViewEvent.Add("af_returning_departure_date", "2018-06-26");
ContentViewEvent.Add("af_destination_a", "BKK");
ContentViewEvent.Add("af_destination_b", "SYD");
AppsFlyer.sendEvent ("af_content_view", ContentViewEvent);
Tìm kiếm
Tên sự kiện: af_search
Mục đích
ứng dụng đặt vé máy bay cho phép người dùng tìm kiếm các chuyến bay và ưu đãi. Một cách để thu được thông tin về sở thích của người dùng là ghi lại các thông số tìm kiếm. Bằng cách ghi lại sự kiện tìm kiếm và các trường của sự kiện, bạn có thể:
- Tìm hiểu những điều mà người dùng tìm kiếm nhiều nhất.
- Hiểu được điểm đến nào là phổ biến nhất.
- Xem có bao nhiêu người dùng đưa con cùng đi du lịch.
- Xem thời điểm trong năm người dùng thích hoặc lên kế hoạch du lịch.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng nhấp vào nút tìm kiếm, sau khi điền vào biểu mẫu tìm kiếm.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_num_children | int | 0 | Số lượng trẻ em sẽ đi du lịch |
af_destination_a | chuỗi | BKK | Điểm đến đầu tiên |
af_destination_b | chuỗi | SYD | Điểm đến thứ hai (nếu có) |
af_departing_departure_date | chuỗi | 2018-06-21 | Ngày đi |
af_returning_departure_date | chuỗi | 2018-06-26 | Ngày về |
af_num_infants | int | 0 | Số lượng trẻ sơ sinh sẽ đi du lịch |
af_num_adults | int | 1 | Số lượng người lớn sẽ đi du lịch |
Ví dụ
Map<String, Object> eventValue = new HashMap<String,
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "BKK");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "SYD");
eventValue.put(AFInAppEventParameterName.DEPARTING_DEPARTURE_DATE, "2018-06-21");
eventValue.put(AFInAppEventParameterName.RETURNING_DEPARTURE_DATE, "2018-06-26");
eventValue.put(AFInAppEventParameterName.NUM_INFANTS, 0);
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 1);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamNumChildren: @0,
AFEventParamDestinationA: @"BKK",
AFEventParamDestinationB: @"SYD",
AFEventParamDepartingDepartureDate: @"2018-21-06",
AFEventParamReturningDepartureDate: @"2018-26-06",
AFEventParamNumInfants: @0,
AFEventParamNumAdults: @1
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamNumChildren: 0,
AFEventParamDestinationA: "BKK",
AFEventParamDestinationB: "SYD",
AFEventParamDepartingDepartureDate: "2018-21-06",
AFEventParamReturningDepartureDate: "2018-26-06",
AFEventParamNumInfants: 0,
AFEventParamNumAdults: 1
]);
Dictionary<string, string> SearchEvent = new Dictionary<string, string>();
SearchEvent.Add("af_num_children", "0");
SearchEvent.Add("af_destination_a", "BKK");
SearchEvent.Add("af_destination_b", "SYD");
SearchEvent.Add("af_departing_departure_date", "2018-06-21");
SearchEvent.Add("af_returning_departure_date", "2018-06-26");
SearchEvent.Add("af_num_infants", "0");
SearchEvent.Add("af_num_adults", "0");
AppsFlyer.sendEvent ("af_search", SearchEvent);
Thêm Thông tin thanh toán
Tên Sự kiện: af_add_payment_info
Mục đích
Sự kiện này có thể giúp bạn ghi nhận đặt vé thành công và không thành công khi thêm thông tin thanh toán khi đặt vé máy bay.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng nhấp vào nút đặt chuyến bay.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_success | boolean | đúng | Cho dù thêm phương thức thanh toán có thành công hay không |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_PAYMENT_INFO, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddPaymentInfo
withValues: @{
AFEventParamSuccess: @TRUE
}];
AppsFlyerLib.shared().logEvent(AFEventAddPaymentInfo,
withValues: [
AFEventParamSuccess: true
]);
Dictionary<string, string> AddPaymentInfoEvent = new Dictionary<string, string>();
AddPaymentInfoEvent.Add("af_success", "true");
AppsFlyer.sendEvent ("af_add_payment_info", AddPaymentInfoEvent);
Mua hàng lần đầu
Tên sự kiện: first_purchase
Mục đích
Sự kiện này giống như sự kiện Mua hàng. Tuy nhiên, không giống sự kiện Mua hàng, sự kiện Mua hàng lần đầu có thể được sử dụng để:
- Xem khoảng thời gian cần thiết để một người mua mới mua sản phẩm.
- Xem những chuyến bay mà người mua lần đầu muốn mua.
- Xem giá và doanh thu trung bình của lần mua hàng đầu tiên.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng hoàn tất giao dịch mua đầu tiên của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 1200 | Doanh thu từ giao dịch mua |
af_price | float | 4000 | Tổng số tiền mua hàng |
af_content_id | chuỗi | 121, 262 | ID mặt hàng |
af_content_type | chuỗi | chuyến bay | Danh mục mặt hàng |
af_currency | chuỗi | AUD | Tiền tệ |
af_quantity | int | 1 | Số lượng mặt hàng trong giỏ hàng |
af_order_id | chuỗi | X123ABC | ID đơn đặt hàng được tạo sau khi mua |
af_receipt_id | chuỗi | X123ABC | ID đơn đặt hàng, nhưng cần thiết để tích hợp nhắm mục tiêu lại cho CRITEO và Google AdWords |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "flight");
// for multiple product categories set the param value as: new String {"flight", "meal"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {1}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"shirt",
// for multiple product categories, set the param value as: @[@"flight" , @"meal"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@1]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "shirt",
// for multiple product categories, set the param value as: ["flight", "meal"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [1]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "shoes");
// for multiple product categories, set the param value as: ["flight", "meal"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [1]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Du lịch: đặt khách sạn
Bằng cách ghi nhận các sự kiện trong ứng dụng trong ứng dụng đặt phòng khách sạn của bạn, bạn có thể thấy được những chiến dịch và nguồn phương tiện nào mang lại người dùng thực sự đặt chỗ kỳ nghỉ. Ngoài ra, bạn có thể xem chiến dịch và nguồn phương tiện nào mang lại nhiều người dùng đặt phòng nhất và tạo thêm doanh thu. Bạn có thể xác định các ưu tiên như điểm số khách sạn, mùa, quốc gia và số lượng trẻ em đi kèm từ những người dùng đến từ các nguồn phương tiện nhất định. Khi phân bổ ưu tiên của người dùng vào các nguồn phương tiện, bạn có thể tối ưu hóa các chiến dịch trong các nguồn phương tiện bằng cách nhắm mục tiêu vào ưu tiên của người dùng.
Đăng ký Hoàn thành
Tên sự kiện: af_complete_registration
Mục đích
Bạn có thể ghi nhận đăng ký người dùng và so sánh với các dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Bằng cách ghi nhận các sự kiện đăng ký người dùng, bạn có thể:
- Tìm hiểu xem có bao nhiêu người dùng đã cài đặt ứng dụng nhưng chưa bao giờ đăng ký.
- Tìm hiểu những phương thức đăng ký mà người dùng của bạn ưa thích.
- Xem nguồn phương tiện nào mang lại những người dùng thực sự đăng ký.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi người dùng hoàn tất quá trình đăng ký.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | email, facebook | Loại phương thức đăng ký |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_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> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
Đăng nhập
Tên Sự kiện: af_login
Mục đích
Sự kiện này có thể giúp bạn ghi nhận tỷ lệ giữ chân người dùng đã đăng ký của bạn.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào người dùng đăng nhập hoặc mở ứng dụng.
Các trường được đề xuất
Sự kiện này có thể được gửi mà không cần có bất kỳ trường 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);
Tìm kiếm
Tên sự kiện: af_search
Mục đích
Mục đích của sự kiện này là cho bạn biết người dùng đang tìm kiếm những gì. Khi bạn biết người dùng đang tìm kiếm những gì, bạn có thể cung cấp cho họ những ưu đãi và khuyến mãi tốt hơn. Ngoài ra, bạn có thể xem được người dùng ở một số vị trí địa lý nhất định đang tìm kiếm những gì và nhắm mục tiêu vào những điều đó một cách phù hợp trên các nguồn phương tiện.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng thực hiện tìm kiếm.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_date_a | chuỗi | 2018/07/26 | Ngày nhận phòng |
af_date_b | chuỗi | 2018/08/01 | Ngày trả phòng |
af_destination_a | chuỗi | Luân Đôn | Vị trí của người dùng |
af_destination_b | chuỗi | Madrid | Vị trí khách sạn |
af_num_adults | float | 2 | Số lượng khách |
af_num_children | float | 0 | Số lượng trẻ em |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SEARCH, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventSearch
withValues: @{
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0
}];
AppsFlyerLib.shared().logEvent(AFEventSearch, withValues: [
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0
]);
Dictionary<string, string> Search =
new Dictionary<string, string>();
Search.Add("af_date_a", "2018/07/26");
Search.Add("af_date_b", "2018/08/01");
Search.Add("af_destination_a", "London");
Search.Add("af_destination_b", "Madrid");
Search.Add("af_num_adults", "2");
Search.Add("af_num_children", "0");
AppsFlyer.sendEvent("af_add_to_wish_list", Search);
Chế độ xem nội dung
Tên sự kiện: af_content_view
Mục đích
Mục đích của sự kiện này là cho bạn biết người dùng đang xem những khách sạn nào. Bạn có thể xem loại khách sạn người dùng đang tìm kiếm và sở thích của họ theo mùa và vị trí. Sau đó, bạn có thể nhắm mục tiêu lại những người dùng này trong quảng cáo và khuyến mại. Hơn nữa, bạn có thể xem người dùng nào xem và sau đó đặt phòng so với những người dùng chỉ xem. Đối với những người thực sự đặt phòng, bạn có thể xem họ đặt từ nguồn phương tiện nào. Đối với những người chỉ xem, bạn có thể nhắm mục tiêu lại họ.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng đang xem một khách sạn.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 674 | Bảng giá của khách sạn |
af_content_id | chuỗi | ODIRNH | ID của khách sạn |
af_date_a | chuỗi | 2018/07/26 | Ngày nhận phòng |
af_date_b | chuỗi | 2018/08/01 | Ngày trả phòng |
af_destination_a | chuỗi | Luân Đôn | Vị trí của người dùng |
af_destination_b | chuỗi | Madrid | Vị trí khách sạn |
af_class | chuỗi | Phòng hạng sang | Loại phòng |
af_num_adults | float | 2 | Số lượng khách |
af_num_children | float | 0 | Số lượng trẻ em |
af_hotel_score | float | 9.6 | Điểm số khách sạn theo đánh giá |
af_preferred_star_ratings | float | 5 | Xếp hạng sao khách sạn được yêu thích |
af_preferred_neighborhoods | chuỗi | Centro | Khu vực khách sạn |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro"
]);
Dictionary<string, string> ContentView =
new Dictionary<string, string>();
ContentView.Add("af_currency", "GBP");
ContentView.Add("af_price", "674");
ContentView.Add("af_content_id", "ODIRNH");
ContentView.Add("af_date_a", "2018/07/26");
ContentView.Add("af_date_b", "2018/08/01");
ContentView.Add("af_destination_a", "London");
ContentView.Add("af_destination_b", "Madrid");
ContentView.Add("af_class", "Deluxe");
ContentView.Add("af_num_adults", "2");
ContentView.Add("af_num_children", "0");
ContentView.Add("af_hotel_score", "9.6");
ContentView.Add("af_preferred_star_ratings", "5");
ContentView.Add("af_preferred_neighborhoods", "Centro");
AppsFlyer.sendEvent("af_content_view", ContentView);
Thêm vào Danh sách mong muốn
Tên sự kiện: af_add_to_wishlist
Mục đích
Sự kiện Thêm vào danh sách mong muốn hiển thị các khách sạn và điểm đến người dùng mong muốn đặt chỗ. Bằng cách ghi nhận sự kiện này, bạn có thể có thu được thông tin về những gì người dùng muốn. Nếu bạn biết rằng một số người dùng đang tìm kiếm các khách sạn cụ thể, ở các khu vực cụ thể và có điểm số và xếp hạng cụ thể, bạn có thể nhắm mục tiêu và nhắm mục tiêu lại những người dùng này.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng thêm danh sách vào danh sách mong muốn của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 674 | Bảng giá của khách sạn |
af_content_id | chuỗi | ODIRNH | ID của khách sạn |
af_date_a | chuỗi | 2018/07/26 | Ngày nhận phòng |
af_date_b | chuỗi | 2018/08/01 | Ngày trả phòng |
af_destination_a | chuỗi | Luân Đôn | Vị trí của người dùng |
af_destination_b | chuỗi | Madrid | Vị trí khách sạn |
af_class | chuỗi | Phòng hạng sang | Loại phòng |
af_num_adults | float | 2 | Số lượng khách |
af_num_children | float | 0 | Số lượng trẻ em |
af_hotel_score | float | 9.6 | Điểm số khách sạn theo đánh giá |
af_preferred_star_ratings | float | 5 | Xếp hạng sao khách sạn được yêu thích |
af_preferred_neighborhoods | chuỗi | Centro | Khu vực khách sạn |
phương pháp mua | chuỗi | Thẻ tín dụng | Phương thức mua hàng |
af_coupon_code | chuỗi | SUM2018 | Mã khuyến mại hoặc điểm thưởng khách hàng thân thiết |
loại khách sạn | chuỗi | Khách sạn | Loại khách sạn |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.ADD_TO_WISH_LIST, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventAddToWishlist
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel"
}];
AppsFlyerLib.shared().logEvent(AFEventAddToWishlist, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel"
]);
Dictionary<string, string> AddToWishList =
new Dictionary<string, string>();
AddToWishList.Add("af_currency", "GBP");
AddToWishList.Add("af_price", "674");
AddToWishList.Add("af_content_id", "ODIRNH");
AddToWishList.Add("af_date_a", "2018/07/26");
AddToWishList.Add("af_date_b", "2018/08/01");
AddToWishList.Add("af_destination_a", "London");
AddToWishList.Add("af_destination_b", "Madrid");
AddToWishList.Add("af_class", "Deluxe");
AddToWishList.Add("af_num_adults", "2");
AddToWishList.Add("af_num_children", "0");
AddToWishList.Add("af_hotel_score", "9.6");
AddToWishList.Add("af_preferred_star_ratings", "5");
AddToWishList.Add("af_preferred_neighborhoods", "Centro");
AddToWishList.Add("purchase_method", "credit card");
AddToWishList.Add("af_coupon_code", "SUM2018");
AddToWishList.Add("af_property_type", "hotel");
AppsFlyer.sendEvent("af_add_to_wish_list", AddToWishList);
Thanh toán được khởi tạo
Tên Sự kiện: af_initiated_checkout
Mục đích
Mục đích của sự kiện này là cho phép bạn ghi nhận số lượng người dùng khởi tạo thanh toán. Ngoài ra, bạn có thể xem phương thức mua hàng họ sử dụng để thanh toán (thẻ tín dụng, ví điện tử) và nhắm mục tiêu tương ứng. Bạn cũng có thể xem những người dùng không hoàn thành quy trình thanh toán và nhắm mục tiêu lại vào họ.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng thêm thông tin thẻ tín dụng hoặc kết nối ví điện tử của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_price | float | 674 | Bảng giá của khách sạn |
af_content_id | chuỗi | ODIRNH | ID của khách sạn |
af_date_a | chuỗi | 2018/07/26 | Ngày nhận phòng |
af_date_b | chuỗi | 2018/08/01 | Ngày trả phòng |
af_destination_a | chuỗi | Luân Đôn | Vị trí của người dùng |
af_destination_b | chuỗi | Madrid | Vị trí khách sạn |
af_class | chuỗi | Phòng hạng sang | Loại phòng |
af_num_adults | float | 2 | Số lượng khách |
af_num_children | float | 0 | Số lượng trẻ em |
af_hotel_score | float | 9.6 | Điểm số khách sạn theo đánh giá |
af_preferred_star_ratings | float | 5 | Xếp hạng sao khách sạn được yêu thích |
af_preferred_neighborhoods | chuỗi | Centro | Khu vực khách sạn |
phương pháp mua | chuỗi | Thẻ tín dụng | Phương thức mua hàng |
af_coupon_code | chuỗi | SUM2018 | Mã khuyến mại hoặc điểm thưởng khách hàng thân thiết |
loại khách sạn | chuỗi | Khách sạn | Loại khách sạn |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INITIATED_CHECKOUT, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInitiatedCheckout
withValues: @{
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel"
}];
AppsFlyerLib.shared().logEvent(AFEventInitiatedCheckout, withValues: [
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel"
]);
Dictionary<string, string> InitiatedCheckout =
new Dictionary<string, string>();
InitiatedCheckout.Add("af_currency", "GBP");
InitiatedCheckout.Add("af_price", "674");
InitiatedCheckout.Add("af_content_id", "ODIRNH");
InitiatedCheckout.Add("af_date_a", "2018/07/26");
InitiatedCheckout.Add("af_date_b", "2018/08/01");
InitiatedCheckout.Add("af_destination_a", "London");
InitiatedCheckout.Add("af_destination_b", "Madrid");
InitiatedCheckout.Add("af_class", "Deluxe");
InitiatedCheckout.Add("af_num_adults", "2");
InitiatedCheckout.Add("af_num_children", "0");
InitiatedCheckout.Add("af_hotel_score", "9.6");
InitiatedCheckout.Add("af_preferred_star_ratings", "5");
InitiatedCheckout.Add("af_preferred_neighborhoods", "Centro");
InitiatedCheckout.Add("purchase_method", "credit card");
InitiatedCheckout.Add("af_coupon_code", "SUM2018");
InitiatedCheckout.Add("af_property_type", "hotel");
AppsFlyer.sendEvent("af_initiated_chekcout", InitiatedCheckout);
Đặt vé du lịch
Tên Sự kiện: travel_booking
Mục đích
Mục đích của sự kiện Đặt vé Du lịch là cho phép bạn xem tỷ lệ đặt chỗ tổng thể trong ứng dụng của bạn. Ngoài ra, bằng cách ghi nhận sự kiện này, bạn có thể:
- Ghi nhận doanh thu tạo ra từ đặt chỗ.
- Xem có bao nhiêu người dùng đặt phòng khách sạn có trẻ em đi kèm.
- Hiểu được những xu hướng theo mùa.
- Thấy được những khách sạn nào phổ biến với người dùng.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng đến trang cảm ơn sau khi đặt phòng khách sạn.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 647 | Doanh thu từ đặt phòng |
af_currency | chuỗi | GBP | Mã tiền tệ |
af_price | float | 674 | Bảng giá của khách sạn |
af_content_id | chuỗi | ODIRNH | ID của khách sạn |
af_date_a | chuỗi | 2018/07/26 | Ngày nhận phòng |
af_date_b | chuỗi | 2018/08/01 | Ngày trả phòng |
af_destination_a | chuỗi | Luân Đôn | Vị trí của người dùng |
af_destination_b | chuỗi | Madrid | Vị trí khách sạn |
af_class | chuỗi | Phòng hạng sang | Loại phòng |
af_num_adults | float | 2 | Số lượng khách |
af_num_children | float | 0 | Số lượng trẻ em |
af_hotel_score | float | 9.6 | Điểm số khách sạn theo đánh giá |
af_preferred_star_ratings | float | 5 | Xếp hạng sao khách sạn được yêu thích |
af_preferred_neighborhoods | chuỗi | Centro | Khu vực khách sạn |
phương pháp mua | chuỗi | Thẻ tín dụng | Phương thức mua hàng |
af_coupon_code | chuỗi | SUM2018 | Mã khuyến mại hoặc điểm thưởng khách hàng thân thiết |
loại khách sạn | chuỗi | Khách sạn | Loại khách sạn |
new_booking | boolean | đúng | Lần đặt phòng đầu tiên của người dùng |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 647);
eventValue.put(AFInAppEventParameterName.CURRENCY, "GBP");
eventValue.put(AFInAppEventParameterName.PRICE, 674);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "ODIRNH");
eventValue.put(AFInAppEventParameterName.DATE_A, "2018/07/26");
eventValue.put(AFInAppEventParameterName.DATE_B, "2018/08/01");
eventValue.put(AFInAppEventParameterName.DESTINATION_A, "London");
eventValue.put(AFInAppEventParameterName.DESTINATION_B, "Madrid");
eventValue.put(AFInAppEventParameterName.CLASS, "Deluxe");
eventValue.put(AFInAppEventParameterName.NUM_ADULTS, 2);
eventValue.put(AFInAppEventParameterName.NUM_CHILDREN, 0);
eventValue.put(AFInAppEventParameterName.HOTEL_SCORE, 9.6);
eventValue.put(AFInAppEventParameterName.PREFERRED_STAR_RATINGS, 5);
eventValue.put(AFInAppEventParameterName.PREFERRED_NEIGHBORHOODS, "Centro");
eventValue.put("purchase_method", "credit card");
eventValue.put(AFInAppEventParameterName.COUPON_CODE, "SUM2018");
eventValue.put("property_type", "hotel");
eventValue.put("new_booking", true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "travel_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"travel_booking"
withValues: @{
AFEventParamRevenue: @647,
AFEventParamCurrency: @"GBP",
AFEventParamPrice: @674,
AFEventParamContentId: @"ODIRNH",
AFEventParamDateA: @"2018/07/26",
AFEventParamDateB: @"2018/08/01",
AFEventParamDestinationA: @"London",
AFEventParamDestinationB: @"Madrid",
AFEventParamClass: @"Deluxe",
AFEventParamNumAdults: @2,
AFEventParamNumChildren: @0,
AFEventParamHotelScore: @9.6,
AFEventParamPreferredStarRatings: @5,
AFEventParamPreferredNeighborhoods: @"Centro",
@"purchase_method": @"credit card",
AFEventParamCouponCode: @"SUM2018",
@"property_type": @"hotel",
@"new_booking": @TRUE
}];
AppsFlyerLib.shared().logEvent("travel_booking", withValues: [
AFEventParamRevenue: 647,
AFEventParamCurrency: "GBP",
AFEventParamPrice: 674,
AFEventParamContentId: "ODIRNH",
AFEventParamDateA: "2018/07/26",
AFEventParamDateB: "2018/08/01",
AFEventParamDestinationA: "London",
AFEventParamDestinationB: "Madrid",
AFEventParamClass: "Deluxe",
AFEventParamNumAdults: 2,
AFEventParamNumChildren: 0,
AFEventParamHotelScore: 9.6,
AFEventParamPreferredStarRatings: 5,
AFEventParamPreferredNeighborhoods: "Centro",
"purchase_method": "credit card",
AFEventParamCouponCode: "SUM2018",
"property_type": "hotel",
"new_booking": true
]);
Dictionary<string, string> TravelBooking =
new Dictionary<string, string>();
TravelBooking.Add("af_revenue", "647");
TravelBooking.Add("af_currency", "GBP");
TravelBooking.Add("af_price", "674");
TravelBooking.Add("af_content_id", "ODIRNH");
TravelBooking.Add("af_date_a", "2018/07/26");
TravelBooking.Add("af_date_b", "2018/08/01");
TravelBooking.Add("af_destination_a", "London");
TravelBooking.Add("af_destination_b", "Madrid");
TravelBooking.Add("af_class", "Deluxe");
TravelBooking.Add("af_num_adults", "2");
TravelBooking.Add("af_num_children", "0");
TravelBooking.Add("af_hotel_score", "9.6");
TravelBooking.Add("af_preferred_star_ratings", "5");
TravelBooking.Add("af_preferred_neighborhoods", "Centro");
TravelBooking.Add("purchase_method", "credit card");
TravelBooking.Add("af_coupon_code", "SUM2018");
TravelBooking.Add("af_property_type", "hotel");
TravelBooking.Add("af_new_booking", "true");
AppsFlyer.sendEvent("travel_booking", TravelBooking);
Mua hàng lần đầu
Tên sự kiện: first_purchase
Mục đích
Sự kiện này giống như sự kiện Mua hàng. Tuy nhiên, không giống sự kiện Mua hàng, sự kiện Mua hàng lần đầu có thể được sử dụng để:
- Xem khoảng thời gian cần thiết để một người mua mới mua sản phẩm.
- Xem những sản phẩm mà người mua lần đầu muốn mua.
- Xem giá và doanh thu trung bình của lần mua hàng đầu tiên.
Kích hoạt Logic
Kích hoạt sự kiện này khi người dùng hoàn tất giao dịch mua đầu tiên của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 1200 | Doanh thu từ giao dịch mua |
af_price | float | 4000 | Tổng số tiền mua hàng |
af_content_id | chuỗi | 121, 262 | ID mặt hàng |
af_content_type | chuỗi | khách sạn | Danh mục mặt hàng |
af_currency | chuỗi | AUD | Tiền tệ |
af_quantity | int | 1 | Số lượng mặt hàng trong giỏ hàng |
af_order_id | chuỗi | X123ABC | ID đơn đặt hàng được tạo sau khi mua |
af_receipt_id | chuỗi | X123ABC | ID đơn đặt hàng, nhưng cần thiết để tích hợp nhắm mục tiêu lại cho CRITEO và Google AdWords |
Ví dụ
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 350);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "221");
// for multiple product categories, set the param value as: new String {"221", "124"}
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "hotel");
// for multiple product categories set the param value as: new String {"hotel", "meals"}
eventValue.put(AFInAppEventParameteName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
// for multiple product categories, set the param value as: new int {1}
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "X123ABC");
eventValue.put("af_order_id", "X123ABC");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:("first_purchase")
withValues: @{
AFEventParamRevenue: @1200,
AFEventParamPrice: @4000,
AFEventParamContentId: @"221",
// for multiple product categories, set the param value as: @[@"221", @"124"]
AFEventParamContentType: @"hotel",
// for multiple product categories, set the param value as: @[@"hotel", @"meals"]
AFEventParamCurrency: @"USD",
AFEventParamQuantity: @2,
// for multiple product categories, set the param value as: @[@1]
AFEventParamOrderId: @"X123ABC",
AFEventParamReceiptId: @"X123ABC"
}];
AppsFlyerLib.shared().logEvent("first_purchase", withValues: [
AFEventParamRevenue: 1200,
AFEventParamPrice: 4000,
AFEventParamContentId: "221",
// for multiple product categories, set the param value as: ["221", "124"]
AFEventParamContentType: "hotel",
// for multiple product categories, set the param value as: ["hotel", "meals"]
AFEventParamCurrency: "USD",
AFEventParamQuantity: 2,
// for multiple product categories, set the param value as: // [1]
AFEventParamOrderId: "X123ABC",
AFEventParamReceiptId: "X123ABC"
]);
Dictionary<string, string> FirstPurchaseEvent = new Dictionary<string, string>();
FirstPurchaseEvent.Add("af_revenue", "1200");
FirstPurchaseEvent.Add("af_price", "4000");
FirstPurchaseEvent.Add("af_content_id", "121");
// for multiple product categories, set the param value as: ["221", "124"]
FirstPurchaseEvent.Add("af_content_type", "hotel");
// for multiple product categories, set the param value as: ["hotel", "meals"]
FirstPurchaseEvent.Add("af_currency", "USD");
FirstPurchaseEvent.Add("af_quantity", "2");
// for multiple product categories, set the param value as: [1]
FirstPurchaseEvent.Add("af_order_id", "X123ABC");
FirstPurchaseEvent.Add("af_receipt_id", "X123ABC");
AppsFlyer.sendEvent ("first_purchase", FirstPurchaseEvent);
Chăm sóc sức khỏe
Các ứng dụng chăm sóc sức khỏe cho phép người dùng mua bảo hiểm y tế, đặt lịch hẹn, nhận tư vấn y tế, v.v. Các sự kiện trong ứng dụng mà chúng tôi khuyến khích ghi lại trong các ứng dụng chăm sóc sức khỏe bao gồm giao dịch mua và đặt trước. Dưới đây là một số ví dụ cho thấy việc ghi lại các sự kiện này có thể mang lại lợi ích cho bạn như thế nào:
- Việc ghi lại các giao dịch mua giúp bạn hiểu loại thuốc nào là cần thiết và có nhiều nhu cầu nhất.
- Việc ghi lại các gói bảo hiểm giúp bạn hiểu người dùng quan tâm đến gói nào.
- Việc ghi lại các cuộc hẹn trước giúp bạn hiểu những vấn đề y tế nào mà người dùng quan tâm nhất.
Đăng nhập
Tên Sự kiện: af_login
Mục đích
Sự kiện này có thể giúp bạn hiểu về tỷ lệ giữ chân người dùng đã đăng ký của bạn.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào người dùng đăng nhập.
Các trường được đề xuất
Sự kiện này có thể được gửi mà không cần có bất kỳ trường 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);
Đăng ký Hoàn thành
Tên Sự kiện: complete_registration
Mục đích
Bạn có thể ghi nhận đăng ký người dùng và so sánh với các dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Bằng cách ghi nhận các sự kiện đăng ký người dùng, bạn có thể:
- Tìm hiểu xem có bao nhiêu người dùng đã cài đặt ứng dụng nhưng chưa bao giờ đăng ký.
- Tìm hiểu những phương thức đăng ký mà người dùng của bạn ưa thích.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi người dùng hoàn tất quá trình đăng ký.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | email, facebook | Loại phương thức đăng ký |
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);
Cuộc hẹn đã xác nhận
Tên sự kiện: confirmed_appointment
Mục đích
Bạn có thể ghi lại khi người dùng thực hiện bất kỳ cuộc hẹn nào. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện xác nhận cuộc hẹn, bạn có thể gửi cho những người dùng này quảng cáo nhắm mục tiêu lại và lời nhắc khám thường xuyên và các cuộc hẹn trong tương lai.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng đặt lịch hẹn.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên bác sĩ | chuỗi | Robert James | Tên của bác sĩ. |
số cuộc hẹn | chuỗi | 001 | Số của cuộc hẹn. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("appointment number", "001");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "confirmed_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"confirmed_appointment" withValues: @{
@"doctor name": @"Robert James",
@"appointment number": @"001"}];
AppsFlyerLib.shared().logEvent("confirmed_appointment", withValues:
[ "doctor name": "Robert James",
"appointment number": "001"])
Dictionary<string, string> ConfirmedAppointmentEvent= new Dictionary<string, string>();
ConfirmedAppointmentEvent.Add("doctor name", "Robert James");
ConfirmedAppointmentEvent.Add("appointment number", "001");
AppsFlyer.sendEvent ("confirmed_appointment", ConfirmedAppointmentEvent);
Cuộc hẹn bị hủy
Tên Sự kiện: canceled_appointment
Mục đích
Bạn có thể ghi lại khi người dùng hủy cuộc hẹn. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện hủy cuộc hẹn, bạn có thể gửi cho những người dùng này quảng cáo nhắm mục tiêu lại để lên lịch lại cuộc hẹn của họ.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng hủy cuộc hẹn.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên bác sĩ | chuỗi | Robert James | Tên của bác sĩ. |
số cuộc hẹn | chuỗi | 001 | Số của cuộc hẹn. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("appointment number", "001");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "canceled_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"canceled_appointment" withValues: @{
@"doctor name": @"Robert James",
@"appointment number": @"001"}];
AppsFlyerLib.shared().logEvent("canceled_appointment", withValues:
[ "doctor name": "Robert James",
"appointment number": "001"])
Dictionary<string, string> CanceledAppointmentEvent= new Dictionary<string, string>();
CanceledAppointmentEvent.Add("doctor name", "Robert James");
CanceledAppointmentEvent.Add("appointment number", "001");
AppsFlyer.sendEvent ("canceled_appointment", CanceledAppointmentEvent);
Lần hẹn trước đầu tiên với bác sĩ
Tên Sự kiện: doctor_first_booking
Mục đích
Bạn có thể ghi lại khi một người dùng đặt cuộc hẹn đầu tiên của họ. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện cuộc hẹn đầu tiên, bạn có thể gửi cho những người dùng này khuyến mãi/quảng cáo nhắm mục tiêu lại.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng thực hiện cuộc hẹn đầu tiên của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên bác sĩ | chuỗi | Robert James | Tên của bác sĩ. |
chuyên môn | chuỗi | khoa thần kinh | Chuyên khoa. |
thời lượng | chuỗi | trò chuyện 30 phút | Khoảng thời gian tiến hành cuộc hẹn. |
price | chuỗi | 50 | Giá của cuộc hẹn. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "doctor_first_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"doctor_first_booking" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("doctor_first_booking", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> DoctorFirstBookingEvent= new Dictionary<string, string>();
DoctorFirstBookingEvent.Add("doctor name", "Robert James");
DoctorFirstBookingEvent.Add("appointment number", "001");
DoctorFirstBookingEvent.Add("duration", "30 min chat");
DoctorFirstBookingEvent.Add("price", "50");
AppsFlyer.sendEvent ("doctor_first_booking", DoctorFirstBookingEvent);
Lần hẹn đầu tiên với phòng thí nghiệm
Tên Sự kiện: lab_first_appointment
Mục đích
Bạn có thể ghi lại khi một người dùng đặt cuộc hẹn đầu tiên của họ. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện cuộc hẹn đầu tiên, bạn có thể gửi cho những người dùng này khuyến mãi/quảng cáo nhắm mục tiêu lại.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng thực hiện cuộc hẹn đầu tiên của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
lựa chọn phòng thí nghiệm | chuỗi | khám toàn thân | Tên của loại phòng thí nghiệm. |
quantity | chuỗi | 2 | Số lượng đặt hàng. |
price | chuỗi | 500 | Giá của phòng thí nghiệm. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("lab selection", "full body checkup");
eventValue.put("quantity", "2");
eventValue.put("price", "500");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "lab_first_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"lab_first_appointment" withValues: @{
@"lab_selection": @"full body checkup",
@"quantity": @"2",
@"price": @"500"}];
AppsFlyerLib.shared().logEvent("lab_first_appointment", withValues:
[ "lab selection": "full body checkup",
"quantity": "2",
"price": "500"])
Dictionary<string, string> LabFirstAppointmentEvent= new Dictionary<string, string>();
LabFirstAppointmentEvent.Add("lab selection", "full body checkup");
LabFirstAppointmentEvent.Add("quantity", "2");
LabFirstAppointmentEvent.Add("price", "500");
AppsFlyer.sendEvent ("lab_first_appointment", LabFirstAppointmentEvent);
Lần mua đầu tiên với nhà thuốc
Tên Sự kiện: pharmacy_first_purchase
Mục đích
Bạn có thể ghi lại khi một người dùng mua dược phẩm lần đầu tiên. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện mua hàng đầu tiên, bạn có thể gửi cho những người dùng này các khuyến mãi/quảng cáo nhắm mục tiêu lại.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng thực hiện giao dịch mua đầu tiên của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên thuốc | chuỗi | rhinos | Tên của thuốc. |
quantity | chuỗi | 1 | Số lượng đặt hàng. |
price | chuỗi | 10 | Giá của thuốc. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "pharmacy_first_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"pharmacy_first_purchase" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("pharmacy_first_purchase", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> PharmacyFirstPurchaseEvent= new Dictionary<string, string>();
PharmacyFirstPurchaseEvent.Add("medicine name", "rhinos");
PharmacyFirstPurchaseEvent.Add("quantity", "1");
PharmacyFirstPurchaseEvent.Add("price", "10");
AppsFlyer.sendEvent ("pharmacy_first_purchase", PharmacyFirstPurchaseEvent);
Hẹn trước với bác sĩ
Tên Sự kiện: doctor_booking
Mục đích
Bạn có thể ghi lại khi người dùng đặt lịch hẹn trực tiếp với bác sĩ. Ví dụ: Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện cuộc hẹn này, bạn sẽ biết được nhiều hơn về nhu cầu và sở thích của người dùng.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng lên lịch một cuộc hẹn trực tiếp.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên bác sĩ | chuỗi | Robert James | Tên của bác sĩ. |
chuyên môn | chuỗi | khoa thần kinh | Chuyên khoa. |
thời lượng | chuỗi | trò chuyện 30 phút | Khoảng thời gian tiến hành cuộc hẹn. |
price | chuỗi | 50 | Giá của cuộc hẹn. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "doctor_booking", eventValue);
[[AppsFlyerLib shared] logEvent:@"doctor_booking" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("doctor_booking", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> DoctorBookingEvent= new Dictionary<string, string>();
DoctorBookingEvent.Add("doctor name", "Robert James");
DoctorBookingEvent.Add("appointment number", "001");
DoctorBookingEvent.Add("duration", "30 min chat");
DoctorBookingEvent.Add("price", "50");
AppsFlyer.sendEvent ("doctor_booking", DoctorBookingEvent);
Trò chuyện với bác sĩ
Tên Sự kiện: chat_doctor
Mục đích
Nếu ứng dụng của bạn cho phép người dùng lên lịch trò chuyện trực tiếp với bác sĩ, bạn có thể ghi lại khi người dùng hẹn trước một cuộc trò chuyện như vậy. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện hẹn trước này, bạn sẽ biết được nhiều hơn về nhu cầu và sở thích của người dùng.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng đặt chỗ trước.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên bác sĩ | chuỗi | Robert James | Tên của bác sĩ. |
chuyên môn | chuỗi | khoa thần kinh | Chuyên khoa. |
thời lượng | chuỗi | trò chuyện 30 phút | Khoảng thời gian tiến hành cuộc hẹn. |
price | chuỗi | 50 | Giá của cuộc hẹn. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("doctor name", "Robert James");
eventValue.put("specialty", "neurology");
eventValue.put("duration", "30 min chat");
eventValue.put("price", "50");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "chat_doctor", eventValue);
[[AppsFlyerLib shared] logEvent:@"chat_doctor" withValues: @{
@"doctor name": @"Robert James",
@"specialty": @"neurology",
@"duration": @"30 min chat",
@"price": @"50"}];
AppsFlyerLib.shared().logEvent("chat_doctor", withValues:
[ "doctor name": "Robert James",
"specialty": "neurology",
"duration": "30 min chat",
"price": "50"])
Dictionary<string, string> ChatDoctorEvent= new Dictionary<string, string>();
ChatDoctorEvent.Add("doctor name", "Robert James");
ChatDoctorEvent.Add("appointment number", "001");
ChatDoctorEvent.Add("duration", "30 min chat");
ChatDoctorEvent.Add("price", "50");
AppsFlyer.sendEvent ("chat_doctor", ChatDoctorEvent);
Cuộc hẹn với phòng thí nghiệm
Tên Sự kiện: lab_appointment
Mục đích
Bạn có thể ghi lại khi một người dùng đặt lịch hẹn phòng thí nghiệm. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện cuộc hẹn, bạn có thể gửi cho những người dùng này khuyến mãi/quảng cáo nhắm mục tiêu lại.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng đặt lịch hẹn với phòng thí nghiệm.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
lựa chọn phòng thí nghiệm | chuỗi | khám toàn thân | Tên của loại phòng thí nghiệm. |
quantity | chuỗi | 2 | Số lượng đặt hàng. |
price | chuỗi | 500 | Giá của phòng thí nghiệm. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("lab selection", "full body checkup");
eventValue.put("quantity", "2");
eventValue.put("price", "500");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "lab_appointment", eventValue);
[[AppsFlyerLib shared] logEvent:@"lab_appointment" withValues: @{
@"lab_selection": @"full body checkup",
@"quantity": @"2",
@"price": @"500"}];
AppsFlyerLib.shared().logEvent("lab_appointment", withValues:
[ "lab selection": "full body checkup",
"quantity": "2",
"price": "500"])
Dictionary<string, string> LabAppointmentEvent= new Dictionary<string, string>();
LabAppointmentEvent.Add("lab selection", "full body checkup");
LabAppointmentEvent.Add("quantity", "2");
LabAppointmentEvent.Add("price", "500");
AppsFlyer.sendEvent ("lab_appointment", LabAppointmentEvent);
Mua hàng ở nhà thuốc
Tên Sự kiện: pharmacy_purchase
Mục đích
Bạn có thể ghi lại khi người dùng mua dược phẩm. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện mua, bạn có thể gửi cho những người dùng này khuyến mãi/quảng cáo nhắm mục tiêu lại.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng mua dược phẩm.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên thuốc | chuỗi | rhinos | Tên của thuốc. |
quantity | chuỗi | 1 | Số lượng đặt hàng. |
price | chuỗi | 10 | Giá của thuốc. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "pharmacy_purchase", eventValue);
[[AppsFlyerLib shared] logEvent:@"pharmacy_purchase" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("pharmacy_purchase", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> PharmacyPurchaseEvent= new Dictionary<string, string>();
PharmacyPurchaseEvent.Add("medicine name", "rhinos");
PharmacyPurchaseEvent.Add("quantity", "1");
PharmacyPurchaseEvent.Add("price", "10");
AppsFlyer.sendEvent ("pharmacy_purchase", PharmacyPurchaseEvent);
Thêm vào Giỏ hàng
Tên Sự kiện: add_to_cart
Mục đích
Bạn có thể ghi lại khi người dùng thêm thuốc vào giỏ hàng của họ. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện thêm vào giỏ hàng, bạn có thể gửi cho những người dùng này khuyến mãi/lời nhắc thanh toán và hoàn tất việc mua hàng.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng thêm sản phẩm vào giỏ hàng của họ.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên thuốc | chuỗi | rhinos | Tên của thuốc. |
quantity | chuỗi | 1 | Số lượng đặt hàng. |
price | chuỗi | 10 | Giá của thuốc. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("medicine name", "rhinos");
eventValue.put("quantity", "1");
eventValue.put("price", "10");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "add_to_cart", eventValue);
[[AppsFlyerLib shared] logEvent:@"add_to_cart" withValues: @{
@"medicine name": @"rhinos",
@"quantity": @"1",
@"price": @"10"}];
AppsFlyerLib.shared().logEvent("add_to_cart", withValues:
[ "medicine name": "rhinos",
"quantity": "1",
"price": "10"])
Dictionary<string, string> AddToCartEvent= new Dictionary<string, string>();
AddToCartEvent.Add("medicine name", "rhinos");
AddToCartEvent.Add("quantity", "1");
AddToCartEvent.Add("price", "10");
AppsFlyer.sendEvent ("add_to_cart", AddToCartEvent);
Tư cách hội viên bảo hiểm
Tên Sự kiện: insurance_membership
Mục đích
Nếu ứng dụng của bạn hợp tác với công ty bảo hiểm để cung cấp các tùy chọn bảo hiểm, bạn có thể ghi lại khi người dùng đăng ký bảo hiểm. Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện đăng ký hội viên bảo hiểm, bạn sẽ tìm hiểu được thêm về người dùng của mình và có thể nhắm mục tiêu họ lại cho phù hợp.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng trở thành hội viên bảo hiểm.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên bảo hiểm | chuỗi | DavidShield | Tên công ty bảo hiểm. |
loại bảo hiểm | chuỗi | cao cấp | Loại chương trình bảo hiểm. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("insurance name", "DavidShield");
eventValue.put("insurance type", "premium");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "insurance_membership", eventValue);
[[AppsFlyerLib shared] logEvent:@"insurance_membership" withValues: @{
@"insurance name": @"DavidShield",
@"insurance type": @"premium"}];
AppsFlyerLib.shared().logEvent("insurance_membership", withValues:
[ "insurance name": "DavidShield",
"insurance type": "premium"])
Dictionary<string, string> InsuranceMembershipEvent= new Dictionary<string, string>();
InsuranceMembershipEvent.Add("insurance name", "DavidShield");
InsuranceMembershipEvent.Add("insurance type", "premium");
AppsFlyer.sendEvent ("insurance_membership", InsuranceMembershipEvent);
Phát hành biên lai
Tên Sự kiện: receipt_issuance
Mục đích
Ghi lại khi người dùng của bạn nhận được biên lai. Người dùng có biên lai có thể yêu cầu công ty bảo hiểm thanh toán chi phí cho cuộc hẹn với bác sĩ, phòng thí nghiệm hoặc thuốc men. Và Điều này có thể có ích cho bạn, chẳng hạn như, vì khi bạn ghi lại các sự kiện phát hành biên lai, bạn sử dụng dữ liệu cho các chiến dịch nhắm mục tiêu lại về khoản bảo hiểm cá nhân.
Kích hoạt Logic
Cách tốt nhất để ghi lại sự kiện này là kích hoạt sự kiện khi người dùng nhận được biên lai.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
tên ứng dụng | chuỗi | Ứng dụng Chăm sóc sức khỏe | Tên ứng dụng của bạn |
tên bác sĩ | chuỗi | Robert James | Tên của bác sĩ. |
mô tả tư vấn | chuỗi | sốt | Mô tả tình trạng sức khỏe. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("app name", "Healthcare App");
eventValue.put("doctor name", "Robert James");
eventValue.put("consultation description", "fever");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "receipt_issuance", eventValue);
[[AppsFlyerLib shared] logEvent:@"receipt_issuance" withValues: @{
@"app name": @"Healthcare App",
@"doctor name": @"Robert James",
@"consultation description": @"fever"}];
AppsFlyerLib.shared().logEvent("receipt_issuance", withValues:
[ "app name": "Healthcare App",
"insurance name": "Robert James",
"insurance type": "fever"])
Dictionary<string, string> ReceiptIssuanceEvent= new Dictionary<string, string>();
ReceiptIssuanceEvent.Add("app name", "Healthcare App");
ReceiptIssuanceEvent.Add("doctor name", "Robert James");
ReceiptIssuanceEvent.Add("consultation description", "fever");
AppsFlyer.sendEvent ("receipt_issuance", ReceiptIssuanceEvent);
Mua
Tên sự kiện: af_purchase
Mục đích
Ghi lại các giao dịch mua trong ứng dụng do người dùng thực hiện. Bằng cách ghi lại các giao dịch mua hàng, bạn có thể:
- Xác định Giá trị trọn đời của người dùng và Tỷ suất hoàn vốn 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 mua 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 Logic
Để ghi nhận sự kiện này đúng cách, bạn nên kích hoạt sự kiện khi người dùng đến trang cảm ơn sau khi mua hàng thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 50 | Doanh thu từ việc mua hàng. |
af_currency | chuỗi | USD | Mã tiền tệ. |
af_content_type | chuỗi | phòng thí nghiệm | Tên của giao dịch mua. |
af_order_id | chuỗi | 9277 | ID đơn đặt hàng. |
payment_method_type | chuỗi | thẻ tín dụng, nội địa | Phương thức thanh toán. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 50);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "lab");
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: @50,
AFEventParamCurrency: @"USD",
AFEventParamContentType: @"lab",
AFEventParamContentTypeOrderId: @"9277",
@"payment_method_type": @"credit card"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 50,
AFEventParamCurrency: "USD",
AFEventParamContentType: "lab",
AFEventParamContentTypeOrderId: "9277",
"payment_method_type": "credit card",
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "50");
purchaseEvent.Add("af_currency", "USD");
purchaseEvent.Add("af_content_type", "lab");
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
Tên Sự kiện: af_top_up_success
Mục đích
Tiền nạp có thể được sử dụng để mua bất cứ gói hoặc dịch vụ nào được cung cấp bên trong ứng dụng. Bạn có thể ghi lại giao dịch nạp tiền của người dùng và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Bằng cách ghi lại các sự kiện giao dịch nạp tiền của người dùng, bạn có thể:
- Tìm hiểu số tiền mà mọi người sẵn sàng nạp vào tài khoản của họ.
- Sử dụng số tiền nạp vào để nhắm mục tiêu người dùng bằng các chiến dịch tùy chỉnh nằm trong khoảng ngân sách nạp của họ.
Kích hoạt Logic
Để ghi nhận đúng cách sự kiện này, bạn nên kích hoạt sự kiện đó khi người dùng hoàn tất giao dịch nạp tiền.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | chuỗi | 2000 | Số tiền nạp. |
top_up_id | chuỗi | 397 | ID giao dịch nạp tiền. |
payment_method_type | chuỗi | thẻ tín dụng, thanh toán nội địa | Phương thức thanh toán đã sử dụng. |
Ví dụ
Map<String, Object> eventValue = new HashMap<>();eventValue.put(AFInAppEventParameterName.REVENUE, 2000); eventValue.put("TOP_UP_ID", "397"); eventValue.put("PAYMENT_METHOD_TYPE", "creditcard");
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,
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);
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.v. Các sự kiện trong ứng dụng mà chúng tôi khuyến khích bạn nên ghi nhận trong các ứng dụng viễn thông bao gồm mua hàng, nạp tiền và đăng ký. Dưới đây là một số ví dụ cho thấy việc ghi nhận các sự kiện này có thể mang lại lợi ích cho bạn như thế nào:
- Việc ghi nhận các giao dịch mua hàng giúp bạn nắm rõ các gói cổng mạng nào phổ biến nhất.
- Việc ghi nhận các giao dịch nạp tiền giúp bạn nắm rõ những sản phẩm hoặc gói nào mà người dùng đủ khả năng chi trả.
- Việc ghi nhận đăng ký giúp bạn nắm rõ các 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.
Đăng nhập
Tên Sự kiện: af_login
Mục đích
Sự kiện này có thể giúp bạn hiểu về tỷ lệ giữ chân người dùng đã đăng ký của bạn.
Kích hoạt Logic
Kích hoạt sự kiện này bất cứ khi nào người dùng đăng nhập.
Các trường được đề xuất
Sự kiện này có thể được gửi mà không cần có bất kỳ trường 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);
Mua
Tên sự kiện: af_purchase
Mục đích
Nhiều ứng dụng viễn thông cho phép người dùng mua hàng, ví dụ: mua thêm dữ liệu. Sự kiện Mua giúp bạn ghi nhận giao dịch mua hàng trong ứng dụng do người dùng thực hiện. Bằng cách ghi nhận các giao dịch mua hàng, bạn có thể:
- Xác định Giá trị trọn đời của người dùng và Tỷ suất hoàn vốn 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 mua 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 Logic
Để ghi nhận sự kiện này đúng cách, bạn nên kích hoạt sự kiện khi người dùng đến trang cảm ơn sau khi mua hàng thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | float | 2000 | Doanh thu ước tính từ giao dịch mua |
af_currency | chuỗi | THB | Mã tiền tệ |
af_content_type | chuỗi | 5G | Tên của gói đã mua. |
af_order_id | chuỗi | 9277 | ID đơn đặt hàng |
payment_method_type | chuỗi | thẻ tín dụng, thanh toán nội địa | Loại phương thức thanh toán |
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);
Đăng ký Hoàn thành
Tên Sự kiện: complete_registration
Mục đích
Bạn có thể ghi nhận đăng ký người dùng và so sánh với các dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Bằng cách ghi nhận các sự kiện đăng ký người dùng, bạn có thể:
- Tìm hiểu xem có bao nhiêu người dùng đã cài đặt ứng dụng nhưng chưa bao giờ đăng ký.
- Tìm hiểu những phương thức đăng ký mà người dùng của bạn ưa thích.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện khi người dùng hoàn tất quá trình đăng ký.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_registration_method | chuỗi | email, facebook | Loại phương thức đăng ký |
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);
Giao dịch nạp tiền thành công
Tên Sự kiện: 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. Bạn có thể ghi nhận giao dịch nạp tiền của người dùng và so sánh với dữ liệu khác để tìm hiểu thêm về người dùng của bạn. Bằng cách ghi nhận các sự kiện giao dịch nạp tiền của người dùng, bạn có thể:
- Tìm hiểu số tiền mà mọi người sẵn sàng nạp vào tài khoản của họ.
- Sử dụng số tiền nạp vào để nhắm mục tiêu người dùng bằng các chiến dịch tùy chỉnh nằm trong khoảng ngân sách nạp của họ.
Kích hoạt Logic
Để ghi nhận đúng cách sự kiện này, bạn nên kích hoạt sự kiện đó khi người dùng hoàn tất giao dịch nạp tiền.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_revenue | chuỗi | 2000 | Số tiền nạp. |
top_up_id | chuỗi | 397 | ID giao dịch nạp tiền. |
payment_method_type | chuỗi | thẻ tín dụng, thanh toán nội địa | Phương thức thanh toán đã sử dụng. |
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);
Giao dịch nạp tiền không thành công
Tên Sự kiện: af_top_up_unsuccessful
Mục đích
Bạn có thể ghi nhận các sự kiện nạp tiền không thành công 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ằng cách ghi nhận những giao dịch nạp tiền không thành công, 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 Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện đó khi người dùng cố gắng nạp tiền nhưng thao tác này không thành công.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
error_reason | chuỗi | exceeded_daily_limit | Lý do nạp tiền không thành công. |
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
Tên Sự kiện: af_subscription_complete
Mục đích
Bằng cách ghi nhận các sự kiện đăng ký người dùng, bạn có thể:
- 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 phương tiện.
Kích hoạt Logic
Kích hoạt sự kiện này theo một trong hai tình huống:
- Khi người dùng đăng ký thành công.
- Khi đăng ký được gia hạn.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
af_subscription_type | chuỗi | 30 GB hàng tháng | Loại gói đăng ký. |
af_revenue | chuỗi | 555 | Số gói đăng ký. |
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);
Chọn gói
Tên Sự kiện: select_package
Mục đích
Bạn có thể ghi nhận thời điểm khi người dùng quyết định mua một gói nhưng chưa thực hiện thanh toán. Điều này có thể giúp bạn, chẳng hạn như khi bạn ghi nhận các sự kiện chọn gói, bạn có thể gửi cho những người dùng này quảng cáo nhắm mục tiêu lại và lời nhắc để họ hoàn tất gói đăng ký của họ.
Kích hoạt Logic
Cách tốt nhất để ghi nhận sự kiện này là kích hoạt sự kiện đó khi người dùng chọn một gói nhưng chưa hoàn tất việc thanh toán.
Các trường được đề xuất
Tên trường | Loại | Ví dụ của giá trị | Mô tả |
---|---|---|---|
price | chuỗi | 50000 | Giá của gói đăng ký. |
af_content_type | chuỗi | 5 GB dữ liệu | Chứng chỉ đã được cấp hay chưa. |
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);