【问题标题】:How to hide adsense ads to visitors coming from specific campaign?如何向来自特定广告系列的访问者隐藏 AdSense 广告?
【发布时间】:2020-05-28 05:26:53
【问题描述】:

如何向来自特定广告系列的访问者隐藏 AdSense 广告?

到目前为止,我已经找到了在 URL 包含“分享”一词时隐藏广告的方法

例如:

如果我的广告系列的目标网页是:

https://example.com/?utm_source=social&utm_medium=share 

我使用以下代码来做到这一点:

<?php
$url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'share') !== false) {
    return false;
} else { ?>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-0000000000000000"
     data-ad-slot="0000000000"
     data-ad-format="link"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>
<?php } ?>

问题是,当访问者转到我网站中的另一个页面时,从 URL 中删除了 utm 参数,并且 adsense 广告再次出现。

我需要您的帮助以确保任何访问者都来自广告系列

?utm_source=social&amp;utm_medium=share 看不到任何 Adsense 广告,无论访问者浏览我的整个网站,访问者都不会看到 Adsense 广告。

如果您知道此问题的另一种解决方法,更简单的方法,请分享。我会忘记上面的代码并使用你的。

提前感谢您的回复。

问候

【问题讨论】:

  • 您想读取 $_GET 变量并将它们存储在所有页面上的会话中,也许只需在所有页面顶部包含一个执行此操作的文件,这样您就不必重新写下来。同样在该导入中,如果没有设置获取变量,请检查会话

标签: php hide adsense utm


【解决方案1】:

您需要在所有页面的顶部包含一个文件来检查这些参数并将它们存储在会话中,试试这个:

<?php
session_start();

if (isset($_GET['utm_source'])) {
    $_SESSION['utm_source'] = $_GET['utm_source'];
}
if (isset($_GET['utm_medium'])) {
    $_SESSION['utm_medium'] = $_GET['utm_medium'];
}
if (
    (isset($_SESSION['utm_source']) && $_SESSION['utm_source'] == 'social') &&
    (isset($_SESSION['utm_medium']) && $_SESSION['utm_medium'] == 'share'))
{
    // DON'T SHOW ADS
} else {
    // SHOW ADS
}

【讨论】:

  • 这将覆盖每个页面加载时的变量。它需要先查看会话变量是否存在。
  • @aynber 是的,我发现一发布它,我就对其进行了修改,如果您可以修改您的反对意见,我们将不胜感激。
  • 不是我的反对意见,我只是发表了评论。这看起来仍然非常令人费解。
  • @aynber 怎么这么复杂?
  • @aynber 它在我的机器上工作,但是是的,你是对的,这是对三元的错误使用,我已经编辑了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
  • 1970-01-01
相关资源
最近更新 更多