本指南介绍如何集成 Facebook SDK,然后记录应用事件,从而为新旧应用添加这些事件。
系统会在应用内使用以下 3 种方式追踪事件:
使用 Facebook SDK 时,如果未禁用事件自动记录功能,系统会为 Facebook 自动记录和收集应用中的特定事件。这些事件与所有用途相关,例如定位、成效衡量和优化。应用事件自动记录功能收集的事件包括三个主要事件:应用安装、应用启动和购买。启用自动记录功能时,广告主可禁用这些事件,以及登录展示事件等其他 Facebook 内部事件。但是,如果禁用了自动记录功能,但仍希望记录特定事件(例如安装或购买事件),则可以在应用中手动记录这些事件。
| 事件 | 详情 |
|---|---|
应用安装 | 新用户首次激活应用或首次在特定设备上启动应用时。 |
启动应用 | 用户启动应用后,Facebook SDK 便会初始化,系统也会记录该事件。但是,如果在首次启动后 60 秒内发生第二次应用启动事件,则系统不会记录第二次应用启动事件。 对于 Android 版 Facebook SDK v4.18 及更早版本,SDK 初始化是一个手动程序,而且与下文所述的手动事件记录程序不同。请更新至最新 SDK 版本,或滚动至旧版 SDK 初始化部分,以手动添加事件。 |
应用内购买 | 完成由 Google Play 处理的购物后自动记录。如果使用其他支付平台,请手动添加购买事件代码。 要验证是否已自动记录应用内购买事件,请前往应用面板中的基础 > Android 卡设置。 Android 版 SDK 目前支持 Google Play Billing 库 v2 至 v7。 注意:如果您想使用应用内购买来衡量动态广告的转化量,请在 Apple App Store 或 Google Play 商店中将商品编号设为与所关联动态广告中使用的商品编号相同。 |
应用内订阅并开始试用 | 完成由 Google Play 处理的订阅购买(或开始试用事件)后自动记录。Google Play Billing 库 v5 至 v7 支持自动记录应用内订阅或试用开始事件。要启用此功能,您需要先启用应用内购买(如上所述),并按照这些说明操作。 |
Facebook SDK 崩溃报告 (仅供 Facebook 使用。) | 如果应用因 Facebook SDK 而崩溃,系统会在应用重启时生成崩溃报告并将其发送给 Facebook。此报告不包含用户数据,并且有助于 Facebook 确保 Facebook SDK 的质量和稳定性。要禁止记录此事件,请禁用自动记录事件功能。 |
Facebook SDK ANR 报告 (仅供 Facebook 使用。) | 如果应用因 Facebook SDK 而出现 ANR(应用程序不响应)问题,系统会在应用重启时生成 ANR 报告并将其发送给 Facebook。此报告不包含用户数据,并且有助于 Facebook 确保 Facebook SDK 的质量和稳定性。要禁止记录此事件,请禁用自动记录事件功能。 |
要禁用自动记录事件功能,请将以下代码添加到 AndroidManifest.xml 文件:
<application>
...
<meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
android:value="false"/>
...
</application>在某些情况下(例如要获得用户同意或履行法定义务),您可能想要延迟收集自动记录的事件,而不是将其禁用。在这种情况下,请调用 FacebookSDK 类的 setAutoLogAppEventsEnabled() 方法,并在最终用户同意后,将该方法设置为 true,以重新启用事件记录功能。
setAutoLogAppEventsEnabled(true);
如果出于某些原因需再次暂停记录,请将 setAutoLogAppEventsEnabled() 方法设置为 false。
setAutoLogAppEventsEnabled(false);
您也可以通过应用面板禁用应用内购买事件自动记录功能。请前往基本 > 设置中的 Android 图卡,将开关切换为否。
要禁用 SDK 自动初始化功能,请将以下代码添加到 AndroidManifest.xml 文件:
<application>
...
<meta-data android:name="com.facebook.sdk.AutoInitEnabled"
android:value="false"/>
...
</application>在某些情况下(例如要获得用户同意或履行法定义务),您可能想要延迟 SDK 自动初始化功能,而不是将其禁用。在这种情况下,请调用 setAutoInitEnabled 类方法,并在最终用户同意后,将该方法设置为 true,以初始化 SDK。
FacebookSdk.setAutoInitEnabled(true) FacebookSdk.fullyInitialize()
要禁用 advertiser-id 收集功能,请将以下代码添加到 AndroidManifest.xml 文件:
<application>
...
<meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled"
android:value="false"/>
...
</application>在某些情况下(例如要获取用户同意或履行法定义务),您可能想要延迟收集 advertiser_id,而不是将其禁用。这种情况下,请调用 FacebookSDK 类的 setAdvertiserIDCollectionEnabled() 方法,并在最终用户同意后,将该方法设置为 true,以重新启用 advertiser_id 收集功能。
setAdvertiserIDCollectionEnabled(true);
如果出于某些原因需暂停收集,请将 setAdvertiserIDCollectionEnabled() 方法设置为 false。
setAdvertiserIDCollectionEnabled(false);
创建 AppEventsLogger 对象,从而使用辅助方法记录事件。其中 this 是方法所在的 Activity。
AppEventsLogger logger = AppEventsLogger.newLogger(this);
然后,就可以将事件记录至 logger。其中 AppEventConstants.EVENT_NAME_X 是标准事件表中显示的常量之一,或者来自验证码生成器的验证码。
logger.logEvent(AppEventsConstants.EVENT_NAME_X);
此外,您还可以在 Bundle 中指定一系列参数,并指定一个 valueToSum 属性。此属性是一个可以表示任何值(例如:价格或数量)的任意数。报告时,所有 valueToSum 属性会汇总在一起。例如,如果有 10 位用户购买同一件商品,并且商品单价为 $10(通过 valueToSum 传递),则这些购买值就会在报告中汇总为 $100。
Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT, "[{\"id\": \"1234\", \"quantity\": 2}, {\"id\": \"5678\", \"quantity\": 1}]");
logger.logEvent(AppEventsConstants.EVENT_NAME_PURCHASE,
54.23,
params);
Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, "HDFU-8452");
logger.logEvent(AppEventsConstants.EVENT_NAME_ADDED_TO_CART,
54.23,
params);要记录自定义事件,只需以字符串形式传递事件名称即可。此功能假定记录器是 AppEventsLogger 的实例,并且是通过 AppEventsLogger.newLogger() 调用创建。
public void logBattleTheMonsterEvent () {
logger.logEvent("BattleTheMonster");
}每个事件都可以与 valueToSum 和一系列参数(最多 25 个参数)一同记录。参数将通过 Bundle 传递,其中键记录参数名称和值(值类型为 String 或 int)。如果提供不兼容的其他类型的值,例如 boolean,则 SDK 会将警告记录至 LogginBehavior.APP_EVENT。
请参阅标准事件参数参考指南,获取标准事件专用的参数。这些参数旨在提供指引,但是您也可以提供自己的参数。
如果您想使用应用事件来衡量动态广告的转化量,请将 fb_content_id 参数的值设为所关联动态广告中使用的商品编号。
切勿以“event”作为参数名称。系统将不会记录名称为“event”的自定义参数。请使用其他名称或为该名称添加前缀或后缀,例如 my_custom_event。
应用广告帮手可以测试应用内的应用事件,确保应用可以向 Facebook 发送事件。
启用调试记录,以验证客户的应用事件使用情况。调试记录包括详细请求和 JSON 响应。要启用调试记录,请在初始化 Android 版 Facebook SDK 后添加以下代码:
FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
这仅作调试用途。在公开部署应用前,请禁用调试记录。
要获取有关应用事件的更多信息和实用提示,请查看以下资料:
为了让您能够了解如何使用应用事件,我们针对不同类型的应用创建了一些示例。每个示例应用提供了不同事件(包含示例代码)的逐屏细分数据。请务必注意,这些示例是您应用的入门指导,您可以根据情况自行调整。