应用事件入门指南(Android 版)

本指南介绍如何集成 Facebook SDK,然后记录应用事件,从而为新旧应用添加这些事件。

添加应用事件

您集成 Facebook SDK 之后,如果未禁用应用事件自动记录功能,系统将为事件管理工具自动记录和收集特定的应用事件。如要关闭自动记录或收集功能,可在应用代码中作出相应更改或在应用面板(或事件管理工具)中的“应用事件”下切换相应开关。请注意,如果 AutoLogAppEventsEnabled 标记的值与开关值发生冲突,我们将以“为 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 自动初始化功能

要禁用 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。

请注意valueToSumparameters 均为可选参数。

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 传递,其中键记录参数名称和值(值类型为 Stringint)。如果提供不兼容的其他类型的值,例如 boolean,则 SDK 会将警告记录至 LogginBehavior.APP_EVENT

请参阅标准事件参数参考指南,获取标准事件专用的参数。这些参数旨在提供指引,但是您也可以提供自己的参数。您的应用应该记录您希望在成效分析的细分数据中看到的参数。

切勿以“event”作为参数名称。系统将不会记录名称为“event”的自定义参数。请使用其他名称或为该名称添加前缀或后缀,例如 my_custom_event

测试事件记录功能

应用广告帮手可以测试应用内的应用事件,确保应用可以向 Facebook 发送事件。

  1. 打开应用广告帮手
  2. 选择应用部分选择您的应用,然后选择提交
  3. 前往底部,并选择测试应用事件
  4. 启动应用,并发送事件。事件将显示到网页上。

启用调试记录

启用调试记录,以验证客户的应用事件使用情况。调试记录包括详细请求和 JSON 响应。要启用调试记录,请在初始化 Android 版 Facebook SDK 后添加以下代码:

FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);

这仅作调试用途。在公开部署应用前,请禁用调试记录。

详细了解

要获取有关应用事件的更多信息和实用提示,请查看以下资料:

应用示例

为了让您能够了解如何使用应用事件,我们针对不同类型的应用创建了一些示例。每个示例应用提供了不同事件(包含示例代码)的逐屏细分数据。请务必注意,这些示例是您应用的入门指导,您可以根据情况自行调整。