我们能为您提供什么帮助?

设置收据验证

  • 更新

概要:了解如何通过收据验证对应用内购买和订阅收入进行衡量,并与应用商店校验,从而确保收入衡量的准确性。

概览

 注意

有关收据验证的更多信息,包括其工作原理以及如何在 AppsFlyer 中启用它,请参见 关于收据验证。

要设置收据验证,请按顺序完成以下步骤:

  1. 设置商店凭据(iOS 和 Android)
    • iOS在 AppsFlyer 中配置 App Store Connect 密钥(应用内购买密钥、密钥 ID 和发行者 ID)以启用收据验证。
    • 安卓配置 Google Cloud 服务帐户,在 Google Play 控制台中设置所需权限,并将服务帐户 JSON 密钥上传到 AppsFlyer。
  2. 实现 validateAndLog SDK API:准备开发人员集成 AppsFlyer validateAndLog SDK API,并配置沙盒环境以进行测试。
  3. 测试 validateAndLog SDK API 实现:在 iOS 和 Android 上执行沙盒测试购买和订阅,以验证收据验证事件是否生成并被 AppsFlyer 正确记录。
  4. 验证并更新设置:确认产品类型设置为收据验证,并检查商店密钥和 SDK 集成状态,以确保准确、持续的收入测量。
  5. 发布带有 validateAndLog SDK API 的应用版本:发布集成了 validateAndLog SDK API 的更新应用版本,确保沙盒标志已禁用,并且所需的应用内事件未被验证规则阻止。

步骤 1(iOS)设置 App Store Connect 密钥

在步骤1中,从App Store Connect获取以下凭据,并填写在AppsFlyer后台的收入设置页面中:

  • In-App Purchase key
  • Key ID
  • Issuer ID

前期准备 :

  • 设置证书时,您需要在App Store Connect和AppsFlyer中分别完成相关步骤。请在操作过程中同时打开App Store Connect和AppsFlyer两个标签页。
  • 您的iOS应用需要使用StoreKit v1或v2,StoreKit可提供处理应用内购买与订阅的基础框架。

1.1 生成App Store Connect密钥

要设置iOS凭据, 请按照以下步骤操作:

  1. 在App Store Connect中,进入用户和访问权限页面

  2. 前往用户和访问权限> 对接,在密钥列表中,选择应用内购买。

  3. 点击+生成一个新的应用内购买密钥。

  4. 输入您的API密钥名称。
  5. 点击生成。
  6. 在生成的密钥旁边,点击下载应用内购买密钥。 注意:该密钥只能下载一次,请妥善保存。
  7. 在App Store Connect中,复制生成的密钥的Key ID,并将其粘贴到AppsFlyer购买和订阅设置中的Key ID字段里。

  8. 复制发行者 ID。 注意: 如果页面顶部未显示Issuer ID,请创建一个App Store Connect API私钥(具有任意权限级别)。之后,Issuer ID将出现在应用内购买私钥的页面顶部。

1.2 设置 App Store Connect 密钥

  1. 启用收据验证。#enable-receipt-validation
  2. 在 App Store Connect 密钥 步骤下,点击 上传 在 应用内购买密钥 字段中上传 p8 文件。
  3. 在名为App Store Connect密钥的部分,粘贴您从App Store Connect复制的值。

    • Key ID
    • Issuer ID
  4. 点击验证密钥,确保密钥输入正确。 请注意:如果您的应用尚未在App Store中发布,验证密钥可能无法正常工作。
  5. 单击保存并继续。

步骤 2(Android):设置服务账户密钥和权限

在步骤 1 中,从 Google Play 和 Google Cloud 获取以下凭据,并在 AppsFlyer 平台的 收入设置 页面中输入它们。

前期准备 :

  • 设置应用内购买和订阅收入衡量时,您需要在Google Cloud Platform、Google Play Console以及AppsFlyer界面中分别完成相关操作。建议您在设置过程中同时打开以上三个标签页。
  • 在AppsFlyer后台进行设置需具备管理员权限。

