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-* (即任何 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-* (即任何 data 屬性)
stickyAdAttributes Object<string, string> 選填欄位,用於從屬性名稱到值的對應,以套用至使用此版位注入的所有 <amp-sticky-ad> 元素。僅允許下列屬性名稱
  • data-* (即任何 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 屬性破折號轉駝峰式命名法轉換。例如,「data-foo-bar」會以「fooBar」的形式傳送至廣告以進行設定。請參閱 廣告聯播網 的文件,以瞭解可以使用哪些屬性。

通用屬性

此元素包含擴充至 AMP 組件的通用屬性

驗證

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

需要更多協助嗎?

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

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

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

前往 GitHub