如何使用preg_match自动在自适应广告中转换常规Google AdSense广告?

时间:2014-10-10 13:33:08

标签: javascript php preg-match adsense

  • WordPress主题选项面板。
  • textarea字段,用户输入其无响应的AdSense代码。

如果用户输入无响应的adsense代码,我需要这样做,该代码将在响应式代码中转换如下:

非重复代码:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- non responsive ads -->
<ins class="adsbygoogle"
     style="display:inline-block;width:728px;height:90px"
     data-ad-client="ca-pub-12345"
     data-ad-slot="xxxxxxxxxxxxxx"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

上述代码需要转换:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-12345"
data-ad-slot="xxxxxxxxxxxxxx"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

我猜这项工作可以使用preg_match完成,但是怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

你不能这样做(据我所知)。

(无响应)单位配置存储在Google服务器上:

{
  "status": "ACTIVE", 
  "kind": "adsense#adUnit", 
  "code": "xxxxxxxxxxxxxx", 
  "name": "non responsive ads", 
  "savedStyleId": "qwertzuiopšđžasdfghjklyxcvbnmqwerfvbgtzhnmjgbvfredcxsw", 
  "contentAdsSettings": {
    "type": "TEXT_IMAGE", 
    "backupOption": {
      "type": "BLANK"
    }, 
    "size": "SIZE_728_90"
  }, 
  "id": "ca-pub-12345:xxxxxxxxxxxxxx"
}

pagead2.googlesyndication.com会将data-ad-slot="xxxxxxxxxxxxxx"广告请求视为SIZE_728_90格式的请求,并且您无法即时更改&#34;&#34; - 如果您需要另一个size,则需要创建另一个广告单元。

即使您愿意这样做并且它看起来像#34;它仍然违反了AdSense政策,并且会对您网站上涉及的所有AdSense帐户和广告投放带来风险。 (因为&#34;已转换&#34;代码会使您获得无效广告展示次数和/或错误请求的百分比。)

修改AdSense广告代码
https://support.google.com/adsense/answer/1354736?hl=en

创建自适应广告单元
https://support.google.com/adsense/answer/3543893?hl=en