1.1 将您的Google Play开发者账号关联到您的Google Cloud项目

前提条件:Google Play Console和Google Cloud访问权限。

请按照以下步骤将您的Google Play开发者账号关联到您的Google Cloud项目:

  1. 从Google Play Console进入您的Google Play开发者账号。
  2. 将该账号关联到您的Google Cloud项目。详细指南请参考Google提供的说明文档。
  3. 启用Google Play Developer API。详细指南请参考Google提供的说明文档。

在Google Cloud Platform中配置您的服务账户

前提条件:访问Google Cloud Platform。

要配置您的服务帐户,请按照以下步骤操作:

  1. 创建或找到服务账号:

    1. 在Google Cloud Platform中,前往Service accounts(服务账号)部分,点击“Create Service Account(创建服务账号)”。
    2. 填写服务账号的详细信息。
    3. 复制电子邮件地址。
    4. 点击Create and continue(创建并继续),进入下一步。
    5. 在Grant this service account access to the project(为该服务账号开放项目权限)部分的“Select a role”(选择角色)字段中,选择Pub/Sub subscriber。
    6. 点击Continue > Done,完成服务账号的创建。

  2. 下载服务账号私钥:

    1. 在Google Cloud Platform中,进入Service accounts(服务账号)部分,从列表中找到你刚创建的服务账号,点击“更多操作”图标。
    2. 点击“管理私钥(Manage keys)”。
    3. 点击 添加私钥 > 创建新私钥。

    4. 在创建私钥窗口中,
    5. 在私钥类型下,选择JSON,

      然后单击创建。点击Create,下载JSON格式的密钥文件。
    6. 保存 JSON 密钥文件,稍后您将上传到 AppsFlyer。 请注意:请务必保存密钥,关闭窗口后将无法再次获取。如果您不保存它,您必须创建一个全新的密钥。

在Google Play Console中设置API访问权限。

前提条件:Google Play Console访问权限。

请注意:服务账号的证书和权限设置完毕后,可能需要等待一段时间(最长可达24小时),然后才能正常使用。在此期间你可能会在后续步骤中遇到报错。

在Google Play Console中设置API访问权限的操作如下:

  1. 在Google Play Console中,进入Users and permissions(用户和权限),找到您创建的服务账号并点击Invite new users(邀请新用户)。

  2. 在Email address(邮箱地址)字段中,填写您在第1.2.1.3步创建服务账号时复制的邮箱地址。

  3. 在Permissions(权限)部分,进入Account permissions(账号权限)选项卡,然后同时勾选以下两项:

    • View financial data, orders, and cancellation survey responses(查看财务数据、订单和取消订阅问卷答复)
    • Manage orders and subscriptions(管理订单和订阅)
  4. 在App permissions(应用权限)标签页中,点击Add app(添加应用),然后选择应用。如有需要可添加多个应用。

  5. 点击Invite user(邀请用户)。

  6. 在确认弹出窗口中,点击Send invite(发送邀请)。

将服务账户私钥上传到AppsFlyer。

上传并验证您在步骤 1.2中下载的 Google JSON 密钥。

前提条件:具备AppsFlyer管理员权限。

要将账户私钥上传到 AppsFlyer,请按照以下步骤操作:

  1. 启用收据验证
  2. 在服务账户密钥和权限步骤中,在上传Google JSON密钥字段中,点击上传。
  3. 上传您在步骤 1.2中下载的JSON文件。
  4. 点击验证密钥。 请注意:

    • 设置服务账号凭据和权限后,最多可能需要 24 小时才能生效。在此期间进行密钥验证或验证测试时可能会出现错误。
    • 如需绕过最长 24 小时的等待时间,可在Google Play Console中打开任意应用,进入Monetize > Products > Subscriptions/In-app products,并对某项内容进行修改(如编辑商品描述并保存)。这通常会立即更新账户凭据和权限。修改完成后可撤销操作。
  5. 点击Next。SDK实现步骤已打开。

第2步:2.实施SDK V6

