(軟體)Google AMP是什麼?繞了2圈經驗談(裝還是不裝?)

(軟體)Google AMP是什麼?繞了2圈經驗談(裝還是不裝?)

最明顯的工作就是廣告的插入,分別要針對一般網頁和AMP網頁,撰寫廣告插入程式以便呈現廣告,另外為了達到最好的呈現效果,在版面調整上也得花上不少苦工。

接著再試的外掛是:「AMP」(藍底白色閃電),來自AMP官方開發的WordPress Plugin,它的最大特色莫過於所擁有的Ecosystem(生態系統),包含Theme和Plugin都已經事先整合測試好,對開發者而言真的是一大福音。

(官網)AMP Ecosystem

而且它的設定相對單純,只有下列三種選項:Standard, Transitional和Reader(Classic)

(軟體)Google AMP是什麼?繞了2圈經驗談(裝還是不裝?)

可以是AMP網頁和一般網頁分開,它是以「?amp」來區分,也可以是完全整合以AMP為主體的標準模式(Standard),這真的是太吸引人了,因為只要維護一套程式碼就可以自動服務一般網頁和AMP網頁,後端都由這個Plugin自動管理,編譯出相對應的程式碼來,讓人看了都不免心生歡喜,搖旗吶喊起來。😍

但是真正的苦難,也是在選了這項設定之後才開始,至於是什麼苦?有多苦?在下面的文章裡,我們很快就能夠看到。

Google AMP的壞處

花了不少的篇幅介紹AMP的由來、好處和如何啟動,接著要談到的是AMP的壞處,這是一開始採用AMP時始料未及的,如果早知道也許就不會走這麼一遭了,這也是為什麼想寫這篇經驗談的原因,為了留給未走過的你,和已走過的我一個記錄。

啟用AMP之後最大的壞處就是:廣告收入劇減!看到這樣的結論,應該會澆熄想安裝AMP的大半熱情吧,雖然不確定是否每個人都是如此,但至少對J88我來說是這樣的結果。

目前主要是使用Google Adsense 300×250的廣告模組,這個廣告的CPC和在不同螢幕下的版面呈現方式,都表現得比Responsive ads要來得好,雖然Google一再強調Responsive ads會有較好的表現,但事實上還是因網站而異。

而在全面改用AMP之後,廣告模組也被迫改成Responsive的模式,因為300×250的廣告模組在小螢幕中是不會自動縮放的,也就是不會依照手機螢幕的大小,完全填滿螢幕的寬度,它只會很直接地呈現出寬300的廣告來,也許這就是廣告會劇減的原因之一吧!

(軟體)Google AMP是什麼?繞了2圈經驗談(裝還是不裝?)
同樣都300×250的廣告模組,但在左邊一般網頁裡,廣告會依手機大小滿框,但右手邊的AMP網頁則不會。

另外即便改成Responsive ads模組,但在行動裝置上,竟然出現需要左右移動才能夠看到完整畫面的窘境,而且是不論如何調整都無法改變這樣的情形。

就這樣,這兩個致命的缺點,讓人有不得不捨棄AMP的迫切感,但是當你急著擺脫、捨棄AMP時,麻煩才正要開始…

讓我們回到從頭,再回想一下,之前提到是藉由安裝AMP外掛,而啟動相對功能,所以當不想提供AMP網頁時,是不是就把這外掛關閉,再解除安裝就可以了呢?

很可惜答案是否定的,因為當你啟動AMP功能時,相關的網頁內容都已經被快取到cdn.ampproject.org CDN(Content Delivery Network)之中,尤其若是採用AMP官方開發的「AMP」(藍底白色閃電)WordPress Plugin,並且選用完全整合以AMP為主體的標準模式(Standard),那麻煩就更大了,因為關不掉、改不了,有讓人欲哭無淚的感覺,就讓我娓娓道來吧。😱😨😢

AMP Cache Update快取更新(藉由直接讀取Cache)

選用完全整合以AMP為主體的標準模式(Standard)會有大麻煩的原因在於,不論是AMP還是一般網頁,都是同一個網址,用戶拜訪這個網頁時,不會來到你的原始網站要求相關資訊,而是直接由Google CDN提供資料(所以速處才會飛快啊!),但問題發生在CDN上面的快取,因為沒有辦法控制它何時和原始網頁同步,所以會發生網頁明明已經更新了,可是用戶瀏覽的內容卻是快取上頭的舊資料,而且還可能是好幾個版本前的舊資料。

Google當然明白這需求,所以也提供了更新快取的方法。

(官網)Update AMP Content(藉由RSA公私金鑰)

(軟體)Google AMP是什麼?繞了2圈經驗談(裝還是不裝?)

*更新AMP快取的語法:

https://example-com.<cache.updateCacheApiDomainSuffix>/update-cache/c/s/example.com/article?amp_action=flush&amp_ts=<ts_val>&amp_url_signature=<sig_val>

*以本站「Life認真過生活」為例,套用之後的語法:

https://life-jasonjc-com.cdn.ampproject.org/update-cache/c/s/life.jasonjc.com/category/attractions/fireworks?amp_action=flush&amp_ts=1591444846&amp_url_signature=BcLD2ykdxhjhkiEccEg4IjcJBIthZiprtjYGElUD2O8P9xr0IzB3K4UdydL3w5Gkmr3DLJIMkjuTfuBELmxiYMiOJPRPU7Brtqb0SZ4944GFKRH3EemaQBEwhyXzJP5pZDCUt6pFCp28OaHdS7zeZfkE0tF_YpaOZF5y1eOj-6quYrPL1cbxxE_9X_O8jD8kJFzDFCB_Cpy9FhpyhL0lHkPdVDd3qxT00JoUcRa2196sARl6YZULIbIsiG2Jj58pq2TJzpQ2kEy_vkJR7TP-YJUzcSh1q5HXAptCqu-pps9F3Q0tqCqjzSS4kfZOmg5G-Ex5KOcCA9uWpraICqJAfw

夠專業吧!有沒有完全暈倒的感覺,其實這一大串語法,再加上需要產生非對稱金鑰加密系統(RSA)的公私金鑰,光是看了就讓人卻步,但最後還是被迫走到這一步,產出這語法,很快地我們就會談到這過程。

那有沒有什麼方法,可以繞過產生RSA公私金鑰的方式來更新快取呢?答案是:「有的!」,這一節的子標題就已經指出相關的方法,也就是藉由直接讀取Cache來達到更新快取得目的。

(官網)Update AMP Content(藉由直接讀取Cache)

因為AMP遵循一種叫做:「stale-while-revalidate(過時驗證)」的模式運作,也就是說當第1位用戶存取網頁A時,AMP會直接先從CDN中提供資料,但同時間也會到原始網頁來檢查是否有更新的內容,所以當第2位用戶讀取相同的網頁A時,就能夠提供最新的網頁內容 。聽起來是不是很棒呢?讓我們立即來試試!

(軟體)Google AMP是什麼?繞了2圈經驗談(裝還是不裝?)

想要直接讀取Cache,就得先知道呼叫Cache的語法,可藉由下列的工具來產生。

(官網)AMP Cache URL Format

(軟體)Google AMP是什麼?繞了2圈經驗談(裝還是不裝?)
分享你的喜愛

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *