ノンスを生成する
「ノンス」NonceLoader
を使用して PAL で生成される単一の暗号化された文字列です。
PAL SDK では、新しいストリーム リクエストに毎回、新しいストリーム
生成されるノンス。ただし、ノンスは
同じストリーム内に表示されますPAL を使用してノンスを生成するサンプルアプリを確認するには、こちらからダウンロードしてください。
GitHub の HTML5 サンプルをご覧ください。
PAL SDK を使用してノンスを生成するには、HTML ファイルを作成して 次のとおりです。
pal.html
<html>
<head></head>
<body>
<div id="placeholder-video"></div>
<button id="generate-nonce">Generate Nonce</button>
<script src="//imasdk.googleapis.com/pal/sdkloader/pal.js"></script>
<script src="pal.js"></script>
</body>
</html>
次に、JavaScript ファイルを作成して以下を追加します。
pal.js
let videoElement;
let nonceLoader;
let managerPromise;
let nonceManager;
let storageConsent = true;
let playbackStarted = false;
/**
* A placeholder for the publisher's own method of obtaining user
* consent, either by integrating with a CMP or based on other
* methods the publisher chooses to handle storage consent.
* @return {boolean} Whether storage consent has been given.
*/
function getConsentToStorage() {
return storageConsent;
}
/**
* Initializes the PAL loader.
*/
function init() {
const videoElement = document.getElementById('placeholder-video');
videoElement.addEventListener('mousedown', (e) => void onVideoTouch(e));
videoElement.addEventListener('touchstart', (e) => void onVideoTouch(e));
videoElement.addEventListener('play', () => {
if (!playbackStarted) {
sendPlaybackStart();
playbackStarted = true;
}
});
videoElement.addEventListener('ended', () => void sendPlaybackEnd());
videoElement.addEventListener('error', () => {
console.log("Video error: " + videoElement.error.message);
sendPlaybackEnd();
});
document.getElementById('generate-nonce')
.addEventListener('click', generateNonce);
// The default value for `allowStorage` is false, but can be
// changed once the appropriate consent has been gathered.
const consentSettings = new goog.pal.ConsentSettings();
consentSettings.allowStorage = getConsentToStorage();
nonceLoader = new goog.pal.NonceLoader(consentSettings);
}
/**
* Generates a nonce with sample arguments and logs it to the console.
*
* The NonceRequest parameters set here are example parameters.
* You should set your parameters based on your own app characteristics.
*/
function generateNonce() {
const request = new goog.pal.NonceRequest();
request.adWillAutoPlay = true;
request.adWillPlayMuted = false;
request.continuousPlayback = false;
request.descriptionUrl = 'https://example.com';
request.iconsSupported = true;
request.playerType = 'Sample Player Type';
request.playerVersion = '1.0';
request.ppid = 'Sample PPID';
request.sessionId = 'Sample SID';
// Player support for VPAID 2.0, OMID 1.0, and SIMID 1.1
request.supportedApiFrameworks = '2,7,9';
request.url = 'https://developers.google.com/ad-manager/pal/html5';
request.videoHeight = 480;
request.videoWidth = 640;
managerPromise = nonceLoader.loadNonceManager(request);
managerPromise
.then((manager) => {
nonceManager = manager;
console.log('Nonce generated: ' + manager.getNonce());
})
.catch((error) => {
console.log('Error generating nonce: ' + error);
});
}
init();
広告リクエストにノンスを追加する
生成されたノンスを使用するには、広告タグの末尾に givn
パラメータと
ノンス値を設定してから、広告リクエストを送信してください。
pal.js
/**
* The ad tag for your ad request, for example:
* https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=
*
* For more sample ad tags, see https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/tags
*/
const DEFAULT_AD_TAG = "Your ad tag";
...
managerPromise = nonceLoader.loadNonceManager(request);
managerPromise
.then((manager) => {
nonceManager = manager;
console.log('Nonce generated: ' + manager.getNonce());
// Append the nonce to the ad tag URL.
makeAdRequest(DEFAULT_AD_TAG + "&givn=" + nonceString);
})
再生イベントを追跡する
最後に、プレーヤー用にさまざまなイベント ハンドラを実装する必要があります。対象 テスト用にこれらをボタンクリック イベントにアタッチできますが、 実装すると、これらは適切なプレーヤー イベントによってトリガーされます。
pal.js
/**
* Informs PAL that an ad click has occurred. How this function is
* called will vary depending on your ad implementation.
*/
function sendAdClick() {
nonceManager?.sendAdClick();
}
/**
* Handles the user touching on the video element, passing it to PAL.
* @param {!TouchEvent|!MouseEvent} touchEvent
*/
function onVideoTouch(touchEvent) {
nonceManager?.sendAdTouch(touchEvent);
}
/** Informs PAL that playback has started. */
function sendPlaybackStart() {
nonceManager?.sendPlaybackStart();
}
/** Informs PAL that playback has ended. */
function sendPlaybackEnd() {
nonceManager?.sendPlaybackEnd();
}
実装では、動画が再生されたら sendPlaybackStart
を呼び出す必要があります。
再生セッションが開始されます。動画が再生されたら、sendPlaybackEnd
が呼び出されます
終了します。sendAdClick
は、
視聴者が広告をクリックする。タップ操作のたびに sendAdTouch
を呼び出す
プレーヤーと一緒に移動します。
(省略可)第三者広告サーバーを介して Google アド マネージャーのシグナルを送信する
第三者広告サーバーからのアド マネージャーのリクエストを設定します。
第三者の広告サーバーを設定し、サーバーの アド マネージャーに送信します。このスライドは、 指定することもできます。
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
詳しくは、Google アド マネージャーのサーバーサイドの実装 ガイドをご覧ください。
アド マネージャーでは、givn=
を探してノンスの値を識別します。第三者の広告
独自のマクロをいくつかサポートする必要があります。
%%custom_key_for_google_nonce%%
を実行し、ノンス クエリ パラメータに置き換えます。
確認します。詳細な手順
第三者広告サーバーのドキュメントをご覧ください
これで、これで、PAL SDK からノンス パラメータが伝播されたはずです。 中継サーバー経由で Google アドマネージャーに 送信されますこれにより、 Google アドマネージャーを通じた収益化