如何仅向搜索引擎访问者和社交媒体访问者显示adsense广告?

时间:2017-07-29 09:59:04

标签: javascript preg-match adsense referrer

我在javascript代码下面显示了google adsense广告,仅供搜索引擎访问者和社交媒体访问者使用。但代码不适用于广告。

当我在下面的代码上放置adsense广告时,当我访问来自推荐网站的网址时,以及当我访问直接网址而没有推荐广告时,我会向我展示广告。我想只显示adsense广告搜索引擎和社交媒体访问,而不是推荐人和没有推荐人,只有推荐人访问者可以看到adsense广告。

代码:

<script type="text/javascript">
if (document.referrer.match(/google|bing|facebook|twitter/)) {
    var test = '
            <script type="text/javascript">
                google_ad_client = "";
                <!-- 336x280 -->
                google_ad_slot = "";
                google_ad_width = 336px;
                google_ad_height = 280px;
            </script>
            <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
            ';
    document.write(test);

} else {
    document.write("its not referrer");
}
</script>

当我使用下面的代码时,它的工作正常,但是当我放置广告时它不起作用。

代码:

<script type="text/javascript">
if (document.referrer.match(/google|bing|facebook|twitter/)) {
    document.write("its a referrer visitor");

} else {
    document.write("its not referrer");
}
</script>

请帮我解决一下。感谢

1 个答案:

答案 0 :(得分:0)

由于您已经在javascript-block中,因此您可以立即执行代码,而不是document.write新的javascript代码。使用ad asynchronous mode,您还可以获得一些页面加载功能。

<!-- Google Adsense will place the ad within the ins-block. Display none
     by default, we will change that in javascript -->
<ins class="adsbygoogle"
    style="display:none; width:336px;height:280px;"
    data-ad-client="ca-pub-xxxxxxxxxxxxxxxx"
    data-ad-slot="1234567890"></ins>

<script type="text/javascript">
    if (document.referrer.match(/google|bing|facebook|twitter/)) {
        // Show the ins-block
        document.getElementsByClassName('adsbygoogle')[0].style.display = 'inline-block';
        // Load adsense-javascript using
        var script = document.createElement('script');
        script.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"; // Note: different url due to async
        script.async = true; // Not necessary, but speeds up loading your page
        var firstScript = document.getElementsByTagName('script')[0];
        firstScript.parentNode.insertBefore(script, firstScript);
    }
</script>