セキュア シグナルは、クライアント デバイスで収集され、選択したビッダーと共有されるエンコードされたデータです。このガイドでは、IMA SDK を使用して安全なシグナルを収集し、Google アド マネージャーに送信する方法について説明します。
シグナルとビッダーを選択してセキュア シグナルの共有を有効にするには、ビッダーとセキュア シグナルを共有するをご覧ください。
サードパーティのシグナル プロバイダを使用する
セキュア シグナルを使用するには、サイトにシグナル コレクタ スクリプトをデプロイして、シグナルを収集、エンコードし、IMA SDK に渡す必要があります。
セキュア シグナル スクリプトは、自動または手動でデプロイします。
自動的にデプロイする
アド マネージャーでシグナル プロバイダを選択する際に、選択したシグナル プロバイダによっては、お客様に代わってシグナル収集スクリプトをデプロイするよう Google にリクエストするオプションが表示されることがあります。このオプションを選択すると、サイトに Google パブリッシャータグが含まれている場合、選択したシグナル収集スクリプトが自動的に読み込まれます。
アド マネージャーの 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>
手動でデプロイする
アド マネージャーに [Google がお客様の代わりにシグナル収集スクリプトをデプロイするようリクエストする] オプションが表示されない場合、またはこのオプションをオンにしない場合は、セキュア シグナル プロバイダからスクリプト リンクを取得し、プロジェクトに手動で追加する必要があります。
アド マネージャーの 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>
カスタムデータを送信する
サードパーティのシグナル プロバイダを使用するだけでなく、カスタムデータを使用してシグナルを収集、エンコード、送信することもできます。カスタムデータでセキュア シグナルを送信するには、アド マネージャーでカスタム シグナルを有効にする必要があります。
HTML5 プロジェクトの手順は次のとおりです。
networkCodeとcollectorFunctionのプロパティを持つオブジェクトを作成します。networkCodeプロパティにネットワーク コードを入力します。collectorFunctionプロパティに、エンコードされたシグナルに解決される Promise を返す関数を設定します。
IMA SDK がアクセスしてエンコードされたシグナルを取得、送信できるように、`adsLoader` インスタンスを作成する前にオブジェクトを googletag.secureSignalProviders 配列にプッシュします。
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);