Nonce generieren
Eine „Nonce“ ist ein einzelner verschlüsselter String, der von PAL mit dem NonceLoader generiert wird.
Das PAL SDK erfordert, dass jede neue Streamanfrage von einer neu generierten Nonce begleitet wird. Nonces können jedoch für mehrere Anzeigenanfragen innerhalb desselben Streams wiederverwendet werden. Wenn Sie eine Beispiel-App sehen möchten, in der mit PAL eine Nonce generiert wird, laden Sie das HTML5-Beispiel von GitHub herunter.
So generieren Sie eine Nonce mit dem PAL SDK: Erstellen Sie eine HTML-Datei und fügen Sie Folgendes hinzu:
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>
Erstellen Sie dann eine JavaScript-Datei und fügen Sie Folgendes hinzu:
pal.js
let videoElement;
let nonceLoader;
let managerPromise;
let nonceManager;
let playbackStarted = false;
/**
* 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);
// PAL automatically determines whether limited ads apply based on the TCF data
// found on the page. You can optionally use the `forceLimitedAds` parameter
// to manually enable limited ads regardless of the TCF data.
const consentSettings = new goog.pal.ConsentSettings();
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();
Nonce an die Anzeigenanfrage anhängen
Wenn Sie die generierte Nonce verwenden möchten, hängen Sie vor dem Senden Ihrer Anzeigenanfragen den Parameter givn und den Nonce-Wert an Ihr Anzeigen-Tag an.
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);
})
Wenn Sie Anzeigen von Google anfordern und rendern, müssen Sie das AdChoices und das zugehörige Overlay rendern. Weitere Informationen zum Parsen der VAST-Antwort und zum Rendern von Symbolen finden Sie unter Datenschutzinfo-Symbol und ‑Overlay.
Wiedergabeereignisse erfassen
Schließlich müssen Sie verschiedene Ereignishandler für Ihren Player implementieren. Zu Testzwecken können Sie diese an Schaltflächen-Click-Events anhängen. In einer echten Implementierung werden sie jedoch durch die entsprechenden Player-Events ausgelöst:
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();
}
In Ihrer Implementierung sollte sendPlaybackStart aufgerufen werden, sobald die Videowiedergabe beginnt. sendPlaybackEnd sollte aufgerufen werden, sobald die Videowiedergabe beendet ist. sendAdClick sollte jedes Mal aufgerufen werden, wenn der Zuschauer auf eine Anzeige klickt. sendAdTouch sollte bei jeder Touch-Interaktion mit dem Player aufgerufen werden.
(Optional) Google Ad Manager-Signale über Ad-Server von Drittanbietern senden
Konfigurieren Sie die Anfrage des Drittanbieter-Ad-Servers für Ad Manager.
Konfigurieren Sie den Ad-Server eines Drittanbieters so, dass die Nonce in die Serveranfrage an Ad Manager aufgenommen wird. Hier ein Beispiel für ein Anzeigen-Tag, das auf dem Ad-Server eines Drittanbieters konfiguriert ist:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
Weitere Informationen finden Sie im Leitfaden zur serverseitigen Implementierung von Google Ad Manager.
In Ad Manager wird nach givn= gesucht, um den Nonce-Wert zu ermitteln. Der Ad‑Server des Drittanbieters muss ein eigenes Makro wie %%custom_key_for_google_nonce%% unterstützen und es durch den Nonce-Abfrageparameter ersetzen, den Sie im vorherigen Schritt angegeben haben. Weitere Informationen dazu finden Sie in der Dokumentation des Drittanbieter-Ad-Servers.
Geschafft! Der Nonce-Parameter sollte jetzt vom PAL SDK über Ihre Vermittlungsserver an Google Ad Manager weitergegeben werden. So lässt sich die Monetarisierung über Google Ad Manager verbessern.