اختيار حلّ DAI المطلوب
إدراج إعلان ديناميكي كامل الخدمات
يوضِّح هذا الدليل كيفية تشغيل بث DAI باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية. في حال حذف ترغب في عرض أو متابعة عينة دمج مكتملة، وتنزيل المثال.
قبل استخدام هذا الدليل، تأكد من التعرف على Chromecast
بروتوكول استقبال الويب لإطار عمل التطبيق. هذا النمط
مستوى أساسي من الإلمام بمفاهيم مستقبل CAF، مثل
رسالة
الجهات الاعتراضية
أو
mediaInformation
بالإضافة إلى الإلمام باستخدام أمر وتحكُّم البث
لمحاكاة مُرسِل CAF.
لاستخدام إدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، يجب أن يتوفر لديك "مدير إعلانات Google" الإصدار 360. في حال وجود إعلان الحساب الإداري، يُرجى التواصل مع مدير الحساب للحصول على مزيد من التفاصيل. للحصول على معلومات حول الاشتراك في "مدير الإعلانات"، يُرجى الانتقال إلى مقالة مساعدة "مدير الإعلانات" الوسط.
للحصول على معلومات عن الدمج مع المنصات الأخرى أو عن استخدام إعلانات الوسائط التفاعلية حِزم SDK من جهة العميل، يُرجى الاطّلاع على حِزم تطوير البرامج لإعلانات الوسائط التفاعلية.
نظرة عامة على ميزة "إدراج إعلان ديناميكي" في CAF
يتضمّن تنفيذ ميزة "إدراج إعلان ديناميكي" باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية (IMA) CAF عنصرَين أساسيَين هو موضح في هذا الدليل:
StreamRequest
: كائن يحدد طلب البث إلى خوادم إعلانات Google. هناك نوعان رئيسيان من طلبات البث:LiveStreamRequest
: مفتاح مادة العرض، ومفتاح واجهة برمجة تطبيقات اختياري، بالإضافة إلى المعلمات الاختيارية.VODStreamRequest
: تحدّد هذه السمة معرّف مصدر المحتوى ومعرّف الفيديو وواجهة برمجة تطبيقات اختيارية. ، بالإضافة إلى معلمات اختيارية أخرى.
StreamManager
: يشير هذا المصطلح إلى عنصر يعالج الاتصال بين الفيديو المضمّن و"إدراج إعلان ديناميكي" لإعلانات الوسائط التفاعلية. مثل تنشيط إشعارات التتبع وإعادة توجيه أحداث ساحة المشاركات إلى الناشر.
المتطلبات الأساسية
- أن يكون لديك حساب على Cast Developer Console جهاز اختبار مسجَّل.
- مستقبل الويب المستضاف app هو المسجلة في وحدة تحكم مطوّري البرامج لتكنولوجيا Cast والتي يمكن تعديلها لاستضافة الرمز المقدم من هذا الدليل.
- تطبيق إرسال تم ضبطه لاستخدام تطبيق جهاز استقبال الويب. هذا المثال يستخدم أداة Cast Command وControl المُرسِل.
إعداد كائنات MediaInfo للمُرسِل
أولاً، اضبط MediaInfo في تطبيق المرسِل كائن لتضمينه الحقول التالية:
contentId
|
معرّف فريد لعنصر الوسائط هذا | |
contentUrl
|
عنوان URL للبث الاحتياطي المطلوب تحميله في حال تعذّر DAI StreamRequest لأي من السبب | |
streamType
|
بالنسبة إلى أحداث البث المباشر، يجب ضبط هذه القيمة على "مباشر". بالنسبة إلى أحداث البث عند الطلب يجب ضبط هذه القيمة على "BUFFERED" | |
customData
|
assetKey
|
أحداث البث المباشر فقط تحديد البث المباشر المطلوب تحميله |
contentSourceId
|
أحداث البث عند الطلب فقط يحدد خلاصة الوسائط التي تحتوي على التدفق المطلوب. | |
videoId
|
أحداث البث عند الطلب فقط يحدد البث المطلوب ضمن خلاصة وسائط محددة. | |
ApiKey
|
مفتاح اختياري لواجهة برمجة التطبيقات يمكن أن يكون مطلوبًا لاسترداد عنوان URL للبث من حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية | |
senderCanSkip
|
قيمة منطقية لإعلام المُستلِم بما إذا كان الجهاز المُرسِل يتضمن عرض زر التخطّي، ما يتيح عرض الإعلانات القابلة للتخطّي |
لضبط هذه القيم في أداة التحكم والأوامر الخاصة بالبث، انقر على الزر تحميل
الوسائط، واضبط نوع طلب التحميل المخصّص على LOAD
. ثم استبدل
بيانات JSON في مربّع النص باستخدام أحد كائنات JSON التالية:
بث مباشر
{
"media": {
"contentId": "bbb",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
"streamType": "LIVE",
"customData": {
"assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
فيديوهات عند الطلب
{
"media": {
"contentId": "tos",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
"streamType": "BUFFERED",
"customData": {
"contentSourceId": "2548831",
"videoId": "tears-of-steel",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
يمكن إرسال كائن طلب التحميل المخصّص هذا إلى المستلِم لاختبار الخطوات التالية.
إنشاء جهاز استقبال CAF أساسي
باتباع دليل استقبال حزمة تطوير البرامج (SDK) الأساسية لـ CAF، أنشئ مستقبل الويب الأساسي.
من المفترض أن يظهر رمز المُستلِم على النحو التالي:
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
</script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
cast.framework.CastReceiverContext.getInstance().start();
</script>
</body>
</html>
استيراد حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية والحصول على "مدير اللاعبين"
أضِف علامة نص برمجي لاستيراد حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية من أجل CAF إلى جهاز استقبال الويب، فقط بعد تحميل النص البرمجي CAF. إنّ حزمة تطوير البرامج (SDK) الخاصة بميزة "إدراج إعلان ديناميكي" في CAF لا يبطُل رواجها، لذا ما مِن حاجة لتعيين إصدار معين. ثم في علامة البرنامج النصي التالية، قم بتخزين سياق المتلقي ومدير اللاعب كثوابت قبل بدء المُستلِم.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
castContext.start();
</script>
</body>
</html>
إعداد مدير بث إعلانات الوسائط التفاعلية
إعداد ساحة المشاركات في حزمة تطوير البرامج لإدراج إعلان ديناميكي في CAF المدير.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
castContext.start();
</script>
</body>
</html>
إنشاء اعتراض رسالة التحميل
تستخدم حزمة تطوير البرامج (SDK) الخاصة بميزة "إدراج إعلان ديناميكي" في CAF رسالة تحميل CAF
اعتراض
لإرسال طلبات البث واستبدال عنوان URL الخاص بالمحتوى بالبث النهائي لميزة "إدراج إعلان ديناميكي".
يستدعي عنصر اعتراض الرسائل streamManager.requestStream() الذي يعالج
إعداد الفواصل الإعلانية وطلب البث واستبدال الفيديوهات الحالية
contentURL
لا يمكن أن يكون هناك أكثر من أداة واحدة لاعتراض رسالة التحميل، لذلك إذا كان تطبيقك يتطلب استخدام يجب دمج أي وظائف مخصصة مع معاودة الاتصال.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => null;
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
this.broadcast('Stream request successful.');
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
إنشاء طلب البث
لإكمال عملية دمج ميزة "إدراج إعلان ديناميكي" في CAF، عليك إنشاء ساحة المشاركات.
طلب
باستخدام البيانات المضمّنة في عنصر mediaInfo
من المُرسِل.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => {
const imaRequestData = request.media.customData;
let streamRequest = null;
if (imaRequestData.assetKey) {
// Live stream
streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
streamRequest.assetKey = imaRequestData.assetKey;
} else if (imaRequestData.contentSourceId) {
// VOD stream
streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
streamRequest.contentSourceId = imaRequestData.contentSourceId;
streamRequest.videoId = imaRequestData.videoId;
}
if (streamRequest && imaRequestData.ApiKey) {
streamRequest.ApiKey = imaRequestData.ApiKey;
}
if (streamRequest && imaRequestData.senderCanSkip) {
streamRequest.senderCanSkip = imaRequestData.senderCanSkip;
}
return streamRequest;
};
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
يمكنك الآن طلب أحداث بث DAI وتشغيلها باستخدام حزمة تطوير البرامج (SDK) الخاصة بميزة CAF DAI من Google. للحصول على مزيد من المعلومات حول ميزات حزمة تطوير البرامج (SDK) المتقدمة، يمكنك الاطّلاع على الأدلة الأخرى أو تنزيل نموذج جهاز الاستقبال التطبيقات.