Genera un nonce
Un "nonce" è una singola stringa criptata generata da PAL utilizzando NonceLoader
.
L'SDK PAL richiede che ogni nuova richiesta di streaming sia accompagnata da un nuovo
nonce generato. Tuttavia, i nonce possono essere riutilizzati per più richieste di annunci in
lo stesso flusso. Per visualizzare un'app di esempio che utilizza PAL per generare un nonce, scarica
l'esempio HTML5 tratto da GitHub.
Per generare un nonce utilizzando l'SDK PAL, crea un file HTML e aggiungi il seguenti:
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>
Quindi, crea un file JavaScript e aggiungi quanto segue:
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();
Allega il tuo nonce alla richiesta di annuncio
Per utilizzare il nonce generato, aggiungi al tag annuncio un parametro givn
e la macro
nonce prima di effettuare le richieste di annunci.
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);
})
Monitorare gli eventi di riproduzione
Infine, devi implementare vari gestori di eventi per il player. Per per scopi di test, puoi collegarli agli eventi di clic sui pulsanti, ma in realtà vengono attivati dagli eventi del player appropriati:
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();
}
Nella tua implementazione, sendPlaybackStart
deve essere chiamato una volta che il tuo video
inizia la sessione di riproduzione. sendPlaybackEnd
dovrebbe essere chiamato quando il tuo video
la sessione di riproduzione al termine. sendAdClick
deve essere chiamato ogni volta che
Uno spettatore fa clic su un annuncio. sendAdTouch
deve essere chiamata a ogni interazione touch
con il player.
(Facoltativo) Inviare indicatori di Google Ad Manager tramite ad server di terze parti
Configura la richiesta dell'ad server di terze parti per Ad Manager.
Configura l'ad server di terze parti in modo da includere il nonce nel richiesta ad Ad Manager. Di seguito è riportato un esempio di un tag annuncio configurato all'interno della ad server di terze parti:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
Per ulteriori dettagli, consulta Implementazione lato server di Google Ad Manager .
Ad Manager cerca givn=
per identificare il valore nonce. L'annuncio di terze parti
server deve supportare alcune macro, come
%%custom_key_for_google_nonce%%
e sostituiscilo con il parametro di query nonce
che hai fornito nel passaggio precedente. Ulteriori informazioni su come eseguire questa operazione
devono essere disponibili
nella documentazione dell'ad server di terze parti.
È tutto. A questo punto dovresti propagare il parametro nonce dall'SDK PAL. tramite i server intermediari e poi a Google Ad Manager. Ciò consente una migliore monetizzazione tramite Google Ad Manager.