Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amp html amp同意和IAB同意字符串实现详细信息_Amp Html_Amp Ad_Iab - Fatal编程技术网

Amp html amp同意和IAB同意字符串实现详细信息

Amp html amp同意和IAB同意字符串实现详细信息,amp-html,amp-ad,iab,Amp Html,Amp Ad,Iab,我们已经根据IAB TCFv2完成了CMP的开发,并且正在努力将其与AMP集成,因为AMP同意不能使同意字符串可用于CMP提示符和ads 发布者代码: <amp-consent id="myUserConsent" layout="nodisplay"> <script type="application/json">{ "consentInstanceId": "consent-id", "consentRequired": true, "pro

我们已经根据IAB TCFv2完成了CMP的开发,并且正在努力将其与AMP集成,因为AMP同意不能使同意字符串可用于CMP提示符和ads

发布者代码:

<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>
根据,当用户想要进行更改时,amp ad和CMP提示符都可以使用同意字符串:

传递给iframe的客户端信息 创建iframe时,以下信息将通过name属性传递给iframe

但是window.name始终设置为包含iframe名称的普通字符串,即amp_iframe0,没有类似JSON的数据。我还尝试了window.context,它总是未定义的

第二个挑战是,如何确保同意字符串在amp ad和其他组件中可用?我尝试了一个放大器iframe,但是同意字符串不存在


网络上的所有文章、讨论和文档都有点混乱/过时/不一致,如果有人能给我指出正确的方向,我真的很感激。

不知道这是否仍然是开放的,但on-AMP-ad将在ampproject.net上托管一个iframe

正如您在这里看到的,AMP使用“name”内部的JSON提要来传输AMP ad标记的数据:

一旦属性“同意时的数据块”和cmp中存在amp ad,则此iframe的window.context将具有tcf字符串的属性“InitialApproverValue”

但我想向您指出github上的这个问题:

在这种情况下,您应该能够像在常规网络中一样,提供一个_tcfapilotator框架,希望作为消费者,我希望这样使用它,因为这将是IAB指定的方式

window.parent.postMessage({
        type: 'consent-response',
        info: "the consent string",
        action: 'accept'
    }, '*');