AppsFlyer

AppsFlyer 是领先的移动归因和营销分析平台。它作为一项第三方服务,负责收集和整理来自营销活动的数据,帮助企业在一个平台上全面了解各活动的表现。

Adapty 提供完整的数据集,让您可以在一处跟踪来自各应用商店的订阅事件。借助 Adapty,您可以轻松了解订阅者的行为,掌握他们的喜好,并将这些信息用于精准、有效的用户沟通。因此,此集成支持您在 AppsFlyer 中跟踪订阅事件,精确分析各营销活动所产生的收益。

Adapty 与 AppsFlyer 之间的集成通过以下两种主要方式运作。

  1. 从 AppsFlyer 接收归因数据
    您的应用代码中完成将 AppsFlyer 归因数据发送至 Adapty 的配置后,Adapty 即可开始从 AppsFlyer 接收归因数据。您可以在用户画像页面轻松查看这些数据。
c2991f6-CleanShot_2023-08-04_at_16.29.202x.webp
  1. 向 AppsFlyer 发送订阅事件
    Adapty 可以将您在集成中配置的所有订阅事件发送到 AppsFlyer。这样,您就可以在 AppsFlyer 看板中跟踪这些事件。此集成有助于评估广告活动的效果。

配置设置

将 Adapty 连接到 AppsFlyer

要设置与 AppsFlyer 的集成:

  1. 在 Adapty 看板中打开 Integrations -> AppsFlyer

  2. 打开开关以启用集成。

  3. 接下来需要填写凭据。
    对于 iOS,请在 App Store Connect 中找到并复制 Apple ID(操作方法:在 App Store Connect 中打开您的应用页面,进入 General 部分的 App Information 页面,在屏幕左下方找到 Apple ID)。

43a5cc6-apple_id.webp

3.2. 将复制的 Apple ID 粘贴到 Adapty 看板的 iOS App ID 字段中。

61bff5a-appsflyer_iOS_app_id.webp

如果您使用的是 AppsFlyer API 2,需要切换到 API 3,因为旧版本即将被 AppsFlyer 弃用。请在 AppsFlyer S2S API 列表中选择 API 3

  1. 对于 iOS 和 Android,请打开 AppsFlyer 网站并登录。

  2. 点击看板右上角的您的账户名 -> Security Center

1c18c50-appsflyer_security_center.webp
  1. Manage your account security 窗口中,点击 Manage your AppsFlyer API and S2S tokens 按钮。

  2. 如果您已有 S2S token,请跳至第 12 步。如果没有,请点击 New token 按钮。

7934920-appsflyer_new_token.webp
  1. New token 窗口中,输入 token 的名称。此名称仅供您参考。

  2. Choose type 列表中选择 S2S

  3. 点击 Create new token 按钮保存新 token。

  4. Tokens 窗口中,复制 S2S token。

  5. 在 Adapty 看板中,将复制的 S2S key 粘贴到 Dev key for iOSDev key for Android 字段中。

a7d1c31-appsflyer_dev_keys.webp
  1. 点击 Save 按钮保存更改。

    AppsFlyer 的服务器到服务器集成不支持沙盒模式。因此,您需要在 AppsFlyer 中为沙盒 Dev Key 使用不同的应用/账户。如果您希望将沙盒事件发送到同一个应用,只需对生产环境和沙盒环境使用相同的 key 即可。

Adapty 默认将部分事件映射到 AppsFlyer 标准事件。通过这种配置,AppsFlyer 无需额外设置即可将事件转发至您使用的各广告网络。

另外需要注意的是,AppsFlyer 不支持 26 小时以前的事件。因此,如果某个事件距今超过 26 小时,Adapty 仍会将其发送到 AppsFlyer,但该事件的日期和时间将被替换为当前时间戳。

配置事件和标签

在凭据下方,有三组事件可供您从 Adapty 发送到 AppsFlyer。只需开启您需要的事件即可。在此处查看 Adapty 提供的完整事件列表。

