广告归因接口必须通过腾讯广告平台认证通道调用转化回传API,需配置account_id、user_action_set_id和固定access_token三个凭证,PHP中应存入环境变量;上报时须严格匹配wx_appid与事件类型,关键字段包括event_id、event_time等;请求须用Guzzle发HTTPS POST,校验响应状态码及code字段;数据安全要求隔离日志,禁止明文记录敏感字段。

广告归因接口必须走腾讯广告平台认证通道
微信小程序广告归因不是调用微信开放接口,而是对接腾讯广告平台的转化回传API。核心是拿到account_id、user_action_set_id和固定access_token三个凭证——它们在腾讯广告后台「转化归因 → Web类-微信小程序转化」中配置生成,且2025年后不再动态刷新access_token,必须用后台分配的固定值。
PHP项目里建议将这三个参数存入环境变量(如.env),避免硬编码。调用时直接读取,不参与任何本地token缓存逻辑。
上报下单转化需严格匹配小程序AppID与事件类型
每次回传必须携带wx_appid字段,且值必须与腾讯广告后台填写的小程序AppID完全一致(含大小写)。若不匹配,请求会被静默丢弃,无错误提示。
转化事件类型要与后台创建时一致,例如下单完成对应purchase,注册对应register。不能用通用名称或自定义字符串。
立即学习“PHP免费学习笔记(深入)”;
支持AI生成符合公众号规范的图文,推送至草稿箱;兼容其他技能生成的图文/图片。通过向导扫码授权,支持多账号;无需暴露Secret密钥或配置IP白名单。
关键字段包括:
- event_id:推荐用订单号或用户唯一标识,用于去重和追踪
- event_time:UNIX时间戳,精确到秒,不能早于广告点击时间
- click_id(可选):若前端通过广告SDK获取并透传,需原样上报;否则留空
- custom_data:可加密携带金额、商品ID等业务信息,但长度≤1024字符
PHP实现要用Guzzle发HTTPS POST且校验响应
腾讯广告API仅支持HTTPS,且要求Content-Type: application/json。推荐用Guzzle HTTP客户端(composer require guzzlehttp/guzzle),比file_get_contents更可控、易调试。
示例关键逻辑:
- 构造JSON payload,确保utf8编码,中文不乱码
- 设置超时(建议≤10秒)、重试(最多1次)、Header带Authorization: Bearer {token}
- 检查HTTP状态码是否为200,再解析JSON响应体中的code字段(0=成功,非0需记录日志)
- 失败时不盲目重试,先查error_msg内容,常见如“invalid appid”“rate limit exceeded”
数据安全与日志需隔离处理
归因数据含用户行为痕迹,PHP代码中禁止记录click_id、event_id原始值到常规日志文件,防止敏感信息泄露。
建议做法:
- 单独建表ad_conversions存上报记录,字段含status、response_code、created_at,不含原始payload
- 调试阶段可用dev_log表临时存加密后的payload摘要(如sha256),上线后关闭
- 所有上报请求加唯一request_id,便于在Nginx或Sentry中关联追踪


















