重要事項:本文件不適用於您目前選取的格式 故事!
amp-auto-ads
說明
透過使用遠端伺服器提供的設定檔,將廣告動態注入 AMP 頁面。
必要腳本
<script async custom-element="amp-auto-ads" src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js"></script>
用法
透過使用遠端伺服器提供的設定檔,將廣告動態注入 AMP 頁面。
在有足夠數量的有效版位 (在設定中提供) 的情況下,amp-auto-ads
會嘗試插入額外的廣告,同時遵守廣告聯播網指定的一組限制。這些限制將會限制
- 可以插入的廣告總數
- 任何相鄰廣告之間應有的最小距離
除此之外,廣告只會插入在頁面上不會造成無法接受的重新排版 (由 attemptChangeSize 判斷) 的位置。
<amp-auto-ads>
標記應放置為 <body>
的第一個子元素。
廣告聯播網類型和任何額外資訊 (廣告聯播網要求的) 應在標記上指定。
<amp-auto-ads type="adsense" data-ad-client="ca-pub-5439573510495356"> </amp-auto-ads>
支援的廣告聯播網
設定規格
設定定義了 <amp-auto-ads>
可以在頁面上放置廣告的位置。設定是從第三方廣告聯播網在 ad-network-config.js
中定義的 URL 擷取。設定應該是符合下方 ConfigObj
定義的序列化 JSON 物件。
設定範例
以下範例指定廣告應立即放置在頁面上第三個 <DIV id='domId'>
內的所有 <P class='paragraph'>
元素之後的位置。放置在這些位置的任何廣告都應為 BANNER 類型,且頂部邊距為 4 像素,底部邊距為 10 像素。
{ "placements": [ { "anchor": { "selector": "DIV#domId", "index": 2, "sub": { "selector": "P.paragraph", "all": true } }, "pos": 4, "type": 1, "style": { "top_m": 5, "bot_m": 10 } } ] }
物件定義
ConfigObj
在設定物件中指定的欄位
欄位名稱 | 類型 | 說明 |
---|---|---|
placements | Array<!PlacementObj> | 必填欄位,表示可以在頁面上插入廣告的潛在位置。 |
attributes | Object<string, string> | 選填欄位,指定從屬性名稱到屬性值的對應,以套用至使用此設定注入的所有 <amp-ad> 元素。僅允許下列屬性名稱
|
adConstraints | AdConstraintsObj | 選填欄位,指定在頁面上放置廣告時應使用的限制。如果未指定,則 amp-auto-ads 將嘗試使用 [ad-network-config.js](https://github.com/ampproject/amphtml/blob/main/extensions/amp-auto-ads/0.1/ad-network-config.js) 中指定的預設限制。 |
PlacementObj
在 placements
設定物件中指定的欄位
欄位名稱 | 類型 | 說明 |
---|---|---|
anchor | AnchorObj | 必填欄位,提供用於查閱頁面上版位位置所錨定的元素的資訊。 |
pos | RelativePositionEnum | 必填欄位,表示版位相對於其錨定元素的位置。 |
type | PlacementTypeEnum | 必填欄位,表示版位的類型。 |
style | PlacementStyleObj | 選填欄位,表示應套用至此版位位置中插入的廣告的任何樣式。 |
attributes | Object<string, string> | 選填欄位,用於從屬性名稱到值的對應,以套用至使用此版位注入的所有 <amp-ad> 元素。此處指定的屬性會覆寫父 ConfigObj 上也指定的同名屬性。僅允許下列屬性名稱
|
stickyAdAttributes | Object<string, string> | 選填欄位,用於從屬性名稱到值的對應,以套用至使用此版位注入的所有 <amp-sticky-ad> 元素。僅允許下列屬性名稱
|
AnchorObj
在 anchor
設定物件中指定的欄位
欄位名稱 | 類型 | 說明 |
---|---|---|
selector | string | 必填欄位,定義 CSS 選擇器,以選取此層級錨定定義中的元素。 |
index | number | 選填欄位,用於指定選擇器選取的元素索引,此層級的錨定定義應限制為該索引。預設情況下,值設定為 0 (如果 all 欄位為 false)。 |
all | boolean | 如果指定了 index 欄位,則會忽略此欄位。如果設定為 true ,則表示應包含選擇器選取的所有元素;否則設定為 false 。 |
min_c | number | 選填欄位,指定元素 textContent 屬性的最小長度,以便將其包含在內。預設值為 0。 |
sub | AnchorObj | 選填欄位,指定遞迴 AnchorObj ,其將選取在此層級錨定定義中選取的任何元素內的元素。 |
PlacementStyleObj
在 style
設定物件中指定的欄位
欄位名稱 | 類型 | 說明 |
---|---|---|
top_m | number | 選填欄位,表示在此位置插入的廣告應具有的頂部邊距 (以像素為單位)。預設值:0。 |
bot_m | number | 選填欄位,表示在此位置插入的廣告應具有的底部邊距 (以像素為單位)。預設值:0。 |
RelativePositionEnum
placements
設定物件中 pos
欄位的 ENUM 值
名稱 | 值 | 說明 |
---|---|---|
BEFORE | 1 | 廣告應作為錨點的正上方同層級元素插入。 |
FIRST_CHILD | 2 | 廣告應作為錨點的第一個子元素插入。 |
LAST_CHILD | 3 | 廣告應作為錨點的最後一個子元素插入。 |
AFTER | 4 | 廣告應作為錨點的正下方同層級元素插入。 |
AttributesEnum
ENUM 值表示不同廣告格式的設定物件中的屬性
名稱 | 值 | 說明 |
---|---|---|
BASE_ATTRIBUTES | attributes | 表示設定物件中的 `attributes` 欄位。 |
STICKY_AD_ATTRIBUTES | stickyAdAttributes | 表示設定物件中的 `stickyAdAttributes` 欄位。 |
PlacementTypeEnum
placements
設定物件中 type
欄位的 ENUM 值
名稱 | 值 | 說明 |
---|---|---|
BANNER | 1 | 版位描述橫幅廣告位置。 |
AdConstraintsObj
在 adConstraints
設定物件中指定的欄位
欄位名稱 | 類型 | 說明 |
---|---|---|
initialMinSpacing | string | 必填欄位,表示廣告與頁面上已有的任何廣告 (手動放置或先前由 amp-auto-ads 放置) 在插入時應有的最小距離。值表示為帶有單位前綴的數字。例如,「10px」表示 10 像素,或「0.5vp」表示半個viewport 高度。負值無效。支援的單位為
adCount 比對器時適用。 |
subsequentMinSpacing | Array<!SubsequentMinSpacingObj> | 選填欄位,指定應根據插入時頁面上已有的廣告數量套用的廣告間距。 |
maxAdCount | number | 必填欄位,指定 amp-auto-ads 可以導致頁面上存在的最大廣告數量。手動放置的廣告以及由 amp-auto-ads 放置的廣告都計入此總數。例如,如果此欄位設定為 5,且頁面上有 3 個手動放置的廣告,則 amp-auto-ads 最多會再放置 2 個額外廣告。 |
SubsequentMinSpacingObj
在 subsequentMinSpacing
設定物件中指定的欄位。subsequentMinSpacing
項目可用於根據頁面上已有的廣告數量,變更任何額外廣告之間所需的間距。例如,考慮以下情境
- 頁面上有 2 個現有廣告
- subsequentMinSpacing 欄位為:
[ {adCount: 3, spacing: "500px"}, {adCount: 5, spacing: "1000px"}, ]
最初頁面上有 2 個現有廣告,因此沒有任何對應符合。因此,最小間距預設為 AdConstraints
物件中的 initialMinSpacing。amp-auto-ads
將以遞迴方式嘗試放置廣告,直到其用完可以在不違反 adContraints
的情況下使用的版位。在 amp-auto-ads
放置其第一個廣告後,頁面上現在有 3 個廣告,由於 subsequentMinSpacing
中有 3 個 (或更多) 廣告的對應,因此最小間距現在變為 500 像素。這適用到頁面上有 5 個廣告為止,因為有 5 個廣告的規則。然後,插入第 6 個以上的廣告將需要其與其他廣告間隔至少 1000 像素。
欄位名稱 | 類型 | 說明 |
---|---|---|
adCount | number | 必填欄位。頁面上已有的廣告最小數量,會導致此規則套用 (假設沒有其他規則是更好的比對)。請參閱上方的說明以取得更詳細的解釋。 |
spacing | string | 必填欄位,指定在此規則基於 adCount 比對時套用的最小廣告間距。值表示為帶有單位前綴的數字。例如,「10px」表示 10 像素,或「0.5vp」表示半個viewport 高度。負值無效。支援的單位為
|
屬性
type
(必填)
廣告聯播網的識別符。
data-foo-bar
大多數廣告聯播網都需要進一步設定,可以使用 HTML data–
屬性將其傳遞到聯播網。參數名稱會進行標準的 data 屬性破折號轉駝峰式命名法轉換。例如,「data-foo-bar」會以「fooBar」的形式傳送至廣告以進行設定。請參閱 廣告聯播網 的文件,以瞭解可以使用哪些屬性。
通用屬性
此元素包含擴充至 AMP 組件的通用屬性。
驗證
請參閱 AMP 驗證器規格中的 amp-auto-ads 規則。
您已經閱讀本文件十幾次,但它仍然沒有真正涵蓋您的所有問題?也許其他人也有同樣的感覺:在 Stack Overflow 上與他們聯繫。
前往 Stack Overflow 發現錯誤或缺少功能?AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的持續參與者,但我們也歡迎針對您特別熱衷的問題提供一次性的貢獻。
前往 GitHub