安全信號是從用戶端裝置收集並與特定出價方共用的編碼資料。本指南說明如何使用 IMA SDK 收集安全信號,並傳送至 Google Ad Manager。
如要選取信號和出價方,並啟用安全信號共用功能,請參閱「與出價方共用安全信號」。
使用第三方信號供應商
如要使用安全信號,請務必在網站上部署信號收集器指令碼,收集信號、編碼並傳遞至 IMA SDK。
您可以自動或手動部署安全信號指令碼。
自動部署
在 Ad Manager 中選取信號供應商時,視所選信號供應商而定,您可能會看到「請 Google 代您部署信號收集指令碼」選項。如果選取這個選項,且網站包含 Google 發布商廣告代碼,系統就會自動載入您選擇的信號收集器指令碼。
以下是 Ad Manager 使用者介面中可能顯示的內容範例:
以下是網站 index.html
檔案的範例:
<script src="//imasdk.googleapis.com/js/sdkloader/ima3_dai.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="dai.js"></script>
手動部署
如果 Ad Manager 中沒有「請 Google 代您部署信號收集指令碼」選項,或您未開啟這個選項,請向安全信號供應商索取指令碼連結,並手動將連結加入專案。
以下是 Ad Manager 使用者介面中可能顯示的內容範例:
以下是網站 index.html
檔案的範例:
<script src="//imasdk.googleapis.com/js/sdkloader/ima3_dai.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="dai.js"></script>
傳送自訂資料
除了使用第三方信號供應商,您也可以收集、編碼及傳送信號和自訂資料。如要傳送含有自訂資料的安全信號,請務必先在 Ad Manager 中啟用自訂信號。
HTML5 專案的步驟如下:
- 建立具有下列屬性的物件:
networkCode
和collectorFunction
。 - 在
networkCode
屬性中填入聯播網代碼。 - 在
collectorFunction
屬性中填入函式,該函式會傳回可解析為編碼信號的 Promise。
在建立 `streamManager` 執行個體之前,請將物件推送至 googletag.secureSignalProviders
陣列,讓 IMA SDK 能夠存取該物件,進而擷取及傳輸編碼信號:
以下是 JavaScript 範例:
console.log("initializing IMA");
videoElement = document.getElementById('video');
adUiElement = document.getElementById('adUi');
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
});
streamManager = new google.ima.dai.api.StreamManager(videoElement, adUiElement);