تولید یک نانس
«نانس» رشتهای رمزگذاریشده و یکتا است که PAL بااستفاده از NonceLoader تولید میکند.
«کیت توسعه نرمافزار PAL» نیاز دارد که هر درخواست جاریسازی جدید با یک نانس جدیداً تولیدشده همراه باشد. بااینحال، از اعداد یکبارمصرف میتوان برای چندین درخواست آگهی در
جریان یکسان استفاده کرد. برای دیدن برنامه نمونهای که از PAL برای تولید یک nonce استفاده میکند،
نمونه HTML5 را از GitHub بارگیری کنید.
برای تولید یک nonce بااستفاده از 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>
سپس، یک فایل جاوا اسکریپت ایجاد کنید و موارد زیر را اضافه کنید:
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();
عدد یکبارمصرف را به درخواست آگهی پیوست کنید
برای استفاده از نانس تولیدشده، برچسب آگهیتان را با پارامتر 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);
})
اگر از Google درخواست آگهی میکنید و آگهیها را ارائه میکنید، باید نماد و رونهاد AdChoices را ارائه کنید. برای جزئیات مربوط به تجزیه پاسخ VAST و پرداز کردن نمادها، به نماد و رونهاد AdChoices مراجعه کنید.
ردیابی رویدادهای بازپخش
در آخر، باید چندین مدیریتکننده رویداد را برای پخشکننده خود پیادهسازی کنید. برای اهداف آزمایش، میتوانید اینها را به رویدادهای کلیک دکمه پیوست کنید، اما در پیادهسازی واقعی، اینها با رویدادهای پخشکننده مناسب راهاندازی میشوند:
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 Ad Manager ازطریق سرورهای آگهی طرف سوم
درخواست سرور آگهی طرف سوم را برای Ad Manager پیکربندی کنید.
سرور آگهی طرف سوم خود را پیکربندی کنید تا مقدار یکبارمصرف را در درخواست سرور به Ad Manager بگنجاند. در اینجا نمونهای از برچسب آگهی پیکربندیشده در سرور آگهی طرف سوم آورده شده است:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
برای جزئیات بیشتر، راهنمای پیادهسازی سمت سرور Google Ad Manager را ببینید.
Ad Manager بهدنبال givn= میگردد تا مقدار تکمنشی را شناسایی کند. کارساز آگهی طرف سوم باید از برخیاز کلانهای خود، مثل
%%custom_key_for_google_nonce%%، پشتیبانی کند و آن را با پارامتر پُرسمان یکبارمصرف
که در مرحله قبلی ارائه کردید جایگزین کند. اطلاعات بیشتر درباره نحوه انجام این کار
باید در اسناد سرور آگهی طرف سوم دردسترس باشد.
فقط همین! اکنون باید پارامتر nonce را از کیت توسعه نرمافزار PAL، ازطریق سرورهای واسطه خود، و سپس به Google Ad Manager منتقل کنید. این کار باعث بهتر شدن درآمدزایی ازطریق Google Ad Manager میشود.