Gerar um valor de uso único
Um valor de uso único é uma única string criptografada gerada pela PAL usando o NonceLoader
.
O SDK da PAL exige que cada nova solicitação de fluxo seja acompanhada por um novo
o valor de uso único gerado. No entanto, os valores de uso único podem ser reutilizados para várias solicitações de anúncios
no mesmo fluxo. Para conferir um app de exemplo que usa a PAL para gerar um valor de uso único, faça o download
o exemplo de HTML5 do GitHub.
Para gerar um valor de uso único com o SDK da PAL, crie um arquivo HTML e adicione o seguinte:
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>
Em seguida, crie um arquivo JavaScript e adicione o seguinte:
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();
Anexar seu valor de uso único à solicitação de anúncio
Para utilizar o valor de uso único gerado, anexe sua tag de anúncio com um parâmetro givn
e as
valor de uso único antes de fazer as solicitações de anúncios.
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);
})
Rastrear eventos de reprodução
Por fim, você precisa implementar vários manipuladores de eventos para seu player. Para de teste, você pode anexá-los a eventos de clique de botão, mas em uma situação real implementação, elas seriam acionadas pelos eventos apropriados do player:
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();
}
Na sua implementação, sendPlaybackStart
precisa ser chamado assim que o vídeo
iniciar a sessão de reprodução. sendPlaybackEnd
deve ser chamado assim que seu vídeo
a sessão de reprodução de vídeo seja encerrada. sendAdClick
precisa ser chamado sempre que o
espectador clica em um anúncio. sendAdTouch
precisa ser chamado em todas as interações de toque.
com o jogador.
(Opcional) Enviar indicadores do Google Ad Manager por servidores de anúncios de terceiros
Configure a solicitação do servidor de anúncios de terceiros para o Ad Manager.
Configure seu servidor de anúncios de terceiros para incluir o valor de uso único na variável ao Ad Manager. Veja um exemplo de tag de anúncio configurada dentro do servidor de anúncios de terceiros:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
Para mais detalhes, consulte a Implementação do lado do servidor do Google Ad Manager guia.
O Ad Manager procura por givn=
para identificar o valor de uso único. O anúncio de terceiros
servidor precisa suportar algumas macros próprias, como
%%custom_key_for_google_nonce%%
e a substitua pelo parâmetro de consulta de valor de uso único.
que você forneceu na etapa anterior. Mais informações sobre como fazer isso
deve estar disponível na documentação do servidor de anúncios de terceiros.
Pronto! Agora você tem o parâmetro de valor de uso único propagado do SDK da PAL. por meio dos servidores intermediários e depois para o Google Ad Manager. Isso permite a monetização com o Google Ad Manager.