会员上传返回200和空对象,不能算“会员匹配成功”,也不能判断邮箱不存在。先核会员计划与等级顺序,再按实际返回区分已存储、空回应和明确错误;空回应不要盲目重试。
这个接口刻意不公开某些身份判断。请求正常接收,不等于告诉你“这个人存在且已同意”。因此,把所有200计成成功匹配人数,会让业务报告高估真正完成的数据存储。
200为什么可能没有会员记录
Merchant API的会员匹配指南说明,用户标识未匹配到Google账户,或用户未同意相关数据使用时,会返回200与空JSON对象。这样可以避免调用者通过响应探测账户和同意状态。
成功移除已有会员关联,也可能返回空对象。所以要先看这次是在新增、更新还是移除,再解读返回;不能把所有空对象都归为同一种故障。
该服务也不提供GET或LIST来逐个读回用户。因此,运营无法拿空回应回答“这个邮箱到底有没有Google账户”。维护者应遵守接口设计,不换几个标识反复试探。
Basic与Plus,先看后台的排列顺序
假设教学店铺当前会员计划先列Basic,再列Plus。接口的TIER1对应第一档,TIER2对应第二档,按后台顺序映射,不按自定义名称来猜。
| 这次要做的事 | 教学配置的值 |
|---|---|
| 关联Basic | TIER1 |
| 关联Plus | TIER2 |
| 移除会员关联 | NON_MEMBER |
如果后台顺序改了,接口端也要重新核对。不能因为Plus听起来是高级会员,就永远认定它是TIER2。Google当前支持的等级枚举范围及映射,仍以官方指南为准。
本文中的名字是教学配置。实际接入时,保存自己Merchant Center当前的等级顺序,由会员运营和接口维护者共同确认。
前置条件不齐,先补条件
接口使用者应有Merchant Center账号或相应授权,账号已启用会员计划并配置等级,还要提供符合格式的用户标识。使用这项自然搜索个性化服务不要求另建Google Ads账号,但这不代表任何账户和市场都能直接使用全部会员展示功能。
先查会员计划当前的可用条件,包括目标市场与具体展示限制,再判断是否适合自己的店铺。不要把一串国家列表当成所有设备、所有用户都能看到会员价的承诺。
维护者核账号权限、等级与标识格式,运营确认真实会员关系和数据使用安排。400、401、403等明确错误按各自原因处理;格式过关仍可能没有匹配或同意,不能用“提交数据格式正确”来代替用户条件。

成功率记录,要说明数的是什么
新增或更新在满足匹配与同意等条件后,返回中的loyaltyCustomer表示资料已处理并存储;200加空对象则没有提供同等的存储证据。至少把以下结果分开:
- 请求发出多少次;
- 新增或更新返回会员对象多少次;
- 哪些操作返回空对象;
- 哪些返回明确错误。
假设教学批次发出100次新增请求,其中80次返回会员对象、20次为空。可以报告100次请求及两种响应分布,不能把100写成“成功匹配100人”,也不能把20写成“20个邮箱不存在”。
对空回应,官方建议不要重试。对明确错误,先修对应的账号、格式、计划或额度问题。日志也应避免公开用户标识,不拿真人身份做探测测试。
资料存储与搜索展示还隔着另一个阶段。即便返回会员对象,也不能保证每次搜索都展示会员价;公开展示可另作符合条件的观察,别把一次没显示反推成接口失败。
需要讨论接入方案,可向跨境YOUNG提供脱敏后的等级顺序、操作类型和响应类型,从业务定义与程序处理一起核对。

常见问题
200加空对象是不是报错?
不一定。它可能是保护隐私的空成功,也可能来自移除操作;不能只靠状态码判定新增已存储。
可以用GET查是否匹配成功吗?
该服务不提供GET或LIST。按官方响应含义记录,不能靠反复上传探测账户或用户同意状态。
返回会员对象,搜索一定显示会员价吗?
不保证。它提供存储处理的证据;实际展示仍受计划、市场、用户条件和Google展示判断影响。