Насколько мне известно, рекламодатели могут предлагать ставки на ваших собственных каналах, а не на определенных рекламных блоках. См. «Ad placement and how to create it».
Итак, я хотел бы сделать это:
Во-первых, получить идентификатор канала для текущей категории:
<?php
$google_adsense_custom_channel = "1111111111";
if (in_category(5)) {
$google_adsense_custom_channel = "2222222222";
}
?>
И тогда вы можете начать печать теги объявлений с таким идентификатором, как data-ad-channel
:
<ins class="adsbygoogle"
style="display:block;"
data-ad-client="ca-pub-1234"
data-ad-slot="5678"
data-ad-channel="<?php echo $google_adsense_custom_channel; ?>"
data-ad-format="auto"></ins>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
Или - если вы предпочитаете реализацию выглядеть like the official AdSense Help Center examples:
<ins class="adsbygoogle"
style="display:block;"
data-ad-client="ca-pub-1234"
data-ad-slot="5678"
data-ad-format="auto"></ins>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script>
(adsbygoogle = window.adsbygoogle || []).push({
params: { google_ad_channel: "<?php echo $google_adsense_custom_channel; ?>" }
});
</script>
(Примечание: вам нужно кавычки вокруг идентификатора канала, потому что идентификатор канала, например
, является строкой.)
Я думаю, что ваш последний пример - лучший способ –