众所周知,我们不允许修改 Adsense PHP 脚本,因为它违反了 TOS。
我工作的网站之一是移动网站,出于某种奇怪的原因,为设备类型“所有手机”创建的 Adsense 移动广告并没有为您提供“替代广告”的选项,但超过 20%展示次数未显示广告“(不匹配的广告请求)”。
没有Adsense支持,我在网上找不到任何解决这个问题的方法。
但是,我注意到,当没有显示 Adsense for Mobile 广告时,Google 只是回显
<!-- google_afm -->
。 因此,要强制显示替代广告,我所需要做的就是找出 Google echo 的 <!-- google_afm -->
,然后自己显示替代广告。
现在,如果我可以更改以下行中的 Adsense PHP 代码,这将非常容易做到:
echo fread($google_ad_handle, 8192);
但是,这将违反服务条款,我将面临被禁止的风险。
既然我正在做这个脚本的
include
,有没有办法在PHP中确定脚本最后回显的内容是什么?
如果没有,那么您是否可以建议我使用其他替代方案来展示替代广告,这样我就不会浪费超过 20% 的展示次数?
<?php
ob_start();
include "adsense_script.php";
$output = ob_get_clean();
if (substr($output,-19) == '<!-- google_afm -->') {
// display alternate here
}
?>
您可以使用输出缓冲控制。例如:
ob_start();
include("/path/to/script.php");
$data = ob_get_contents();
ob_end_clean();
您可以使用输出缓冲,就像包含:
<?php
/**
* include_get_contents
*
* include a file and return it's output
*
* @param string $path filename of include
* @return string
*/
function include_get_contents($path)
{
ob_start();
include($path);
return ob_get_clean();
}