16 февраля, 2015 - 23:52 — SoL
Простой вариант быстро пробить что эффективнее в каком-то конкретном месте сайта Директ или Адсенс на JS.
Итак, подгружаем асинхронный код гугла (в большинстве случаев он уже подгружен на странице):
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
Определяем условия (если нужно откручивать больше вариантов, просто поиграйтесь со значениями в Math.random и измените цикл)
<script>
if (Math.random() > .5) {
Выводим код 1го блока:
document.write('<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-123" data-ad-slot="123" data-ad-format="auto"></ins>');
(adsbygoogle = window.adsbygoogle || []).push({});
} else {
Выводим блок с РСЯ:
document.write('<div id="yandex_ad"></div>');
И передаём в него нужные параметры
(function(w, d, n, s, t) {
w[n] = w[n] || [];
w[n].push(function() {
Ya.Direct.insertInto(123123, "yandex_ad", {
stat_id: 1,
ad_format: "direct",
font_size: 1,
type: "horizontal",
limit: 2,
title_font_size: 2,
links_underline: true,
site_bg_color: "FFFFFF",
title_color: "0072B9",
url_color: "13497E",
text_color: "494949",
hover_color: "F00",
sitelinks_color: "13497E",
favicon: true,
no_sitelinks: false
});
});
t = d.getElementsByTagName("script")[0];
s = d.createElement("script");
s.src = "//an.yandex.ru/system/context.js";
s.type = "text/javascript";
s.async = true;
t.parentNode.insertBefore(s, t);
})(window, document, "yandex_context_callbacks");
}
</script>
Как видите, код вызовов фактически остаётся без изменений, что не нарушает правил обоих контекстных сеток.