IMA SDK, canlı yayınlar ve seç-izle videodan para kazanmak için kullanılabilir. Canlı yayınlarda her reklam arası için yeni bir reklam isteğinde bulunmanız gerekir. Tüm izleyicilerinizin bunları istemediğinden emin olmak için bu istekleri zamana yayabilirsiniz. reklam sunucusuyla uğraşmak zorunda kalabilir.
IMA SDK bu konuda yardımcı olmak için AdsRequest.liveStreamPrefetchSeconds
özelliğine sahiptir.
Bu özellik, SDK'nın maksimum saniye sayısını belirtir
telefon ettikten sonra reklam sunucusuna ulaşmadan önce beklemelidir
AdsLoader.requestAds()
Gerçek istek süresi rastgele seçilir. Örneğin,
Örneğin, AdsRequest.liveStreamPrefetchSeconds
değerini 30 olarak ayarlarsanız SDK,
siz AdsLoader.requestAds()
numaralı telefonu çağırdıktan sonra 0 ila 30 saniye bekler
sunucuya istekte bulunur.
Canlı yayın için önceden getirme uygulaması
Reklam arası tamamlanır tamamlanmaz sonraki reklam aranızı önceden getirmenizi öneririz. Bu, önceden getirme aralığınız için kullanılabilecek maksimum süre sağlar. Reklam araları arasında 5 dakika olduğunu varsayalım. Reklam arası tamamlandığında, 290 saniyelik önceden getirme aralığıyla bir sonraki reklam aranızı isteyebilirsiniz (5 dakika eksi 10 saniye, isteklerin önceden getirme aralığının çözmek için yeterli zamanı olur):
Bu kod snippet'leri, canlı yayın önceden getirme özelliğinin Gelişmiş Örnek biçimindedir, ancak bu yaklaşım diğer IMA uygulamalarına da uygulanabilir.
VideoPlayerController.java
/** Ads logic for handling the IMA SDK integration code and events. */
public class VideoPlayerController {
// 5 minutes == 300 seconds. Include a 10 second buffer
private float AD_INTERVAL = 290;
private double AD_TIMEOUT = 300;
...
adsManager.addAdEventListener(
new AdEvent.AdEventListener() {
/** Responds to AdEvents. */
@Override
public void onAdEvent(AdEvent adEvent) {
...
case ALL_ADS_COMPLETED:
if (adsManager != null) {
adsManager.destroy();
adsManager = null;
}
// When pre-fetching for live streams, be sure to destroy the current AdsManager,
// in case the tag you requested previously contains post-rolls
// (you don't want to play those now).
// Pre-fetch the next ad break.
// Play those ads in ~5 minutes. In a real-world implementation,
// this will likely be done as the result of a message from your
// streaming server, not a via the playAdsAfterThisTime parameter
// of requestAndPlayAds().
requestAndPlayAds(AD_TIMEOUT);
break;
default:
break;
}
}
...
public void requestAndPlayAds(double playAdsAfterThisTime) {
if (currentAdTagUrl == null || currentAdTagUrl == "") {
log("No VAST ad tag URL specified");
resumeContent();
return;
}
// Since you're switching to a new video, tell the SDK the previous video is finished.
if (adsManager != null) {
adsManager.destroy();
}
playButton.setVisibility(View.GONE);
// Create the ads request.
AdsRequest request = sdkFactory.createAdsRequest();
request.setAdTagUrl(currentAdTagUrl);
request.setContentProgressProvider(videoPlayerWithAdPlayback.getContentProgressProvider());
request.setLiveStreamPrefetchSeconds(AD_INTERVAL);
playAdsAfterTime = playAdsAfterThisTime;
// Request the ad. After the ad is loaded, onAdsManagerLoaded() will be called.
adsLoader.requestAds(request);
}