最佳实践

使用 Data Manager API 时,请牢记以下最佳实践。

发送所有用户标识符

无论是使用 UserData 发送受众群体成员还是事件,都应尽可能多地添加 user_identifiers,包括发送多个相同类型的标识符。

例如,如果您有用户的多个电子邮件地址,请为每个电子邮件地址添加一个单独的 UserIdentifier。同样,如果您有用户的不同类型的标识符(例如邮箱、电话号码和地址),请为每个标识符添加一个单独的 UserIdentifier,最多可添加标识符数量上限。

优化请求

为了降低超出每日请求限制的可能性,请在每个请求中尽可能多地批量处理内容,最多不超过每个请求的限制。

例如,如果您想向某个受众群体添加 10,000 名受众群体成员,请在一个 IngestAudienceMembersRequest 中将所有 10,000 名成员添加到 audience_members 列表中。在单个请求中批量添加所有 10,000 名成员,比单独发送请求来添加每位受众群体成员更高效。

发送并发请求

如需缩短提取数据所需的总时间,请向 IngestionService 发送并发请求。我们建议您同时发送最多 10 个请求,以降低超出每分钟请求数限制的可能性。

即使请求具有相同的 destinations,您也可以发送并发请求。

在客户端验证数据

Data Manager API 使用快速失败模型。如果请求中的任何记录未能通过同步验证,则整个请求都会失败,并且不会处理任何记录。此外,API 会按顺序分层验证请求,因此修复一个错误可能会发现后续验证层中的错误。

为避免重复往返和请求被拒,请在发送数据之前验证并清理数据:

  • 在哈希处理前移除空值:在计算 SHA-256 哈希值之前,请检查 email_address 和 phone_number 等字段是否为空或仅包含空格。对空字符串进行哈希处理会生成一个有效的哈希值,该哈希值可以通过语法检查,但会降低匹配率。

  • 丢弃不完整的复合对象:确保复合对象具有所有必填字段,然后再将其添加到记录中。例如,如果 AddressInfo 对象缺少其四个必填字段(given_name、family_name、region_code 或 postal_code)中的任何一个,请舍弃整个 address 标识符,以避免 REQUIRED_FIELD_MISSING 错误。

  • 验证编码和明文字段:验证经过哈希处理的字段是否与声明的 encoding 匹配,而不是发送原始明文,并确保必须保持明文的字段(例如 mobile_ids)未经过哈希处理。

  • 滤除超出范围的时间戳:确保时间戳不属于未来时间,也不早于目标平台的回溯期。

    如果您使用 JSON 发送请求,请确保时间戳字符串使用 RFC 3339 格式,并带有可用时区偏移量。

  • 清理电话号码:在进行哈希处理之前,请验证电话号码是否包含国家/地区代码并采用 E.164 格式。

  • 删减空记录或过大记录:将 user_identifiers 限制在每条记录的上限(10 个标识符)内,舍弃空的自定义参数,并忽略不包含任何有效标识符的记录。

  • 验证用例要求:确保每个事件都包含其目标平台和用例的所有必填字段(例如,Google Ads 线上转化的 transaction_id)。如需查看按用例划分的必填字段的完整列表,请参阅事件概览中针对您目标的发送事件指南。

  • 使用 validateOnly 测试请求:发送将 validateOnly 设置为 true 的请求,以捕获快速失败错误,而无需提取或移除数据。仅验证请求成功并不保证在异步处理期间不会出现错误,因此在发送常规请求后,请继续检查请求状态和诊断信息。

如需了解详细的规范化和哈希处理规则,请参阅设置用户数据格式。

查看请求状态和诊断信息

从每个 IngestAudienceMembersResponse 或 IngestEventsResponse 中捕获并收集 request_id,然后使用请求 ID 检查请求状态和诊断。

监控配额并发出提醒

为避免请求意外遭到拒绝,请在 Google Cloud 控制台中设置配额提醒和监控。监控配额用量有助于您在应用达到每日或每分钟限制之前,跟踪消耗模式并优化请求批处理。

部署到生产环境

从本地测试迁移到生产工作负载时,请使用应用默认凭证以及关联的服务账号或工作负载身份联合,以非交互方式安全地进行身份验证。

如需详细了解如何为不同的生产环境配置身份验证,请参阅部署到生产环境。