一、记录应用内事件
应用内事件可助您深入了解应用里正在发生的事。我们建议您花些时间定义要记录的事件。记录应用内事件有助于您衡量KPI,例如ROI(投资回报率)和LTV(生命周期价值)。
有几种方法可以记录应用内事件。最常见的方法是通过我们在本文中讨论的通过SDK发送事件。
如果您的应用属于某个行业,例如旅行、游戏、电子商务等,您可以参考每个行业的推荐应用内事件列表。
1、应用内事件类型
以下部分介绍了每个事件类型的推荐结构, 以及指向 Facebook、Twitter、Criteo、Google Ads 和 Snapchat 的参数映射。
以下应用内事件被定义为 AFInAppEventType 接口的一部分, 建议这样做:
完成注册
事件名称:af_complete_registration
描述:用于追踪用户注册方式
事件参数 (Android):AFInAppEventType.COMPLETE_REGISTRATION
事件参数 (iOS):AFEventCompleteRegistration
Facebook映射事件: fb_mobile_complete_registration
Twitter映射事件: SIGN_UP
Criteo映射事件:无
Google Ads: sign_up
Snapchat: SIGN_UP
推荐参数: af_registration_method
属性映射:
AppsFlyer | Criteo | Google Ads | Snapchat | ||
af_registration_ method | fb_registration_ method | registration_method | - | registration_method | sign_up_method |
购买
事件名称: af_purchase
描述:用于追踪购买事件(及相关收入)
事件参数 (Android):AFInAppEventType.PURCHASE
事件参数 (iOS):AFEventPurchase
Facebook映射事件: fb_mobile_purchase
Twitter映射事件: PURCHASE
Criteo 映射事件: transactionConfirmation
Google Ads: in_app_purchase
Snapchat: PURCHASE
推荐参数: af_revenue, af_content_type, af_content_id, af_content, af_price, af_quantity, af_currency, af_order_id
属性映射:
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 | 类别 |
af_content_id | fb_content_id | content_id | id | item_id | item_ids | - |
af_content | fb_content | - | - | - | - | Custom conversion meta |
af_currency | fb_currency | price_currency | currency | currency_code | currency | currency |
af_quantity | fb_num_items | number_items | quantity | quantity | number_items | quantity |
af_validated | - | - | - | 已验证 | success | Voucher |
af_receipt_id | - | - | transaction_id | transaction_id | - | Conversion Reference |
af_order_id | fb_order_id | - | - | order_id | transaction_id | Clickref |
af_content_list | fb_content_id | - | - | item_id | - | Custom item meta |
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_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** | price | - | value |
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 | - | - | - | - | - |
* af_revenue 用于计算 AppsFlyer 平台中的收入。
**af_price - 您可使用 af_price 作为不计算收入的货币参数(例如“添加到购物车”事件)。 该参数意指单个商品价格。 所有购买的总金额用 af_revenue 参数表示。
广告点击
事件名称: af_ad_click
说明: 用于追踪应用中展示广告的点击次数
事件参数 (Android):AFInAppEventType.AD_CLICK
事件参数 (iOS):AFEventAdClick
Facebook 映射时间: AdClick
Twitter映射事件: 无
Criteo映射事件:无
Google Ads: 无
推荐属性: af_adrev_ad_type
属性映射:
AppsFlyer | Criteo | Google Ads | ||
af_adrev_ad_type | ad_type | - | - | - |
af_currency | fb_currency | - | - | - |
分享
事件名称: af_share
描述:用于追踪分享事件
事件参数 (Android):AFInAppEventType.SHARE
事件参数 (iOS):AFEventShare
Facebook映射事件: 无
Twitter 映射事件: SHARE
Criteo映射事件:无
Google Ads: share
推荐属性: af_description
属性映射:
AppsFlyer | Criteo | Google Ads | ||
af_description | - | description | - | description |
邀请
事件名称: af_invite
描述:用于追踪邀请(社交)事件
事件参数 (Android):AFInAppEventType.INVITE
事件参数 (iOS):AFEventInvite
Facebook 映射事件: None
Twitter 映射事件: INVITE
Criteo映射事件:无
Google Ads: invite
推荐属性: 无
属性映射:
AppsFlyer | Criteo | Google Ads | ||
af_description | - | description | - | description |
登录
事件名称:af_login
描述:用于追踪用户登录事件
事件参数 (Android):AFInAppEventType.LOGIN
事件参数 (iOS):AFEventLogin
Facebook 映射事件: None
Twitter 映射事件: LOGIN
Criteo映射事件:无
Google Ads: login
推荐属性: 无
用户唤醒
事件名称: af_re_engage
描述: 用于追踪用户的重参与事件
事件参数 (Android):AFInAppEventType.RE_ENGAGE
事件参数 (iOS):AFEventReEngage
Facebook映射事件: 无
Twitter 映射事件: RE_ENGAGE
Criteo映射事件:无
Google Ads: custom_event
推荐属性: 无
属性映射:
AppsFlyer | Criteo | Google Ads | ||
af_description | - | description | - | description |
从推送通知打开
事件名称: af_opened_from_push_notification
描述:用于追踪从推送通知打开应用的事件
事件参数 (Android):AFInAppEventType.OPENED_FROM_PUSH_NOTIFICATION
事件参数 (iOS):AFEventOpenedFromPushNotification
Facebook 映射事件: None
Twitter映射事件: 无
Criteo映射事件:无
Google Ads: notification_open
推荐属性: 无
2、 应用内事件限制
- 事件名称:最多45个字符
- 事件值:不得超过1000个字符-如超过这个长度,我们可能会截断它
- 定价和收入:仅使用数字和小数点,例如5或5.2
- 价格和收入最多可以到小数点后5位,如5.12345
- 从Android SDK V4.8.1开始,应用内事件和其他SDK API都支持非英语字符。
3、 记录应用内事件的示例
您可以通过调用trackEvent
来记录应用内事件的名称和参数值。有关更多详细信息,请参见应用内事件文档。
以下是有关如何记录购买事件的简单示例。关于每个行业的现成代码片段列表,请参阅详细应用内事件指南
示例:应用内购买活动
Java Map<String,Object> eventValues = new HashMap<>(); eventValues.put(AFInAppEventParameterName.REVENUE, 1200); eventValues.put(AFInAppEventParameterName.CURRENCY, "JPY"); eventValues.put(AFInAppEventParameterName.CONTENT_TYPE, "Shoes"); AppsFlyerLib.getInstance().trackEvent(this, AFInAppEventType.PURCHASE, eventValues);
4、记录离线应用内事件
如果用户在互联网连接不可用时启动事件,Appsflyer仍然可以记录该事件。它是这样工作的:
- SDK 将事件发送到 AppsFlyer 的服务器并等待响应。
- 如果 SDK 没有收到响应200, 则该事件将存储在缓存中。
- 收到下一个响应200后, 存储的事件将重新发送到服务器。
- 如果缓存中有多个事件, 它们将被立即按序发送到服务器。
注意
SDK 的缓存最多可以存储40个事件, 这意味着只保存脱机发生的前40个事件。所有之后的事件都会被丢弃,直到下一个相应200。
原始数据中显示的事件时间是设备再次联机后事件发送到AppsFlyer的时间。不是事件发生的实际时间。
5、记录应用内事件处理成功和失败的信息
您可以在记录应用内事件时设置监听器。监听器可以给两种场景定义逻辑:
- 应用内事件已成功记录。
- 记录应用内事件时发生错误。
Java AppsFlyerLib.getInstance().trackEvent(getApplicationContext(), AFInAppEventType.PURCHASE, eventValue, new AppsFlyerTrackingRequestListener() { @Override public void onTrackingRequestSuccess() { Log.d(AppsFlyerLibCore.LOG_TAG, "onTrackingRequestSuccess"); } @Override public void onTrackingRequestFailure(String error) { Log.d(AppsFlyerLibCore.LOG_TAG, "onTrackingRequestFailure: " + error); } });