Adsense Mobile Hack: Есть ли какой-нибудь способ узнать, что было в конце концов эхом в скрипте PHP? - PullRequest
0 голосов
/ 03 ноября 2011

Как всем известно, нам НЕ разрешается изменять скрипт Adsense PHP, поскольку это является нарушением TOS.

Один из сайтов, на которых я работаю, является мобильным, и создание AdSense для мобильных объявлений для типа устройства " Все телефоны"НЕ дает вам возможность" Альтернативное объявление"по какой-то странной причине, однако более 20% моих показов НЕ показывают объявление" (непревзойденное объявлениезапросы)".

Поддержка Adsense отсутствует, и я не смог найти решения этой проблемы в Интернете.

Однако я заметил, что когда Adsense для мобильных устройств отсутствуетобъявление отображается, Google просто эхо <!-- google_afm -->.Поэтому все, что мне нужно сделать для принудительного показа альтернативного объявления, это выяснить, когда Google echo отображает <!-- google_afm -->, а затем просто отобразить альтернативу.

Теперь это было бы ОЧЕНЬ легко сделать, если бы я мог изменитьPHP-код AdSense в следующей строке:

echo fread($google_ad_handle, 8192);

Но опять же, это будет нарушением TOS, и я рискну получить Banned.

Так как я делаю includeэтого сценария, есть ли в любом случае, чтобы определить в PHP, что было последним, что повторялось сценарием?

Если нет, то можете ли вы предложить мне другие варианты, чтобы я мог показывать альтернативную рекламу, чтобы я не тратил более 20% своих показов?

Ответы [ 3 ]

0 голосов
/ 03 ноября 2011
<?php

  ob_start();
  include "adsense_script.php";
  $output = ob_get_clean();
  if (substr($output,-19) == '<!-- google_afm -->') {
    // display alternate here
  }

?>
0 голосов
/ 03 ноября 2011

Вы можете использовать выходную буферизацию , например, с помощью include:

<?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();
    }
0 голосов
/ 03 ноября 2011

Вы можете использовать управление буферизацией вывода .Например:

ob_start();
include("/path/to/script.php");
$data = ob_get_contents();
ob_end_clean();
...