未分類

Google Adsense 注入 height: auto !important 問題

本篇紀錄 Google Adsense 注入 height: auto !important 問題,在 Fixing Adsense Injecting ‘height: auto !important’ into scrolled Containers - Rick Strahl’s Web Log 這篇網友詳細描述了 Adsense 注入 height: auto !important 的情況與解決方式。

另外在 Stack Overflow 的 javascript - Adsense injecting style tag into my page (in chrome) 這篇討論已經有一些解決方法,網友找到在 show_ads_impl.js.js 裡有段程式碼注入了 auto important,我後來也有找到注入的程式碼了。

1
setProperty("height", "auto", "important")

在 Stack Overflow 這篇裡還學習到了延後打開 ads 這招,延後打開 ads 這招以後可以試試,但是這是不是以前是同步 script 的解決方式,現在 Adsense 已經有非同步的 script 所以這招是不是不太需要了呢?

1
2
3
document.addEventListener('DOMContentLoaded', (e) => {
(adsbygoogle = window.adsbygoogle || []).push({});
}, false)

解決方法大概分為這個幾個,

  • 方法1 settimeout
  • 方法2 使用 MutationObserver
  • 方法3 監聽 visibilitychange 事件 (這個我還沒試過)
  • 方法4 修改 adsense 的 data-ad-format (試過沒效)
    有網友說他把 data-ad-format=”auto” 移除就可以了,另外一個網友說他把 data-ad-format=”fluid” 改成 data-ad-format=”auto” 就好了,我將 data-ad-format=”auto” 改成 data-ad-format=”vertical” 試試沒效。

data-ad-format 詳細參數在 https://support.google.com/adsense/answer/9183460?hl=en 這邊有說明。

分享到