セキュア シグナルは、クライアント デバイスで収集され、一部のビッダーと共有されるエンコードされたデータです。このガイドでは、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
プロパティに、エンコードされたシグナルに解決するプロミスを返す関数を入力します。
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);
...