【问题标题】:Display Ads To % of Users向 % 的用户展示广告
【发布时间】:2011-08-12 23:31:25
【问题描述】:

我有一个网站,我想在 10% 的流量中展示广告。我平均每天获得大约 30,000 次点击,并希望其中 10% 的用户看到我的一位广告客户的广告。

实现这一点的最佳方法是什么?

我正在考虑在数据库中计算访问者数量,然后每 10 个人访问 1 个用户就会获得一个广告。还是有更好的方法?

我不擅长数学,所以我不确定什么是最好的方法。

【问题讨论】:

  • 这可能是最好的方法......你会想要为独特的 IP 这样做
  • @Alex Coplan 请公开发布算法,这样我就可以挑选出一个有保证的免添加 IPv6 地址 ;)
  • 我永远不会明白为什么有些人用'add'来缩写广告。

标签: php


【解决方案1】:

生成一个介于 1 和 10 之间的随机数,并将其与一个固定数进行比较,您的代码将平均运行 10% 的时间:

if (rand(1,10) == 1) {
  echo 'ad code';
}

您可以通过存储该用户是否在他们的会话中被“选择”来创建每个用户而不是每个网页浏览量。

session_start();
if (isset($_SESSION['show_me_ads']) || rand(1,10) == 1)
  $_SESSION['show_me_ads'] = true;
  echo 'ad code';
}

【讨论】:

  • 这很聪明,让我可以根据国家/地区或引荐来源或关键字来定位访问者的广告。
【解决方案2】:

我使用 Google 的 DFP(Doubleclick for Publishers)在我的网站上投放广告。它非常坚固。您必须有一个 AdSense 帐户,但这并不难获得,只是等待批准很烦人。

设置好并加载广告后,您可以按百分比(例如您所说的 10%)、总浏览量等控制有多少人看到您的广告。

调查一下:http://google.com/dfp

如果您不想使用第 3 方软件,我认为最简单的方法是将其随机化,以便 1/10 的访问者看到您的广告。简单的方法是:

if (rand(1,10) == 1) {
  echo 'YOUR AD CODE HERE';
}

你说你不擅长数学,我明白,我也很不擅长数学,但基本上,每次加载页面时,它都是在“滚动”一个 10 面的“骰子”。每次它“滚动”一个 1(即 10 次中的 1 次,或 10%)时,它都会展示广告。否则,它将被忽略。

这比依靠计算用户数量更好(除了简单之外)的原因是,无论您有 30,000 名访问者还是 3,000,000 名访问者,它仍然有 1 10% 的时间滚动。

【讨论】:

  • 在我写这篇文章的时间里,有 4 个人发布了几乎完全相同的代码。愚蠢的。我还可以节省 15% 或更多的汽车保险费。
  • 谢谢。我感谢您的回复和解释的努力:D
【解决方案3】:

最简单的形式:

if (rand(1,10) == 1) {
    echo $ad_content;
}

【讨论】:

    【解决方案4】:
    if(rand ( 1,10) == 1)
        display_ads();
    

    【讨论】:

      【解决方案5】:

      你可以使用

       if(mt_rand(1,10)==10){
            //show your code;
       }
      

      它将向大约 10% 的用户展示广告

      【讨论】:

        【解决方案6】:

        您为什么要向少数不幸的人展示广告,而不是随机决定每个页面的展示次数(而不是每个访问者)?

        在php中,你可以继续写:

        $adPercent = 10;
        if (rand(0, 100) < $adPercent) {
           echo '<div class="ads">Buy now!</div>';
        }
        

        【讨论】:

          【解决方案7】:

          如果这是用于谷歌广告,那么您需要将广告插入设为可选(使用上面的概率逻辑),建议类似于Google Ads Async (asynchronous)

          <script type="text/javascript"><!--
          // dynamically Load Ads out-of-band
          setTimeout((function ()
          {
              // placeholder for ads
                  var eleAds = document.createElement("ads");  
                  // dynamic script element
                  var eleScript = document.createElement("script");  
                  // remember the implementation of document.write function
                  w = document.write;
                  // override and replace with our version
                  document.write = (function(params)
                  {
                  // replace our placeholder with real ads
                  eleAds.innerHTML = params;
                  // put the old implementation back in place
                  document.write=w;
                  });
                  // setup the ads script element
                  eleScript.setAttribute("type", "text/javascript");
                  eleScript.setAttribute("src", "http://pagead2.googlesyndication.com/pagead/show_ads.js");
                  // add the two elements, causing the ads script to run
                  document.body.appendChild(eleAds);              
                  document.body.appendChild(eleScript);           
          }), 1);
                          //-->
                  </script>
          

          【讨论】:

            猜你喜欢
            • 2020-09-22
            • 1970-01-01
            • 2020-09-06
            • 2018-02-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-06
            相关资源
            最近更新 更多