我们已经根据 IAB TCFv2 完成了 CMP 的开发,并且正在努力将其与 AMP 集成,因为 amp-consent 不会使同意字符串可用于 CMP 提示和广告。
发布者代码:
<amp-consent id="myUserConsent" layout="nodisplay">
<script type="application/json">{
"consentInstanceId": "consent-id",
"consentRequired": true,
"promptUI": "consentDialog",
"postPromptUI": "post-consent-ui",
"checkConsentHref": "https://open-cmp.local:5003/consent/check",
"onUpdateHref": "https://open-cmp.local:5003/consent/update"
}</script>
<div class="popupOverlay" id="consentDialog">
<amp-iframe layout="fill" src="https://open-cmp.local:5003/demo/amp/cmp-frame.html"
sandbox="allow-scripts allow-same-origin">
<div placeholder>Loading</div>
</amp-iframe>
</div>
<div id="post-consent-ui">
<button on="tap:myUserConsent.prompt()">Update Consent</button>
</div>
Iframe 正在根据用户的设置发回同意字符串:
window.parent.postMessage({
type: 'consent-response',
info: "the consent string",
action: 'accept'
}, '*');
根据AMP 文档,当用户想要进行更改时,同意字符串可用于 amp-ad 和 CMP 提示:
传递给 iframe 的客户端信息 当创建 iframe 时,会通过 name 属性将以下信息传递给 iframe。
但window.name始终设置为包含 iframe 名称的纯字符串,即amp_iframe0,没有类似 JSON 的数据。我也尝试了window.context,它总是undefined。
第二个挑战是,如何确保同意字符串在 amp-ad 和其他组件中可用?我尝试了 amp-iframe,但没有同意字符串。
网络上的所有文章、讨论和文档都有点令人困惑/过时/不一致,如果有人能指出我正确的方向,我真的很感激。