تُسهِّل أدوات تطوير البرامج لإعلانات الوسائط التفاعلية عملية دمج إعلانات الوسائط المتعددة في مواقعك الإلكترونية وتطبيقاتك. يمكن لحزمة تطوير البرامج لإعلانات الوسائط التفاعلية طلب إعلانات من أي خادم إعلانات متوافق مع VAST وإدارة تشغيل الإعلانات في تطبيقاتك. باستخدام حزم تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، تنشئ التطبيقات طلب بث لفيديو الإعلان والمحتوى، سواء كان فيديو عند الطلب أو محتوى مباشر. تُرجع حزمة SDK بعد ذلك الفيديو المضمّن، بحيث لا تضطر إلى إدارة التبديل بين الإعلان والفيديو في شبكة المحتوى داخل تطبيقك.
اختيار حلّ DAI المطلوب
إدراج إعلان ديناميكي في مجموعة الإعلانات
يشرح هذا الدليل كيفية تشغيل بث مباشر أو فيديو عند الطلب باستخدام ميزة "إدراج إعلان ديناميكي" باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية لنظام التشغيل iOS من خلال مشغّل فيديو بسيط إذا كنت ترغب في اتباع مع عينة مكتملة، قم بتنزيل مثال على عرض الإعلانات المتسلسلة.
نظرة عامة على عرض الإعلانات المتسلسلة لإعلانات الوسائط التفاعلية
يشمل تنفيذ عرض الإعلانات المتسلسلة باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية لنظام التشغيل iOS اثنين المكونات:
StreamRequest
: كائن يحدّد طلب البث خوادم إعلانات Google. يجب أن يتم إنشاؤه باستخدام إماIMAPodStreamRequest
أوIMAPodVODStreamRequest
لتفعيل عرض الإعلانات المتسلسلة. تتطلب كلتا الطريقتين رمز شبكة يحتاجIMAPodStreamRequest
أيضًا إلى مفتاح مادة عرض مخصّص. مفتاح واجهة برمجة التطبيقات هو اختيارية.IMAStreamManager
: كائن يعالج الاتصال بين الفيديو المضمّن وحزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، مثل إشعارات التتبع إعادة توجيه أحداث البث إلى الناشر.
المتطلبات الأساسية
قبل البدء، تحتاج إلى ما يلي:
- Xcode 13 أو أحدث.
- CocoaPods (الخيار المفضّل) أو Swift Package Manager أو نسخة تم تنزيلها من حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية لنظام التشغيل iOS
- تطبيق iOS تم إعداده من قبل باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية من أجل تشغيل أحداث الفيديو باستخدام إعلانات DAI إذا لم يكن لديك هذا التطبيق، ننصحك باستخدام إدراج إعلان ديناميكي على iOS BasicExample نقطة البداية. يحتوي BasicExample على قاعدة التعليمات البرمجية المشار إليها في هذا الدليل. لمزيد من المعلومات عن كيفية تنفيذ حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، راجع دليل البدء السريع
إعداد متغيّرات عرض الإعلانات المتسلسلة
تُجرى جميع التغييرات اللازمة لعرض المجموعة المتسلسلة في ViewController.swift في swift أو ViewController.m في Objective-C. المقتطفات في هذا الدليل افتراضيًا إلى استخدام لغة Swift. تتمثل الخطوة الأولى في تحديث المتغيرات الثابتة.
في ما يلي ثوابت طلبات بث مجموعة الإعلانات المتسلسلة المطلوب إضافتها:
STREAM_URL
(يُستخدَم فقط لأحداث البث المباشر): عنوان URL لبث الفيديو الذي توفّره الجهة المسؤولة عن التحكّم في البيان أو الشريك الخارجي الذي يستخدم عرض الإعلانات المتسلسلة. يجب مطلوب منك إدراج معرّف مصدر البيانات الذي توفّره حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية قبل تقديم طلب في هذه الحالة، يتضمّن عنوان URL للبث عنصرًا نائبًا"[[STREAMID]]"
، الذي يتم استبداله بمعرّف مصدر البيانات، قبل إنشاء طلبك.NETWORK_CODE
: رمز الشبكة لحسابك على "مدير الإعلانات 360".CUSTOM_ASSET_KEY
(يُستخدَم فقط لأحداث البث المباشر): مفتاح مادة العرض المخصّص يحدد حدث عرض اللوحة في "مدير إعلانات Google 360". يمكن إنشاء هذا من خلال أداة التحكّم في البيان أو شريك عرض الإعلانات المتسلسلة التابع لجهة خارجيةAPI_KEY
(يُستخدَم فقط لأحداث البث المباشر): مفتاح واجهة برمجة تطبيقات اختياري يمكن استخدامه المطلوب لاسترداد رقم تعريف مصدر البيانات من حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية.
غيِّر قسم المتغيّرات في المثال ليتطابق مع ما يلي:
...
class ViewController:
UIViewController,
IMAAdsLoaderDelegate,
IMAStreamManagerDelegate,
AVPlayerViewControllerDelegate
{
static let streamUrl =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000&seg-host=dai.google.com&stream_id=[[STREAMID]]"
static let networkCode = "51636543"
static let customAssetKey = "google-sample"
static let APIKey = ""
static let backupStreamURLString =
"http://googleimadev-vh.akamaihd.net/i/big_buck_bunny/bbb-,480p,720p,1080p,.mov.csmil/master.m3u8"
var adsLoader: IMAAdsLoader?
...
إنشاء طلب بث مباشر أو لمجموعة فيديوهات عند الطلب
عرض مجموعة البث المباشر
يُرجى تعديل طريقة requestStream
لإنشاء طلب بث بودكاست مباشر من خلال
إنشاء مثيل لـ IMAPodStreamRequest
.
...
func requestStream() {
guard let playerViewController = self.playerViewController else return
guard let adContainerView = self.adContainerView else return
guard let adsLoader = self.adsLoader else return
self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
adDisplayContainer = IMAAdDisplayContainer(
adContainer: adContainerView, viewController: self)
// Create a podserving stream request.
request = IMAPodStreamRequest(
networkCode: self.networkCode,
customAssetKey: self.customAssetKey,
adDisplayContainer: adDisplayContainer,
videoDisplay: self.videoDisplay,
userContext: nil)
adsLoader.requestStream(with: request)
}
...
عرض مجموعة البث الخاصة بالفيديوهات عند الطلب
عدِّل طريقة requestStream
لإنشاء طلب بث لمجموعة الفيديوهات عند الطلب من خلال:
إنشاء مثيل لـ IMAPodVODStreamRequest
.
...
func requestStream() {
guard let playerViewController = self.playerViewController else return
guard let adContainerView = self.adContainerView else return
guard let adsLoader = self.adsLoader else return
self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
adDisplayContainer = IMAAdDisplayContainer(
adContainer: adContainerView, viewController: self)
// Create a podserving stream request.
request = IMAPodVODStreamRequest(
networkCode: self.networkCode,
adDisplayContainer: adDisplayContainer,
videoDisplay: self.videoDisplay,
userContext: nil)
adsLoader.requestStream(with: request)
}
...
تعديل عنوان URL للبث وضبطه
عرض مجموعة البث المباشر
تعديل طرق IMAAdsLoaderDelegate
، باستخدام streamManager.streamId
من أجل
الحصول على معرّف مصدر البيانات بعد ذلك، أدرِج معرّف مصدر البيانات في STREAM_URL
، مع استبدال
"[[STREAMID]]"
بعد إجراء هذا التغيير، سيصبح عنوان URL الجديد للبث
تم الضبط باستخدام videoDisplay.loadStream()
.
...
// MARK: - IMAAdsLoaderDelegate
func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
let streamManager = adsLoadedData.streamManager
let streamId = streamManager.streamId
let urlString = streamUrl.replacingOccurrences(of: "[[STREAMID]]", with: streamId)
let loadedStreamUrl = URL(string:urlString)
self.videoDisplay.loadStream(loadedStreamUrl, subtitles:@[])
self.videoDisplay.play()
streamManager.delegate = self
streamManager.initialize(with: nil)
self.streamManager = streamManager
}
...
عرض مجموعة البث الخاصة بالفيديوهات عند الطلب
تعديل طرق IMAAdsLoaderDelegate
، باستخدام streamManager.streamId
من أجل
الحصول على معرّف مصدر البيانات بعد ذلك، يمكنك طلب عنوان URL للبث من تكنولوجيا الفيديو التي تستخدمها.
شريك (VTP). اتّصِل بعد ذلك بالرقم IMAStreamManager.loadThirdPartyStream()
للحصول على إعلانات الوسائط التفاعلية
عنوان URL للبث وأي ترجمات يعرضها التلفزيون.
...
// MARK: - IMAAdsLoaderDelegate
func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
let streamManager = adsLoadedData.streamManager
let streamId = streamManager.streamId
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
let streamUrl = vtpInterface.requestStreamURL(streamID)
self.streamManager.loadThirdPartyStream(streamUrl, streamSubtitles:@[])
streamManager.delegate = self
streamManager.initialize(with: nil)
self.streamManager = streamManager
}
هذا كل شيء! أنت الآن تطلب الإعلانات وتعرضها في مجموعة بث تعرض الإعلانات المتسلسلة باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية لنظام التشغيل iOS للاطّلاع على أمثلة أخرى على استخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية: راجِع النماذج على GitHub.