用户个人资料是指用户标识符(例如 BidRequest.user.id 中包含的 Google 用户 ID)与用户相关信息之间的映射关系,您可以使用这些信息来针对根据用户兴趣投放的广告进行出价,或使用用户名单进行再营销。
只有在满足以下所有条件时,您才能使用出价请求中的数据来构建用户个人资料:
- 出价请求允许投放个性化广告。在某些地区,您还必须确认用户已同意使用出价请求中的数据来构建用户个人资料。
- 发布商已授予您权限,允许您使用出价请求数据进行用户分析。
- 用户设备所在的地理区域满足了其他条件。
本指南介绍了如何根据发布商权限和竞价结果来确定出价请求是否符合用于构建用户资料的条件。
确定是否允许个性化广告
检查 non_personalized_ads_reason 字段
非个性化出价请求不符合用户个人资料分析的条件。使用 BidRequest.ext.privacy_treatments.non_personalized_ads_reason 字段确认是否允许投放个性化广告。如果 non_personalized_ads_reason 已填充,则不允许投放个性化广告。
使用 TC 字符串检查 IAB 供应商的同意情况
在适用 GDPR 的地区,IAB 的透明度和用户意见征求框架 (TCF) 用于传达允许哪些数据处理活动。您可以使用 BidRequest.user.consent 字段中的透明度和用户意见征求 (TC) 字符串来确定哪些供应商 ID 已获得用户同意,可以构建用户个人资料。如需详细了解 IAB TCF v2.0 规范中使用的 TC 字符串,请参阅透明度和用户意见征求字符串(采用全球供应商和 CMP 列表格式)。
此外,请参阅买方集成 IAB Europe TCF,详细了解如何在 Authorized Buyers 的背景下与 TCF v2.0 规范集成。
您必须确认用户已针对 TCF 目的 3 向相关供应商授予同意声明,才能使用出价请求中的数据构建用户个人资料。如需详细了解 TCF 用途,请参阅 IAB 的用途参考文档。
确定发布商是否已授予权限
您必须获得发布商的许可,才能使用出价请求中的数据来构建用户资料。只有在发布商允许收集用户数据,且没有发布商限制适用于用途 3 的所需供应商 ID 的情况下,您才能使用出价请求数据构建用户个人资料。
检查发布商是否允许收集用户数据
您可以使用 BidRequest.ext.privacy_treatments.allow_user_data_collection 字段检查发布商是否允许收集用户数据。只有当 allow_user_data_collection 字段设置为 true 时,您才能使用出价请求中的数据进行用户分析。
使用 TC 字符串检查发布商限制
您可以通过解析 BidRequest.user.consent 中的 TC 字符串来检查是否存在适用于所需供应商 ID 的任何发布商限制。查看 TC 字符串的发布商限制部分,确定发布商是否针对必需的供应商 ID 限制了用途 3。如需详细了解发布商限制以及 TC 字符串中包含的其他数据,请参阅 TC 字符串中存储了哪些信息?
遵守该地区的其他条件
其他条件取决于竞价结果,并且需要在指定区域内满足这些条件,相应出价请求中的数据才能用于构建用户个人资料。您可以使用 BidRequest.device.geo 字段查找用户的设备位置信息。如需详细了解如何使用 BidRequest.device.geo 字段确定用户的设备位置信息,请参阅地理位置定位指南。
了解欧洲经济区 (EEA)、英国和瑞士的其他条件
只有在您相应出价参与竞价并赢得展示机会的情况下,才能使用向欧洲经济区 (EEA)、英国和瑞士境内的用户设备投放的展示机会的出价请求中的数据来构建用户个人资料。
了解非欧洲经济区 (EEA)、英国或瑞士地区的其他条件
如果您的相应出价满足以下条件之一,则来自向欧洲经济区 (EEA)、英国和瑞士境外的用户设备投放的展示的出价请求的数据只能用于构建用户个人资料:
- 您的出价参与了竞价并胜出。
- 您的出价已进入竞价流程,但因过低而落败。
- 您的出价已参与竞价,但因低于发布商的每千次展示费用最低阈值(即出价底价)而被滤除。出价请求中并不总是包含底价。
使用实时反馈来确定竞价结果
您可以利用实时反馈,从传入的出价请求中了解之前出价的竞价结果。以下内容介绍了 openrtb-adx.proto 文件中 BidFeedback 消息的相关字段:
| 字段 | 说明 |
|---|---|
request_id
|
用于标识相应出价请求的唯一请求 ID。此字段设置为与相应出价请求的 BidRequest.id 字段相同的值。 |
creative_status_code
|
用于描述竞价结果的状态代码。 您可以在 creative-status-codes.txt 中找到可能的状态代码及其含义 |
使用竞价成功和失败通知来确定竞价结果
当您的竞价成功或失败通知网址收到 ping 时,您可以使用竞价成功和失败通知来了解之前出价的竞价结果。您可以使用 BidResponse.seatbid.bid.nurl 字段设置胜出通知网址,并使用 BidResponse.seatbid.bid.lurl 字段设置落败通知网址。
您可以指定宏作为为查询字符串参数设置的值,以获取有关竞价结果的更多信息。当指定端点被 ping 时,这些占位符将被替换为相应的值。下文介绍了相关宏:
| 宏 | 说明 |
|---|---|
${AUCTION_ID}
|
用于标识相应出价请求的唯一请求 ID。此字段的值与相应出价请求的 BidRequest.id 字段的值相同。 |
${CREATIVE_STATUS_CODE}
|
用于描述竞价结果的状态代码。您可以在 creative-status-codes.txt 中找到可能的状态代码及其含义 |
使用广告素材状态代码来遵守其他条件
与遵守其他条件相关的广告素材状态代码值包括以下各项:
| 广告素材状态代码 | 说明 | 合规性详情 |
|---|---|---|
| 1 | 您的出价赢得了竞价。 | 所有地区均满足条件。 |
| 79 | 您出价过低。 | 非 EEA、英国或瑞士地区的条件已满足。 |
| 80 | 您的出价低于底价。 | 满足非 EEA、英国或瑞士地区的条件。 |
只有在相应的出价响应满足用户设备所在区域的附加条件时,您才能使用出价请求数据构建用户个人资料。
查看示例
以下示例逐步展示了一系列事件,说明了如何确定出价请求是否符合用于构建用户资料的条件。为简洁起见,这些示例中包含的 JSON 出价请求和出价响应对象仅包含确定资格所需的字段。
查找因发布商屏蔽数据收集而出价请求不符合条件的情况
出价端点收到出价请求:
{ "id": "D3x8RPLO96R6T137tQ6168", "device": { "geo": { "country": "GBR" } }, "user": { "id": "D17oNZQUJqB4Rt4n4Ec61AC9tee" } }结论:出价请求不会填充
BidRequest.ext.privacy_treatments.allow_user_data_collection,因为该值为 false。根据此信息,我们可以确定此出价请求不符合用于构建用户配置的条件,因为发布商权限要求未得到满足。
查找来自英国的符合条件的出价请求
以下示例使用胜出通知来确定源自英国境内设备的出价请求中的数据是否可用于供应商 ID 为 755 且 ATP ID 为 99999 的用户分析:
出价端点收到出价请求:
{ "id": "D3x8RPLO96R6T137tQ6168", "imp": [ { "bidfloor": 140.414643547123, "bidfloorcur": "JPY" } ], "device": { "geo": { "country": "GBR" } }, "user": { "consent": "CQhuOAQQhuOAQB7ACBENCOEIALAAAELAAAwIF5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgXmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAA.gF5gAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg", "id": "D17oNZQUJqB4Rt4n4Ec61AC9tee", "ext": { "consented_providers_settings": { "consented_providers": [99999] } } }, "regs": { "ext": { "gdpr": 1 } }, "ext": { "privacy_treatments": { "allow_user_data_collection": 1 } } }您出价:
{ "seatbid": [ { "bid": [ { "price": 149.83914184570312, "lurl": "http://example.com/loss?bid_request_id=${AUCTION_ID}&creative_status_code=${CREATIVE_STATUS_CODE}", "nurl": "http://example.com/win?bid_request_id=${AUCTION_ID}" } ] } ], "cur": "JPY" }您的出价在竞价中胜出,导致您的胜出通知网址被 ping,且
${AUCTION_ID}的值已扩展:http://example.com/win?bid_request_id=D3x8RPLO96R6T137tQ6168结论:您现在知道,供应商 ID
755和 ATP ID99999可以使用 ID 为“D3x8RPLO96R6T137tQ6168”的出价请求在英国为 Google 用户 ID“D17oNZQUJqB4Rt4n4Ec61AC9tee”构建用户个人资料,因为:- 出价请求表明了以下内容:
- 用户设备位于强制执行 IAB TCF 的区域。
- TC 字符串表明:
- 用户允许供应商 ID
755构建用户个人资料,因为用户已同意供应商 ID755的用途 3。 - 没有发布商限制。
- 用户允许供应商 ID
- 由于 ATP ID 包含在
consented_providers字段中,因此 ATP ID99999也被允许构建用户个人资料。 - 发布商允许收集用户数据。
- 出价请求 ID 为“
D3x8RPLO96R6T137tQ6168”。 - Google 用户 ID 为“
D17oNZQUJqB4Rt4n4Ec61AC9tee”。 - 用户设备位于“
GBR”。
- 系统会使用一个查询字符串参数来 ping 您的胜出通知端点,该参数表示 ID 为“
D3x8RPLO96R6T137tQ6168”的出价请求已赢得竞价。 - 用户同意情况、发布商权限和英国的其他条件要求均已满足。
- 出价请求表明了以下内容:
查找因竞价失败而导致不符合条件的英国出价请求
以下示例确定,供应商 ID 755 不符合使用出价请求进行用户分析的条件,因为发布商已针对供应商 ID 755 限制了用途 3。
出价端点收到出价请求:
{ "id": "D3x8RPLO96R6T137tQ6168", "imp": [ { "bidfloor": 140.414643547123, "bidfloorcur": "JPY" } ], "device": { "geo": { "country": "GBR" } }, "user": { "consent": "CQhuOAQQhuOAQB7ACBENCOEIALAAAELAAAwIF5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgXmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAA.gF5gAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg", "id": "D17oNZQUJqB4Rt4n4Ec61AC9tee" }, "regs": { "ext": { "gdpr": 1 } }, "ext": { "privacy_treatments": { "allow_user_data_collection": 1 } } }您出价:
{ "seatbid": [ { "bid": [ { "price": 149.83914184570312, "lurl": "http://example.com/loss?bid_request_id=${AUCTION_ID}&creative_status_code=${CREATIVE_STATUS_CODE}", "nurl": "http://example.com/win?bid_request_id=${AUCTION_ID}" } ] } ], "cur": "JPY" }您的出价在竞价中落败,导致您的落败通知网址被 ping,并带有
${AUCTION_ID}和${CREATIVE_STATUS_CODE}的扩展值:http://example.com/loss?bid_request_id=D3x8RPLO96R6T137tQ6168&creative_status_code=79总结:您现在知道,ID 为“
D3x8RPLO96R6T137tQ6168”的出价请求不符合在英国为 Google 用户 ID“D17oNZQUJqB4Rt4n4Ec61AC9tee”构建用户资料的条件,因为:- 出价请求表明了以下内容:
- 用户设备位于强制执行 IAB TCF 的区域。
- TC 字符串表明:
- 用户允许供应商 ID
755构建用户个人资料,因为用户已同意供应商 ID755的用途 3。 - 没有发布商限制。
- 用户允许供应商 ID
- 发布商允许收集用户数据。
- 出价请求 ID 为“
D3x8RPLO96R6T137tQ6168”。 - Google 用户 ID 为“
D17oNZQUJqB4Rt4n4Ec61AC9tee”。 - 用户设备位于“
GBR”。
- 系统会使用查询字符串参数来 ping 您的出价落败通知端点,这些参数表明 ID 为“
D3x8RPLO96R6T137tQ6168”的出价请求因出价过高而未赢得竞价。 - 未满足英国的额外条件要求。
- 出价请求表明了以下内容:
查找因发布商限制而不符合条件的英国出价请求
以下示例确定,供应商 ID 755 不符合使用出价请求进行用户分析的条件,因为发布商已针对供应商 ID 755 限制了用途 3。
出价端点收到出价请求:
{ "id": "D3x8RPLO96R6T137tQ6168", "imp": [ { "bidfloor": 140.414643547123, "bidfloorcur": "JPY" } ], "device": { "geo": { "country": "GBR" } }, "user": { "consent": "CQhuhyAQhuhyAB7ACBENCOEIALAAAELAAAwIF5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgXmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAGCAAgLzDAAQF5iAAIC8w.gF5gAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg" }, "regs": { "ext": { "gdpr": 1 } }, "ext": { "privacy_treatments": { "allow_user_data_collection": 1 } } }您出价:
{ "seatbid": [ { "bid": [ { "price": 149.83914184570312, "lurl": "http://example.com/loss?bid_request_id=${AUCTION_ID}&creative_status_code=${CREATIVE_STATUS_CODE}", "nurl": "http://example.com/win?bid_request_id=${AUCTION_ID}" } ] } ], "cur": "JPY" }总结:您现在知道,供应商 ID
755不符合使用 ID 为“D3x8RPLO96R6T137tQ6168”的出价请求来构建用户资料的条件,因为:- 出价请求表明了以下内容:
- 用户设备位于强制执行 IAB TCF 的区域。
- TC 字符串表明:
- 用户允许供应商 ID
755构建用户个人资料,因为用户已同意供应商 ID755的用途 3。 - 对于用途 3 定位,发布商限制了供应商 ID
755。
- 用户允许供应商 ID
- 发布商允许收集用户数据。
- 出价请求 ID 为“
D3x8RPLO96R6T137tQ6168”。 - Google 用户 ID 为“
D17oNZQUJqB4Rt4n4Ec61AC9tee”。 - 用户设备位于“
GBR”。
- 未满足发布商权限要求。
- 出价请求表明了以下内容:
查找符合条件的非 EEA 出价请求
以下示例使用实时反馈来确定来自非欧洲经济区 (EEA) 区域的出价请求是否符合条件,即使该出价请求因出价进入竞价而被过滤,也符合条件。
出价端点收到出价请求:
{ "id": "D3x8RPLO96R6T137tQ6168", "imp": [ { "bidfloor": 140.414643547123, "bidfloorcur": "JPY" } ], "device": { "geo": { "country": "JPN" } }, "user": { "id": "D17oNZQUJqB4Rt4n4Ec61AC9tee" }, "ext": { "privacy_treatments": { "allow_user_data_collection": 1 } } }您出价:
{ "seatbid": [ { "bid": [ { "price": 120.846348234842 } ] } ], "cur": "JPY" }您的出价在竞价中未能胜出。在未来的出价请求中,您的出价端点会收到包含实时反馈的出价请求:
{ "id": "9B5K1zj5T61jRM80t25s13", "ext": { "bid_feedback": [ { "request_id": "3265hT3M9Uq7370Ou263Zp", "creative_status_code": 1 }, { "request_id": "D3x8RPLO96R6T137tQ6168", "creative_status_code": 80 } ] } }结论:您现在知道,ID 为“
D3x8RPLO96R6T137tQ6168”的出价请求之所以符合在日本为 Google 用户 ID“D17oNZQUJqB4Rt4n4Ec61AC9tee”构建用户资料的条件,是因为:- 出价请求表明了以下内容:
- 用户设备位于不强制执行 IAB TCF 的区域。
- 发布商允许收集用户数据。
- 出价请求 ID 为“
D3x8RPLO96R6T137tQ6168”。 - Google 用户 ID 为“
D17oNZQUJqB4Rt4n4Ec61AC9tee”。 - 用户设备位于“
JPN”。
- 您收到了出价请求反馈,其中指出 ID 为“
D3x8RPLO96R6T137tQ6168”的出价请求因您的出价低于出价底价而未能赢得竞价。对于日本等非 EEA 国家/地区,进入竞价并因上述原因被过滤符合其他条件。 - 已满足日本的发布方权限和附加条件要求。
- 出价请求表明了以下内容:
查找不符合条件的非 EEA 出价请求
以下示例使用实时反馈来确定来自非欧洲经济区 (EEA) 区域的出价请求不符合条件,因为该请求在竞价之前已被过滤。
出价端点收到出价请求:
{ "id": "D3x8RPLO96R6T137tQ6168", "imp": [ { "bidfloor": 140.414643547123, "bidfloorcur": "JPY" } ], "device": { "geo": { "country": "JPN" } }, "user": { "id": "D17oNZQUJqB4Rt4n4Ec61AC9tee" }, "ext": { "privacy_treatments": { "allow_user_data_collection": 1 } } }您出价:
{ "seatbid": [ { "bid": [ { "price": 149.83914184570312 } ] } ], "cur": "JPY" }您的出价在竞价中未能胜出。在未来的出价请求中,您的出价端点会收到包含实时反馈的出价请求:
{ "id": "9B5K1zj5T61jRM80t25s13", "ext": { "bid_feedback": [ { "request_id": "3265hT3M9Uq7370Ou263Zp", "creative_status_code": 1 }, { "request_id": "D3x8RPLO96R6T137tQ6168", "creative_status_code": 10 } ] } }结论:您现在知道,ID 为“
D3x8RPLO96R6T137tQ6168”的出价请求之所以不符合在日本为 Google 用户 ID“D17oNZQUJqB4Rt4n4Ec61AC9tee”构建用户资料的条件,是因为:- 出价请求表明了以下内容:
- 用户设备位于不强制执行 IAB TCF 的区域。
- 发布商允许收集用户数据。
- 出价请求 ID 为“
D3x8RPLO96R6T137tQ6168”。 - Google 用户 ID 为“
D17oNZQUJqB4Rt4n4Ec61AC9tee”。 - 用户设备位于“
JPN”。
- 您收到了出价请求反馈,其中指出 ID 为“
D3x8RPLO96R6T137tQ6168”的出价请求因您的出价使用了被拒登的广告素材而未进入竞价。 - 未满足非 EEA 国家/地区(例如日本)的附加条件要求。
- 出价请求表明了以下内容:
后续步骤
- RTB API UserLists 资源参考:实时出价 API 的 userLists 资源参考,用于创建和修改再营销所用的用户列表。
- Cookie 匹配:用于再营销的 Cookie 匹配服务和其他相关服务的参考文档。
- 将广告 ID 上传到用户列表:用于将标识符上传到用户列表的 Bulk Uploader API 的参考文档。