AMP

重要事項:本文件不適用於您目前選取的格式 電子郵件

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> 元素。僅允許下列屬性名稱
  • type
  • layout
  • data-* (即任何資料屬性)
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 上也指定的任何同名屬性。僅允許下列屬性名稱
  • type
  • layout
  • data-* (即任何資料屬性)
stickyAdAttributes Object<string, string> 選填欄位,用於從屬性名稱到值的對應,以套用至使用此版位注入的所有 <amp-sticky-ad> 元素。僅允許下列屬性名稱
  • data-* (即任何資料屬性)
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 高度。負值無效。支援的單位為
  • px - 像素
  • vp - viewport 高度的倍數
此值僅適用於網頁上已有的廣告數量少於 subsequentMinSpacing 欄位中指定的任何 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 高度。負值無效。支援的單位為
  • px - 像素
  • vp - viewport 高度的倍數

屬性

type (必填)

廣告聯播網的識別碼。

data-foo-bar

大多數廣告聯播網都需要進一步設定,這可以使用 HTML data– 屬性傳遞給聯播網。參數名稱會進行標準資料屬性破折號轉駝峰式大小寫轉換。例如,「data-foo-bar」會以「fooBar」的形式傳送給廣告以進行設定。請參閱 廣告聯播網 的文件,瞭解可以使用哪些屬性。

通用屬性

此元素包含 通用屬性,這些屬性已擴充至 AMP 元件。

驗證

請參閱 AMP 驗證器規格中的 amp-auto-ads 規則

需要更多協助嗎?

您已經閱讀本文件十幾次,但它仍然沒有真正涵蓋您的所有問題?也許其他人也有同感:在 Stack Overflow 上與他們聯繫。

前往 Stack Overflow
發現錯誤或缺少功能?

AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的長期參與者,但我們也歡迎針對您特別熱衷的問題做出一次性貢獻。

前往 GitHub