比起廣告單元,鍵/值可讓您在指定廣告時,設定比廣告單元更精細的條件。進一步瞭解鍵/值。
您可以為每個廣告請求傳遞一或多個鍵,每個鍵都會對應至一或多個相關值。系統會根據在 Ad Manager 委刊項層級設定的指定目標選項,評估這些鍵/值。舉例來說,假設您傳遞 age=18-34
的自訂鍵/值,指定給 18 至 34 歲年齡範圍的委刊項即符合放送資格 (假設所有其他條件都相符)。
設定指定目標
您可以根據網路需求,指定鍵/值來設定版位和網頁層級的指定目標。
- 運算單元層級
可讓您為網頁上的個別廣告版位設定鍵/值。
版位層級指定目標可讓您針對個別版位設定指定目標。如果同一個網頁上的個別版位需要不同的指定目標,這項功能就很實用,但如果所有版位都使用相同的鍵/值,這項功能就可能效率不彰。使用 Slot.setTargeting() 即可使用版位層級指定目標,如以下範例所示。
- 頁面層級
可讓您為網頁上的所有廣告版位設定鍵/值。
網頁層級指定功能可確保所有廣告版位都使用同一組鍵/值。在某些情況下,這可能會減少設定指定目標所需的程式碼總量。使用 googletag.pubads().setTargeting() 來使用網頁層級指定目標,如以下範例所示。
<head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="description" content="Use key-value targeting to control the ads eligible to serve to specific ad slots." /> <title>Key-value targeting</title> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" crossorigin="anonymous" ></script> <script> window.googletag = window.googletag || { cmd: [] }; // GPT slots let adSlots = []; googletag.cmd.push(() => { // Configure slot-level targeting. adSlots[0] = googletag .defineSlot("/6355419/Travel/Asia", [728, 90], "banner-ad-1") .addService(googletag.pubads()) .setTargeting("color", "red") .setTargeting("position", "atf"); adSlots[1] = googletag .defineSlot("/6355419/Travel/Asia", [728, 90], "banner-ad-2") .addService(googletag.pubads()) .setTargeting("position", "btf"); // Configure page-level targeting. googletag.pubads().setTargeting("interests", "basketball"); // Enable SRA and services. googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script> </head>
在這個範例中,我們定義了兩個廣告版位,分別指定廣告單元 /6355419/Travel/Asia
和廣告大小 728x90
。接著,系統會套用鍵/值指定條件,進一步限制和區分可能在每個時段放送的廣告。
如果同時使用版位和網頁層級指定目標,系統會合併鍵/值,只有符合所有條件的廣告才能放送到特定版位。在這個範例中,每個版位的有效指定目標如下:
廣告版位 | 有效指定目標 |
---|---|
1 | color=red AND position=atf AND interests=basketball |
2 | position=btf AND interests=basketball |
指定多個鍵或值
在上述範例中,我們結合了版位和網頁層級指定目標,為單一廣告版位定義多個指定鍵。以下是一些可達到相同有效指定目標的替代做法:
僅限投放版位層級指定目標
在本例中,每個廣告版位都會重複使用共用鍵/值。
// Slot-level targeting with multiple keys.
adSlots[0] = googletag
.defineSlot('/6355419/Travel/Asia', [728, 90], 'banner-ad-1')
.addService(googletag.pubads())
.setTargeting('color', 'red')
.setTargeting('position', 'atf')
.setTargeting('interests', 'basketball');
adSlots[1] = googletag
.defineSlot('/6355419/Travel/Asia', [728, 90], 'banner-ad-2')
.addService(googletag.pubads())
.setTargeting('position', 'btf')
.setTargeting('interests', 'basketball');
網頁層級預設指定目標
在這個範例中,預設指定目標會在網頁層級設定,並視需要在版位層級覆寫。
// Page-level default targeting.
googletag.pubads().setTargeting('interests', 'basketball')
.setTargeting('position', 'btf');
// Slot-level targeting overrides.
adSlots[0] = googletag
.defineSlot('/6355419/Travel/Asia', [728, 90], 'banner-ad-1')
.addService(googletag.pubads())
.setTargeting('color', 'red')
.setTargeting('position', 'atf');
adSlots[1] = googletag
.defineSlot('/6355419/Travel/Asia', [728, 90], 'banner-ad-2')
.addService(googletag.pubads());
您也可以在呼叫 setTargeting()
時提供值陣列,為單一鍵指定多個值:
// Page-level targeting with multiple values for a single key.
googletag.pubads().setTargeting('interests', ['baseball', 'basketball']);
清除指定目標
指定目標後,系統會在廣告版位的整個生命週期內,隨每個廣告請求傳送已設定的鍵/值。不過,在某些情況下,指定目標可能會隨著時間變動。雖然 setTargeting()
可用於新增及覆寫鍵/值,但無法以這種方式移除。為此,您必須改用 Slot.clearTargeting() 或 googletag.pubads().clearTargeting()。
// Step 0, define slot- and page-level targeting. adSlots[0] = googletag .defineSlot("/6355419/Travel/Asia", [728, 90], "banner-ad-1") .addService(googletag.pubads()) .setTargeting("color", "red") .setTargeting("position", "atf"); googletag.pubads().setTargeting("interests", "basketball"); // Step 1, clear slot-level color targeting. adSlots[0].clearTargeting("color"); // Step 2, clear all page-level targeting. googletag.pubads().clearTargeting();
當 clearTargeting()
以特定鍵 (在版位或網頁層級) 呼叫時,系統只會移除該鍵。如未指定鍵,系統會移除該層級的所有指定目標。
在上述範例中,每個步驟後廣告版位的有效指定目標如下:
步驟 | 有效指定目標 |
---|---|
0 | color=red AND position=atf AND interests=basketball |
1 | position=atf AND interests=basketball |
2 | position=atf |