整合安全信號轉接器

安全信號是從用戶端裝置收集並與特定出價方共用的編碼資料。本指南說明如何使用 IMA SDK 收集安全信號,並傳送至 Google Ad Manager。

如要選取信號和出價方,並啟用安全信號共用功能,請參閱「與出價方共用安全信號」。

使用第三方信號供應商

如要使用安全信號,請務必在網站上部署信號收集器指令碼,收集信號、編碼,然後傳遞至 IMA SDK。

您可以自動或手動部署安全信號指令碼。

自動部署

在 Ad Manager 中選取信號供應商時,視所選信號供應商而定,您可能會看到「請 Google 代您部署信號收集指令碼」選項。如果選取這個選項,且網站包含 Google 發布商廣告代碼,系統就會自動載入您選擇的信號收集器指令碼。

以下是您在 Ad Manager 使用者介面中可能看到的內容:

以下是網站 index.html 檔案的範例:

<script src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
<!-- Load gpt.js, which autoloads all signal provider scripts configured to be
  deployed by Google. -->
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script src="ads.js"></script>

手動部署

如果 Ad Manager 中沒有「請 Google 代表您部署信號收集指令碼」選項,或您未開啟這個選項,則必須向安全信號供應商取得指令碼連結,並手動將連結加入專案。

以下是您在 Ad Manager 使用者介面中可能看到的內容:

以下是網站 index.html 檔案的範例:

<script src="//imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
<!-- Load signal provider scripts manually, using the unique instructions given by each
  signal provider. -->
<script src="//cdn.provider1.com/files/a/e/5/4/7/signalCollector.js"></script>
<script src="//provider2.co.uk/ads/signalcollector/script.min.js"></script>
<script src="/local/path/to/third_party_signal_provider_3.js"></script>
<script src="ads.js"></script>

傳送自訂資料

除了使用第三方信號供應商,您也可以收集、編碼及傳送信號和自訂資料。如要傳送含有自訂資料的安全信號,請務必先在 Ad Manager 中啟用自訂信號。

HTML5 專案的步驟如下:

  1. 建立具有下列屬性的物件:networkCodecollectorFunction
  2. networkCode 屬性中填入聯播網代碼
  3. collectorFunction 屬性中填入函式,該函式會傳回可解析為編碼信號的 Promise。

在例項化 adsLoader 之前,請將物件推送至 googletag.secureSignalProviders 陣列,讓 IMA SDK 能夠存取該物件,以擷取及傳輸編碼信號:

以下是 JavaScript 範例:

console.log("initializing IMA");
adContainer = document.getElementById('ad-container');
adDisplayContainer = new google.ima.AdDisplayContainer(adContainer, videoElement);

const NETWORK_CODE = '21775744923';

/**
 * Sample signal collector function.
 * @return {!Promise<string>} A promise that resolves to the encoded signals.
 */
const signalCollector = () => {
 return new Promise((resolve, reject) => {
   resolve("My encoded signal string");
 });
};
if (!googletag) googletag = {};
if (!googletag.secureSignalProviders) googletag.secureSignalProviders = [];
googletag.secureSignalProviders.push({
 networkCode: NETWORK_CODE,
 collectorFunction: signalCollector
});

adsLoader = new google.ima.AdsLoader(adDisplayContainer);