Hugo靜態站點接入Adsense廣告
Hugo 生成的靜態站點要接入 Google Adsense 廣告,方法如下:
接入全站自動廣告
Adsense 廣告分爲全站廣告(By site)和單元廣告(By ad unit)。
如果想簡單接入,不定製廣告的類型,建議接入全站自動廣告,不操心,完全信任 Google
-
先去 Adsense 後臺,把自動展示廣告的代碼複製到
/xxx/layouts/partials/google/ads.html
xxx 是你網站的根目錄,ads.html 是定義的文件名,裏面粘貼上自動廣告代碼。 放在這個路徑下,好處是:萬一某一天你需要換個 theme,文件還在,完全不受影響。 形如:
1<script
2 async
3 src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-xxxxxxxxx"
4 crossorigin="anonymous"
5></script>
根據 Google 要求,廣告代碼是要放到 <head></head>
標籤間的。
所以需要放在 themes 的相關地方,比如我使用的這個皮膚(每種皮膚路徑不一定相同,要自己琢磨下),路徑爲:
xxx/themes/hugo-clarity/layouts/partials/head.html
ads 爲上面 ads.html 的文件名:
1<!-- ads -->
2{{ partial "google/ads" . }}
這樣全站自動廣告就接入完成了,Adsense 會自動處理剩下的事情,包括在哪些頁面的什麼位置展示什麼樣的廣告,還是很方便的。
接入自定義廣告單元
人們總是喜歡自定義,By site 廣告和 By ad unit 並不衝突。不完全信任 Google 也沒錯,比如你寫的某個文章,你認爲在 A 位置插入廣告非常合適,B 位置就不行,此時自定義單元廣告就派上用場啦。這個時候 Google 自動分配廣告的算法不一定行。
- 按照 Adsense 指引,創建 4 種自定義廣告單元
-
每種廣告單元對應創建一個 hugo shortcodes
類似全站自動廣告,把對應的廣告單元代碼分別放到 shortcodes 文件中。點圖示地方獲取單元廣告代碼
複製後,粘貼到對應文件中,如下圖所示:
-
在 content 的 md 文件中引入對應的
shotcodes
例如, 文章開頭添加廣告
文章末尾添加廣告
當然文章中間也可以添加,每種廣告單元適合的位置不一樣,名字按照自己喜好取。
這樣,自定義廣告單元也設置好了,可能別人有更加方便的方式,個人覺得不頻繁變動也夠用。
只是挨個文章添加廣告有點費力,也許這就是自定義的樂趣,通常我給文章開頭一個 adsense-header, 結尾一個 adsense-footer,中間看情況給一個 adsense-emb。再多用戶不高興,Google 也不答應,要考慮下用戶體驗。
接入自定義信息流廣告
自定義信息流廣告接入有門檻和特殊要求,一定要放到 feed 中才行,值得單獨說下。所謂 feed 流可以簡單想象爲一個 for 循環,比如本站的首頁,有 N 個文章簡介塊組成,信息流廣告模仿你文章塊的樣式,提供更好的用戶體驗,在用戶瀏覽的時候自然出現,與網站的外觀和風渾然一體,非常適合移動設備,好比生物世界的保護色和擬態^_^
下面介紹接入過程
- 先找到循環所在的模板
我是通過網頁源碼定位,通過搜索 css 類關鍵字找到的,每個 hugo theme 的 feed 流模板位置不一樣。hugo-clarity
的位置。
xxx/themes/hugo-clarity/layouts/partials/archive.html
- 修改信息流模板文件
1 {{- range $pageindex,$pagevalue := (.Paginate $pages).Pages }}
2 {{if and ($pageindex) (modBool $pageindex 3)}}
3 <!-- ads feed -->
4 {{ partial "google/adsense-feed" . }}
5 {{end}}
6 ...此處省略其它代碼塊
7 {{end}}
代碼解釋,range 後接入數組,$pageindex, $pagevalue 分別爲 index,value,if 判斷 index 爲真 且 對 3 取模運算後爲真。假設每頁 10 個文章,3、6、9 的地方都會插入 feed 流廣告。modBool 這個模板函數 index 爲 0 的時候也爲真,所以要排除下,不然用戶看到的第一個就是廣告,還怎麼僞裝 🥸。當然用戶也可以更改 3 爲其它數字,看自己意願要展示多少廣告,多了影響用戶體驗和網站性能。
至於這個 adsense-feed.html 模板文件放在什麼位置,參考全站廣告接入部分。
綜上所述,全站自動廣告 和 自定義廣告分別用在不同場景下,也可以結合使用,各取所長。
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。