Ön koşullar
Cast için PAL SDK'sını entegre etmek ve test etmek üzere şunlara ihtiyacınız vardır:
Aşağıdakini kullanarak bir tek seferlik rastgele sayı oluşturmak için bir alıcı uygulama mesaj devre dışı bırakabilirsiniz.
Alıcının yüklemesini tetikleyecek bir gönderen uygulaması Reklam isteği barındıran içerik.
PAL SDK'sını entegre etmek için alıcı uygulamanızı yalnızca güncellemeniz gerektiğinden, Cast Komut ve Kontrol (CAC) Aracı'nı kullanabilirsiniz. web'de bir gönderen olarak alıcınızı test edin.
Önce web sunucunuzu başlatarak her adımın sonunda örneği çalıştırabilirsiniz alıcı uygulaması aracını kullanarak yükleme isteğinde bulunun.
Tek seferlik rastgele sayı oluştur
Bir "tek seferlik rastgele sayı" PAL tarafından
NonceManager
. İlgili içeriği oluşturmak için kullanılan
NonceManager
,
loadNonceManager
NonceLoader
yöntemini kullanıyorsanız
bir
NonceRequest
Bir
tek seferlik rastgele sayı oluşturmak için PAL kullanan örnek uygulama, Cast örneğini şuradan indirin:
GitHub'a gidin.
Her yeni akış isteği için yeni bir tek seferlik rastgele sayı gerekir. Aynı aynı akışı kullanabilir. PAL SDK'yı kullanarak tek seferlik bir tek seferlik rastgele sayı oluşturmak için önce Özelleştirilen bir web alıcısı oluşturmak uygulama ve aşağıdaki kodu ekleyin:
receiver.html
<!DOCTYPE html>
<html>
<head>
<script src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/pal/sdkloader/cast_pal.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<footer>
<script src="js/receiver.js" type="module"></script>
</footer>
</body>
</html>
<cast-media-player>
öğesi,
Yayın Web Alıcı API'si. Yayın türüne bağlı olarak, kullanılan oynatıcı
değişiklik gösterebilir. Bu oynatıcıların tam sürümlerini Google Cast'te bulabilirsiniz
SDK sürüm notları.
Sonra, aşağıdaki kodu ekleyerek YÜKLEYİN
etkinlikler
alıcı her yeni öğe yüklediğinde bir tek seferlik rastgele sayı üretir
MediaInformation
nesne:
js/receiver.js
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const consentSettings = new goog.cast.pal.ConsentSettings();
// For the correct usage of the allowStorage property, See
// developers.google.com/ad-manager/pal/cast/reference/js/ConsentSettings#allowStorage.
consentSettings.allowStorage = true;
// You need a nonce loader to request your stream's nonceManager. The
// nonceManager provides your nonce. You should reuse the same nonce loader for
// the entire lifecycle of the receiver.
const nonceLoader = new goog.cast.pal.NonceLoader(consentSettings);
// You need a reference to the NonceManager to track when an ad is shown or
// clicked.
let nonceManager;
/**
* Sends a debug message to the CAF sender.
*
* @param {String} message - The message to send
*/
const log = (message) => {
// Use CastDebugLogger to log a message to the sender. See
// https://developers.google.com/cast/docs/debugging/cast_debug_logger.
}
/**
* Stores the nonce manager in the outer scoped variable and retrieves a nonce,
* so it can be used to build your ad request URL
*
* @param {NonceManager} loadedNonceManager - The loaded nonce manager
*/
const buildAdRequest = (loadedNonceManager) => {
nonceManager = loadedNonceManager;
const nonce = nonceManager.getNonce();
log('received nonce:' + nonce);
// TODO: Set this nonce as the value for the `givn` parameter of your ad
// request URL. For example:
// const adRequestURL = 'https://myadserver.com/ads?givn=' + nonce;
}
/**
* Configures a new nonce request, then requests a nonce.
*
* @param {LoadRequestData} loadRequestData - the load request object,
* which contains the MediaInformation object from the sender. See
* developers.google.com/cast/docs/reference/web_receiver/cast.framework.messages.LoadRequestData
* @return {(Promise<LoadRequestData>)} - A Promise to build an ad request.
*/
const handleLoadRequest = (loadRequestData) => {
// Clear any old nonceManager before loading new media.
nonceManager = null;
// See developers.google.com/ad-manager/pal/cast/reference/js/NonceRequest
// for details about each property. The NonceRequest parameters set here are
// example parameters. You should set your parameters based on your own app
// characteristics.
const nonceRequest = new goog.cast.pal.NonceRequest();
nonceRequest.adWillAutoPlay = true;
// A URL describing the video stream.
nonceRequest.descriptionUrl = 'https://example.com';
nonceRequest.iconsSupported = true;
nonceRequest.ppid = 'Sample PPID';
nonceRequest.sessionId = 'Sample SID';
nonceRequest.url = loadRequestData.media.contentUrl;
// The height of the player in physical pixels.
// For a fullscreen player on a 1080p screen, the video height would be 1080.
nonceRequest.videoHeight = window.devicePixelRatio * window.screen.height;
// The width of the player in physical pixels.
// For a fullscreen player on a 1080p screen, the video width would be 1920.
nonceRequest.videoWidth = window.devicePixelRatio * window.screen.width;
return nonceLoader.loadNonceManager(nonceRequest)
.then(buildAdRequest)
.catch((e) => {
log("Error: " + e.message);
});
};
// Set up the event handler for the LOAD event type.
playerManager.setMessageInterceptor(cast.framework.messages.MessageType.LOAD, handleLoadRequest);
castContext.start();
Doğrudan VAST çağrınızı (DVC) yaparken, bu tek seferlik rastgele sayıdaki değeri
givn
parametresinden yararlanın. Tek seferlik rastgele sayı URL açısından güvenlidir; URL olarak kodlamanız gerekmez.
Video etkileşimlerini izleme
PAL SDK'sı tek seferlik rastgele sayı oluşturmanın yanı sıra belirli video etkileşimleri Yayın alıcıyla etkileşimleri izlemek için özel alıcınıza aşağıdaki kodu ekleyin:
js/receiver.js
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const consentSettings = new goog.cast.pal.ConsentSettings();
// For the correct usage of the allowStorage property, See
// developers.google.com/ad-manager/pal/cast/reference/js/ConsentSettings#allowStorage.
consentSettings.allowStorage = true;
// You need a nonce loader to request your stream's nonceManager. The
// nonceManager provides your nonce. You should reuse the same nonce loader for
// the entire lifecycle of the receiver.
const nonceLoader = new goog.cast.pal.NonceLoader(consentSettings);
// You need a reference to the NonceManager for sending ad events.
let nonceManager;
// Track playback status.
let playbackDidStart = false;
...
// Register the start of playback.
playerManager.addEventListener(cast.framework.events.EventType.PLAYING, () => {
if (playbackDidStart) return;
playbackDidStart = true;
if (nonceManager) {
log('Registered playback start');
nonceManager.sendPlaybackStart();
} else {
log("Error: There is no nonce manager for this media.");
}
});
// Register any interactions with the player.
const interactionEvents = [
cast.framework.events.EventType.REQUEST_SEEK,
cast.framework.events.EventType.REQUEST_STOP,
cast.framework.events.EventType.REQUEST_PAUSE,
cast.framework.events.EventType.REQUEST_PLAY,
cast.framework.events.EventType.REQUEST_SKIP_AD,
cast.framework.events.EventType.REQUEST_PLAY_AGAIN,
cast.framework.events.EventType.REQUEST_PLAYBACK_RATE_CHANGE,
cast.framework.events.EventType.REQUEST_VOLUME_CHANGE,
cast.framework.events.EventType.REQUEST_USER_ACTION,
cast.framework.events.EventType.REQUEST_FOCUS_STATE,
];
playerManager.addEventListener(interactionEvents, (interactionEvent) => {
if (nonceManager) {
log('Registered interaction: ' + interactionEvent);
nonceManager.sendAdTouch(interactionEvent);
} else {
log("Error: There is no nonce manager for this media.");
}
});
// Register the end of playback.
playerManager.addEventListener(cast.framework.events.EventType.MEDIA_FINISHED, () => {
playbackDidStart = false;
if (nonceManager) {
log('Registered playback end');
nonceManager.sendPlaybackEnd();
} else {
log("Error: There is no nonce manager for this media.");
}
});
castContext.start();
(İsteğe bağlı) Üçüncü taraf reklam sunucuları üzerinden Google Ad Manager sinyalleri gönderme
Üçüncü taraf reklam sunucusunun Ad Manager isteğini yapılandırın. Siz aşağıdaki adımları tamamlayın. "nonce" parametresi, PAL SDK'sından yayılır. aracı sunucularınıza ve ardından Google Ad Manager'a gönderebilirsiniz. Bu durumda, Google Ad Manager ile daha iyi para kazanma
Üçüncü taraf reklam sunucunuzu, tek seferlik rastgele değeri sunucunun isteği gönderir. Burada, üçüncü taraf reklam sunucusu:
'https://pubads.serverside.net/gampad/ads?givn=%%custom_key_for_google_nonce%%&...'
Daha fazla bilgi için Google Ad Manager Sunucu tarafı uygulaması rehberini inceleyin.
Ad Manager, tek seferlik rastgele sayı değerini tanımlamak için givn=
değerini arar. Üçüncü taraf reklamı
sunucunun kendine ait bir makroyu desteklemesi gerekir (örneğin,
%%custom_key_for_google_nonce%%
ve bunu tek seferlik sorgu parametresiyle değiştirin
adımları gerçekleştirebilirsiniz. Bunun nasıl yapılacağı hakkında daha fazla bilgi
üçüncü taraf reklam sunucusunun dokümanlarında bulunmalıdır.