本指南介绍如何集成 Facebook SDK,然后记录应用事件,从而为新旧应用添加这些事件。
系统会在应用内使用以下 3 种方式追踪事件:
使用 Facebook SDK 时,如果未禁用事件自动记录功能,系统会为 Facebook 自动记录和收集应用中的特定事件。这些事件与所有用途相关,例如定位、成效衡量和优化。应用事件自动记录功能收集的事件包括三个主要事件:应用安装、应用启动和购买。启用自动记录功能时,广告主可禁用这些事件,以及登录展示事件等其他 Facebook 内部事件。但是,如果禁用了自动记录功能,但仍希望记录特定事件(例如安装或购买事件),则可以在应用中手动记录这些事件。
事件 | 详情 |
---|---|
安装应用 | 新用户首次激活应用或首次在特定设备上启动应用时。 |
启动应用 | 用户启动应用后,Facebook SDK 便会初始化,系统也会记录该事件。但是,如果在首次启动后 60 秒内发生第二次应用启动事件,则系统不会记录第二次应用启动事件。 对于 Android 版 Facebook SDK v4.18 及更早版本,SDK 初始化是一个手动程序,而且与下文所述的手动事件记录程序不同。请更新至最新 SDK 版本,或滚动至旧版 SDK 初始化部分,以手动添加事件。 |
应用内购买 | 完成由 Google Play 处理的购物时。如果使用其他支付平台,请手动添加购买事件代码。 系统会自动为已安装或升级至 v4.39 的应用启用应用内购买记录。对于运行较早版本的应用,请在应用面板的基本 > 设置 Android 卡片中启用应用内购买事件,或手动添加购买事件代码。 Android 版 SDK 目前支持 Google Play Billing 库 v2 和 v3。对于 Google Play Billing 库 v4,您必须手动记录应用内购买事件。 |
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。
请注意,valueToSum
和 parameters
均为可选参数。
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
。
请参阅标准事件参数参考指南,获取标准事件专用的参数。这些参数旨在提供指引,但是您也可以提供自己的参数。您的应用应该记录您希望在成效分析的细分数据中看到的参数。
切勿以“event”作为参数名称。系统将不会记录名称为“event”的自定义参数。请使用其他名称或为该名称添加前缀或后缀,例如 my_custom_event
。
应用广告帮手可以测试应用内的应用事件,确保应用可以向 Facebook 发送事件。
启用调试记录,以验证客户的应用事件使用情况。调试记录包括详细请求和 JSON 响应。要启用调试记录,请在初始化 Android 版 Facebook SDK 后添加以下代码:
FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
这仅作调试用途。在公开部署应用前,请禁用调试记录。
要获取有关应用事件的更多信息和实用提示,请查看以下资料:
为了让您能够了解如何使用应用事件,我们针对不同类型的应用创建了一些示例。每个示例应用提供了不同事件(包含示例代码)的逐屏细分数据。请务必注意,这些示例是您应用的入门指导,您可以根据情况自行调整。