Nonce generieren
Eine „Nonce“ ist ein einzelner verschlüsselter String, der von PAL mithilfe von NonceLoader
generiert wird.
Für das PAL SDK muss jede neue Streamanfrage mit einer neuen
die neu generierte Nonce. Nonces können jedoch für mehrere Anzeigenanfragen innerhalb
denselben Stream ansehen. Wenn Sie sich eine Beispiel-App ansehen möchten, die mit PAL eine Nonce generiert, laden Sie
das HTML5-Beispiel von GitHub.
Erstellen Sie zum Generieren einer Nonce mit dem PAL SDK eine HTML-Datei und fügen Sie Folgendes:
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 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();
Nonce an die Anzeigenanfrage anhängen
Um die generierte Nonce zu verwenden, hängen Sie Ihr Anzeigen-Tag mit einem givn
-Parameter und dem
Nonce-Wert zu verwenden, bevor Sie Ihre Anzeigenanfragen stellen.
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);
})
Wiedergabeereignisse verfolgen
Schließlich müssen Sie verschiedene Ereignis-Handler für Ihren Player implementieren. Für können Sie sie an Schaltflächen-Click-Events anhängen. Implementierung, werden sie durch die entsprechenden Player-Ereignisse 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();
}
Bei der Implementierung sollte sendPlaybackStart
aufgerufen werden, sobald das Video
die Wiedergabe startet. sendPlaybackEnd
sollte aufgerufen werden, sobald dein Video
Wiedergabesitzung zu Ende geht. sendAdClick
sollte jedes Mal aufgerufen werden, wenn der
wenn der Nutzer auf eine Anzeige klickt. sendAdTouch
sollte bei jeder Berührungsinteraktion aufgerufen werden.
mit dem Player.
(Optional) Google Ad Manager-Signale über Ad-Server eines Drittanbieters senden
Konfigurieren Sie die Anfrage des Ad-Servers eines Drittanbieters an Ad Manager.
Konfigurieren Sie den Ad-Server eines Drittanbieters so, dass die Nonce im an Ad Manager senden. Hier sehen Sie ein Beispiel für ein Anzeigen-Tag, das im eines Drittanbieter-Ad-Servers:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
Weitere Informationen finden Sie unter Serverseitige Google Ad Manager-Implementierung .
In Ad Manager wird nach givn=
gesucht, um den Nonce-Wert zu ermitteln. Drittanbieteranzeige
muss ein eigenes Makro unterstützen, z. B.
%%custom_key_for_google_nonce%%
und ersetzen Sie es durch den Nonce-Abfrageparameter.
die Sie im vorherigen Schritt angegeben haben. Weitere Informationen dazu, wie Sie dies erreichen
in der Dokumentation des Drittanbieter-Ad-Servers verfügbar sein.
Fertig! Der Nonce-Parameter sollte nun vom PAL SDK weitergegeben werden. zwischen den Servern und dann an Google Ad Manager übertragen werden. Dies ermöglicht mit Google Ad Manager zu optimieren.