Cookie 同意后如何加载 Adsense?

Mic*_*eph 3 javascript cookies jquery adsense cookieconsent

该网站设置为选择接受 Cookie 同意,但当首次访问者单击接受 Cookie 按钮时,除非刷新整个页面,否则 AdSense 代码不会加载。

有没有办法实现点击cookie接受按钮后加载广告,而不必刷新整个页面?

使用此 cookie 同意 jquery 插件:IHaveCookies

这是我正在使用的允许加载 adsense 的代码的一部分:

    $(document).ready(function() {
    $('body').ihavecookies(options);

if ($.fn.ihavecookies.preference('ads') === true) {
    var src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js";
    var newScript = document.createElement("script");
    newScript.type = "text/javascript";
    newScript.setAttribute("async", "true");
    newScript.setAttribute("src", src);
    document.body.appendChild(newScript);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码确实有效,但它不允许广告在页面刷新后出现。是否可以在上述代码中添加“刷新”属性,以使广告在“ ihavecookies.preference('ads') === true) ”上加载而无需刷新页面?

我实现此功能的网站可以在这里查看

仅供参考......目前没有为欧盟或加利福尼亚访问者加载广告(但这是一个单独的问题,不在此主题中解决)

yen*_*ren 8

与您正在使用的插件没有直接关系,但我的回答希望能引导您走向正确的方向。首先,有两个 AdSense 帮助页面可能会对您有所帮助:

\n

Google\xe2\x80\x99s 发布商广告代码中的广告个性化设置:\n https://support.google.com/adsense/answer/7670312

\n

广告个性化设置的广告代码示例:\n https://support.google.com/adsense/answer/9042142

\n

我正在将我的自定义 cookie 同意解决方案与 AdSense 一起使用(我使用带有非个性化选项的自动广告),这就是我正在做的事情:

\n

1.我将以下代码放在<head>标签之间、将显示广告的页面上:

\n

编辑:仅在同意/同意后才将以下内容添加到您的页面。(感谢@阿凡达)

\n
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>\n<script>(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=1;</script>\n
Run Code Online (Sandbox Code Playgroud)\n

这会加载 AdSense JS 文件,但会暂停广告加载,因此不会放置任何 cookie。

\n

2.在我控制显示/隐藏同意横幅的 JS 文件中,我将以下代码放入这些操作中:a) 用户通过单击“确定”表示同意,b) 如果先前已同意,则加载新页面:

\n
(adsbygoogle=window.adsbygoogle||[]).requestNonPersonalizedAds=1;\n(adsbygoogle=window.adsbygoogle||[]).pauseAdRequests=0;\n(adsbygoogle=window.adsbygoogle||[]).push({google_ad_client:\'ca-pub-YOUR-ADSENSE-ID\',enable_page_level_ads:true});\n
Run Code Online (Sandbox Code Playgroud)\n

如果您使用个性化广告,则可以删除第一行。

\n

在其他情况下不会加载广告(例如,用户不执行任何操作、用户单击“拒绝”、用户之前拒绝的新页面加载)。我确实放置了一个 cookie 来跟踪拒绝情况,以便在每次页面加载时都不会显示同意横幅。

\n