在我的网站上,AdSense内容通过javascript动态加载。文章内容通过AJAX检索,然后显示在页面上。显示后,AdSense代码会附加到文章中。
您可以在http://thepresslist.com.au/
中看到它的实际效果代码应该出现在您可以看到“广告”一词的上方。在我看来,我只能看到广告应该出现的空白区域,但没有广告。查看最终页面的来源,代码似乎是正确的。 AdBlock已停用且Javascript已启用。我发现AdSense帐户中没有明显错误。
是否有人能够了解为什么没有展示广告?
这是生成广告展示位置的代码(该数组是Google AdSense脚本,已爆炸,以分割</script>
代码。
articleAd.innerHTML = <?php
$numItems = count($site_content_adverts);
$i = 0;
foreach ($site_content_adverts as &$value) {
if(++$i === $numItems) {
echo '"' . $value . '" + ';
} else {
echo '"' . $value . '" + "pt>" + ';
}
}
?> "Advert";
在加载的页面上,上面的脚本如下所示(在回显爆炸的字符串之后):
articleAd.innerHTML = "<style>.press-list-ad-1 { width: 320px; height: 50px; }@media(min-width: 500px) { .press-list-ad-1 { width: 468px; height: 60px; } }@media(min-width: 800px) { .press-list-ad-1 { width: 728px; height: 90px; } }</style><script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></scri" + "pt>" + "<!-- Press List Ad 1 --><ins class=\"adsbygoogle press-list-ad-1\" style=\"display:inline-block\" data-ad-client=\"ca-pub-1801533XXXXXXXX06\" data-ad-slot=\"68XXXXXXXXX105\"></ins><scri" + "pt>" + "(adsbygoogle = window.adsbygoogle || []).push({});</scri" + "pt>" + "" + "Advert";
这是每次加载新文章时呈现的代码:
<style>.press-list-ad-1 { width: 320px; height: 50px; }@media(min-width: 500px) { .press-list-ad-1 { width: 468px; height: 60px; } }@media(min-width: 800px) { .press-list-ad-1 { width: 728px; height: 90px; } }</style>
<script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Press List Ad 1 -->
<ins class="adsbygoogle press-list-ad-1" style="display:inline-block" data-ad-client="ca-pub-1801XXXXX58006" data-ad-slot="6898XXXXXXX05"></ins>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
答案 0 :(得分:3)
看来browsers will ignore script tags created with innerHTML(只是在这里搜索innerHTML
以找到参考资料)。
将脚本插入页面的正确方法是使用document.createElement
。以下是上述代码的示例:
var articleAd = document.createElement("script");
articleAd.async = true;
articleAd.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
var articleIns = document.createElement("ins");
articleIns.dataset.adClient = "stuff goes here";
articleIns.dataset.adSlot= "stuff goes here";
articleIns.className = "adsbygoogle press-list-ad-1";
var googlestuff = document.createElement("script");
googlestuff.text = "(adsbygoogle = window.adsbygoogle || []).push({});";
document.getElementsByTagName("body")[0].appendChild(articleIns);
document.getElementsByTagName("body")[0].appendChild(articleAd);
document.getElementsByTagName("body")[0].appendChild(googlestuff);
请注意,我删除了您的广告ID信息,因为我认为在此答案中包含此信息是不正确的。