1b0c777-CleanShot_2023-08-11_at_14.56.362x.webp

我们建议使用 Adapty 提供的默认事件名称,但您也可以根据需要修改事件名称。

Adapty 将通过服务器到服务器集成向 AppsFlyer 发送订阅事件,使您可以在 AppsFlyer 看板中查看所有订阅事件,并将其与您的广告获客活动关联。

将您的应用连接到 AppsFlyer

完成上述步骤后,调用 updateAttribution 方法保存归因数据,并使用 Adapty.setIntegrationIdentifier() 设置集成标识符。

networkUserId 参数为必填项。

事件结构

Adapty 通过 POST 请求以 JSON 格式向以下地址发送所选事件:

  • API v2:https://api2.appsflyer.com/inappevent/{app_id}
  • API v3:https://api3.appsflyer.com/inappevent/{app_id}(推荐)

每个事件的结构如下:

{
  "appsflyer_id": "1699887556000-6192770",
  "eventName": "subscription_renewed",
  "eventTime": "2024-03-01 12:00:00",
  "eventValue": "{\"af_content_id\":\"yearly.premium.6999\",\"af_order_id\":\"GPA.3383-4699-1373-07113\",\"store_country\":\"US\",\"profile_country\":\"US\",\"af_content_type\":\"in_app\",\"af_revenue\":\"9.9900\",\"af_currency\":\"USD\",\"af_quantity\":\"1\"}",
  "os": "17.0.1",
  "bundleIdentifier": "com.example.app",
  "customer_user_id": "user_12345",
  "eventCurrency": "USD",
  "ip": "192.168.100.1",
  "advertising_id": "00000000-0000-0000-0000-000000000000",
  "idfa": "00000000-0000-0000-0000-000000000000",
  "idfv": "00000000-0000-0000-0000-000000000000",
  "att": "3"
}

参数说明:

参数类型描述
appsflyer_idStringAppsFlyer ID(通过 SDK 收集)。
eventNameStringAppsFlyer 事件名称(从 Adapty 事件映射而来)。
eventTimeString事件的日期和时间(UTC,格式为 YYYY-MM-DD HH:MM:SS)。
eventValueString包含事件详情的 JSON 字符串(见下文)。
osString操作系统版本。
bundleIdentifierString应用的 bundle ID / 包名。
customer_user_idString用户的 Customer User ID。
eventCurrencyString货币代码(如 “USD”)。
ipString用户的 IP 地址。
advertising_idString仅限 Android。Google Advertising ID。
idfaString仅限 iOS。广告标识符(ID for Advertisers)。
idfvString仅限 iOS。供应商标识符(ID for Vendors)。
attString仅限 iOS。App 跟踪透明度状态(如 “3” 表示已授权)。

eventValue 参数是一个 JSON 编码字符串,包含以下字段:

参数类型描述
af_content_idString应用商店中的产品 ID。
af_order_idString原始交易 ID。
store_countryString应用商店用户所在国家/地区代码。
profile_countryString基于用户 IP 的国家/地区代码。
af_content_typeString如有收益则始终为 in_app
af_revenueString收益金额,格式化为 4 位小数。
af_currencyString货币代码。
af_quantityString如有收益则始终为 1

故障排查

收益数据差异

如果 Adapty 和 AppsFlyer 之间存在收益数据差异,可能是因为并非所有用户都在使用包含 Adapty SDK 的应用版本。为确保数据一致性,您可以强制用户升级到包含 Adapty SDK 的应用版本。

缺少集成数据

如果事件发送失败,通常是由于缺少集成数据。请确认以下几点以解决此问题:

  • 您的应用已安装 AppsFlyer SDK。
  • 您正在调用 getAppsFlyerUID 方法。

认证失败

如果控制台出现 Failed to authenticate 错误,可能是由于 AppsFlyer 版本与凭据版本不匹配导致的。

请参阅迁移指南,或从此处替换为有效凭据。