HLS geçiş reklamları spesifikasyonu, reklamları bir video veya ses akışına planlamak ve eklemek için esnek bir yöntem sunar. İstemci tarafı yaklaşımında, uygulamanız AVPlayerInterstitialEvent sınıfını oluşturarak reklam aralarının ne zaman isteneceği ve oynatılacağı konusunda tam kontrol sahibi olur. Bu yaklaşımda, içerik akışı manifestlerinde EXT-X-DATERANGE etiketleri gerekmez. İstemci tarafı HLS geçiş reklamları, akış manifestini veya medya dosyalarını değiştirmenize gerek kalmadan herhangi bir içeriğe dinamik olarak reklam eklemenizi sağlar.
Bu kılavuzda, Interactive Media Ads (IMA) SDK'nın sunucu tarafından yönlendirilen reklam ekleme (SGAI) canlı yayın oturumu oluşturan ve istemci tarafında geçiş reklamları planlayan bir video oynatıcı uygulamasına entegre edilmesi ele alınmaktadır. Daha fazla bilgi için Sunucu yönlendirmeli DAI başlıklı makaleyi inceleyin.
Ön koşullar
Başlamadan önce aşağıdakilere ihtiyacınız vardır:
Kullanıcı arayüzü için
Storyboardkullanılan yeni bir Xcode projesi. Daha fazla bilgi için Uygulama için Xcode projesi oluşturma başlıklı makaleyi inceleyin.Google IMA SDK'sı. Daha fazla bilgi için DAI için IMA SDK'yı ayarlama başlıklı makaleyi inceleyin.
DAI canlı yayın isteğiniz için aşağıdaki parametreler:
NETWORK_CODE: Google Ad Manager ağ kodunuz.CUSTOM_ASSET_KEY: DAI canlı yayın etkinliğini tanımlayan özel dizeniz. Canlı yayın etkinliğinin kapsül yayınlama manifesti DAI türü olmalıdır.
Resimli taslak yapılandırma
iPhone.storyboard dosyanızda aşağıdakileri yapın:
- Video oynatıcı ve reklam kullanıcı arayüzü için kapsayıcı olarak bir
UIViewnesnesi oluşturun. UIViewnesnesiyle bağlantı kurmak içinViewControllersınıfınınadUIViewözelliğini oluşturun.adUIViewnesnesinde, oynatma düğmesi işlevi görecek birUIButtonoluşturun.UIButtonnesnesiyle bağlantı kurmak içinplayButtonsınıfından birViewControllerözelliği ve kullanıcı dokunmalarını işlemek için bironPlayButtonTouchişlevi oluşturun.
Reklam yükleyiciyi başlatma
Ana görünüm denetleyicisinin viewDidLoad etkinliğinde aşağıdakileri yapın:
AVPlayerveAVPlayerLayersınıflarını kullanarak video oynatıcı oluşturun.IMAAdDisplayContainerveIMAAVPlayerVideoDisplaynesneleri oluşturun. Reklam görüntüleme kapsayıcısı, IMA DAI SDK'nın reklam kullanıcı arayüzü alt görünümlerini ekleyeceğiadUIViewdeğerini belirtir. Video görüntüleme nesnesi, IMA DAI SDK'sının reklam mantığı ile AVFoundation oynatma sistemi arasında bir köprü görevi görerek video reklamların oynatılmasını izler.IMAAdsLoadernesnesini reklam oynatma ve reklam kullanıcı arayüzü yerelleştirme ayarlarıyla başlatın.
Aşağıdaki örnekte, boş bir IMASettings nesnesiyle bir reklam yükleyici başlatılmaktadır:
Akış isteğinde bulunma
Bir içerik akışı için reklam isteğinde bulunmak üzere bir
IMAPodStreamRequest
nesnesi oluşturun ve bunu
IMAAdsLoader
örneğinize iletin. İsteğe bağlı olarak, akışınız için DAI seçenekleri ve hedefleme parametreleri sağlamak üzere adTagParameters özelliğini ayarlayın.
Bu örnekte, viewDidAppear etkinliğinde loadAdStream yöntemi çağrılıyor:
Üretim uygulamanızda, kullanıcı bir içerik akışı seçtikten sonra loadAdStream yöntemini çağırın.
Akış yükleme etkinliklerini işleme
Akış isteğinin başarılı veya başarısız olmasını işlemek için IMAAdsLoaderDelegate protokolünü uygulayın:
- Başarılı olursa
IMAStreamManageriçeren birIMAAdsLoadedDatanesnesi alırsınız. Mevcut DAI oturumu içinstreamManager.streamIddeğerini saklayın. - Başarısız olursa hatayı günlüğe kaydedin.
Aşağıdaki örnekte, akış yüklendi etkinliği işlenir ve akışın yüklenemediği etkinliği günlüğe kaydedilir:
Reklam eklemelerini planlama
Reklam arası planlamak için bir
AVPlayerInterstitialEvent
nesnesi oluşturun. Etkinlik nesnesinin templateItems özelliğini bir AVPlayerItem nesneleri dizisi olarak ayarlayın. Her öğe nesnesi bir reklam kapsülü manifest URL'si içerir.
Reklam kapsülü manifest URL'si oluşturmak için Yöntem: HLS kapsülü manifesti dokümanını inceleyin.
Aşağıdaki örnek, gösterim amacıyla içerik canlı yayınının geçerli saatini kullanarak bir pod tanımlayıcı dizesi oluşturur. generatePodIdentifier
işlevi, pod tanımlayıcısını ad_break_id/mid-roll-{minute} olarak döndürür.
Üretim uygulamanızda, her reklam arası için benzersiz değerler sağlayan ve canlı yayının tüm izleyicileri için senkronize edilmiş bir kaynaktan pod tanımlayıcısını alın.
Aşağıdaki örnekte, kullanıcı oynatma düğmesini tıkladıktan sonraki iki dakika içinde başlayacak şekilde bir reklam arası planlanmaktadır:
scheduleAdInsertion yöntemi, reklam arasının başlangıç zamanını hesaplar ve bir reklam kapsülü manifest URL'si oluşturur. AVPlayerInterstitialEvent nesnesi oluşturmak için bu URL'yi kullanın.
İsteğe bağlı olarak, reklam oynatma sırasında kullanıcıların reklamı atlamasını veya geri sarmasını kısıtlamak için AVPlayerInterstitialEvent.Restrictions yapısını kullanın.
Reklam etkinliklerini işleme
Reklam etkinliklerini işlemek için
IMAStreamManagerDelegate
protokolünü uygulayın. Bu yaklaşım, reklam aralarının ne zaman başlayıp ne zaman bittiğini izlemenize ve tek tek reklamlar hakkında bilgi edinmenize olanak tanır.
Uygulamanızı çalıştırın. İşlem başarılı olursa bir Pod yayınlama manifest akışı kullanarak geçiş reklamları isteyebilir ve oynatabilirsiniz.