在此步骤中,您准备开发人员集成SDK validateAndLog API,并设置一个用于测试的沙盒环境。支持最新validateAndLog API的最低SDK版本为Android的6.17.5和iOS的6.17.8。

要实现validateAndLog SDK API,请按照以下步骤操作:

  1. 在SDK实现步骤中,复制仪表板中显示的预写消息。
  2. 将其发送给您的开发人员。它包括:

    • 应用名称和App ID
    • SDK对接指南链接。
    • 沙盒环境配置说明 (sandbox = true)
    • 测试步骤(使用TestFlight)

    此处包含了开发人员进行对接和测试所需的全部信息。

  3. 点击Next。验证SDK实现步骤已打开。

第3步:验证SDK实现

建议在沙盒环境中测试IAP和订阅收入对接,确保SDK connector已正确接入到相关应用中,且服务器通知的配置正确无误,AppsFlyer可正常收到通知。

测试SDK实现

要检查AppsFlyer在过去7天内是否收到了来自您应用程序的有效validateAndLog有效载荷,请执行以下步骤:

  1. 在验证SDK实现步骤中,点击测试SDK实现。
  2. 查看结果,包括AppsFlyer收到的最新有效载荷的时间戳。请注意,此检查仅确认请求已到达AppsFlyer,并不验证数据的完整性或正确性。
  3. 要完全验证实现,请继续进行以下测试步骤。

沙盒环境的注意事项

在沙盒环境中:

  • 只有初始购买事件会导致validateAndLog SDK API生成一个由AppsFlyer记录的事件。应用内购买事件称为af_purchase_sandbox_sdk。订阅事件称为af_ars_sandbox_sdk.。
  • 沙盒事件的收入为0。
  • 对于安卓应用,由已获许可的测试人员(Licensed Tester)开展的测试总是会触发沙盒事件,无论SDK中是否配置了沙盒环境。

测试应用内购买(IAP)和订阅收入数据

测试应用内购买和订阅收入:

  1. 告诉您的开发人员按照他们的说明配置validateAndLog SDK API的沙盒环境。
  2. 使用Google Play的License Tester或iOS的TestFlight进行测试购买或订阅启动操作。 
  3. 查看测试事件以以下方式显示:

  4. 查找以下测试事件:

    • 购买事件的 af_purchase_sandbox_sdk。
    • 订阅事件的 af_ars_sandbox_sdk。
  5. 确保测试事件包括以下内容:

    • 收入值为0(避免AppsFlyer的实际报告数据受到扭曲)。
    • 一个 af_sandbox_revenue 参数,包含所购产品的收入值,确保报告的收入正确。
    • 一个 af_validated 参数是 true。如果 af_validated 是 false - 返回到上面的第 2 步并验证从商店提供的密钥。
    • 一个 af_validation_type 参数是 receipt_validation。

第4步:验证并更新设置。

完成上述设置配置并保存后,您将被重定向到活动配置视图,在此您可以验证或更新以下设置:

  1. 验证 产品类型 是否为 收据验证。
  2. 确保 与 App Store 验证购买 已开启。
  3. 验证或更新以下设置:

    • App Store 密钥 设置。
    • SDK 集成 设置。

第5步:发布带有 validateAndLog SDK API 的应用版本。

在前面的步骤都配置完毕并将 AppsFlyer validateAndLog SDK API 集成到您的应用后,告诉您的开发人员发布集成了 validateAndLog SDK API 的应用版本。

在开发人员发布新应用版本之前,请确保:

  • 您在AppsFlyer中配置的验证规则不会拦截您想要记录的IAP或订阅事件。
  • 您的开发人员已将所有沙盒标志设置为false。

一旦包含validateAndLog SDK API的应用程序发布,应用内购买和订阅事件将生成并在所有AppsFlyer仪表板上可用,同时也会出现在汇总和原始数据报告中。

仅为已更新到包含validateAndLog SDK API版本的用户生成事件。因此,在新版应用全面覆盖前,应用中的收入数据与商店端数据之间可能会存在差异。