セキュア シグナルは、クライアント デバイスで収集され、選択したビッダーと共有されるエンコードされたデータです。このガイドでは、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);