安全信號

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

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

使用第三方信號供應器

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

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

自動部署

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

以下是您在 Ad Manager UI 中可能看到的範例:

以下是網站 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 UI 中可能看到的範例:

以下是網站 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 屬性,該函式會傳回解析為已編碼信號的承諾。

在例項化 adsLoader 之前,請將物件推送至 googletag.secureSignalProviders 陣列,以便 IMA SDK 存取該物件,擷取及傳送已編碼的信號。

以下是 JavaScript 範例:

ads.js

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

const NETWORK_CODE = '12345678901';
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);
...