AMP Client_ID变量实现报错:缺少必填回退Cookie名称参数
解决AMP CLIENT_ID变量的必填参数错误
这个报错是因为你调用CLIENT_ID函数时,第一个参数(备用Cookie名称)没被正确解析成字符串,导致AMP无法识别它,进而抛出“undefined”的错误。咱们一步步来修正:
1. 修正链接中的CLIENT_ID调用
你当前链接代码里写的是CLIENT_ID(_ga),这里的_ga会被AMP当成一个未定义的变量解析,自然就变成了undefined。正确的做法是把备用Cookie名称用单引号包裹,明确告诉AMP这是一个字符串值:
<a id="get-started" href="https://subdomain.website.com/?client_id=CLIENT_ID('_ga')" data-amp-replace="CLIENT_ID">
2. 优化AMP Analytics中的clientId配置
在amp-analytics的配置里,clientId的写法也需要调整。AMP Analytics的clientId()函数如果要指定备用Cookie,同样需要传入字符串参数;如果只是想获取GA默认的客户端ID,直接用${clientId}也可以(默认会关联你的GA账户客户端ID)。修正后的代码如下:
<amp-analytics type="googleanalytics"> <script type="application/json"> { "vars": { "account": "UA-XXXXXXX-X" }, "extraUrlParams": { "clientId": "${clientId('_ga')}" }, "triggers": { "trackPageview": { "on": "visible", "request": "pageview" } } } </script> </amp-analytics>
验证修正效果
保存修改后刷新页面,控制台的错误应该就会消失了。此时AMP会正确获取GA的客户端ID,当无法获取时会自动 fallback 到_ga Cookie的值,并将其填充到链接的client_id参数中。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

