亚马逊联属网络营销搜索广告脚本:未捕获类型错误:无法读取 null 属性“getBoundingClientRect”

2024-05-23

我在我的网站上嵌入了亚马逊联属原生搜索广告。当我在我的开发笔记本电脑上进行测试时,“搜索广告”显示没有任何问题。但是,当部署到托管提供商时,遇到运行时错误并且亚马逊搜索广告未显示。请在这里帮忙。

Error:

   Uncaught TypeError: Cannot read property 'getBoundingClientRect' of null
        at Object.v.getAAXUrl (onejs?MarketPlace=US:1)
        at Object.render (onejs?MarketPlace=US:1)
        at onejs?MarketPlace=US:1
    v.getAAXUrl @ onejs?MarketPlace=US:1
    render @ onejs?MarketPlace=US:1
    (anonymous) @ onejs?MarketPlace=US:1




//Amazon generated code

<script type="text/javascript">
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "true";
amzn_assoc_tracking_id = "******-**";
amzn_assoc_search_bar_position = "bottom";
amzn_assoc_ad_mode = "search";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "Shop Related Products";
amzn_assoc_default_search_phrase = "watches";
amzn_assoc_default_category = "All";
amzn_assoc_linkid = "*********";
</script>
<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script>

Update:该代码在 IE 浏览器(版本:11.0.9600.19267)中运行良好,没有任何问题。我在 Chrome 版本 72.0.3626.109(官方版本)(64 位)中遇到此问题。我不确定其他浏览器/不同版本。


@Shehryar Khan 的答案是正确的,Rocket Loader(如果通过 Cloudflare 或其他启用)使所有 JS 异步,因此某些 JS 可能无法工作(正如亚马逊提到只有推荐广告可以异步)。

幸运的是,您可以通过添加 (data-cfasync="false") 来禁用特定 JS 的 Rocket Loader,而不是完全禁用 Rocket。

Example:

<script data-cfasync="false" type="text/javascript">
amzn_assoc_placement = [...]
<script data-cfasync="false" src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script>';

重要的:必须在“src”属性之前添加“data-cfasync”属性,并确保将其添加到亚马逊代码的两个脚本标签中!

或者,您可以在特定页面上禁用 Rocket Loader,如下所示:https://support.cloudflare.com/hc/en-us/articles/200168306-Is-there-a-tutorial-for-Page-Rules- https://support.cloudflare.com/hc/en-us/articles/200168306-Is-there-a-tutorial-for-Page-Rules-

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

亚马逊联属网络营销搜索广告脚本:未捕获类型错误:无法读取 null 属性“getBoundingClientRect” 的相关文章