إدراج الإعلانات من جانب العميل (CSAI) مع تحليل علامات SCTE-35 وتكامل مشغلات متعددة المنصات
احتاجت منصة بث الفيديو إلى تطبيق إدراج الإعلانات من جانب العميل (CSAI) عبر تطبيقات الويب والجوال والتلفزيون الذكي المتصل – مما يتيح تجارب إعلانية مخصصة على مستوى الجهاز مع دعم كامل لتفاعل الإعلانات (تراكبات قابلة للنقر، إعلانات مصاحبة، أزرار تخطي) التي لا يمكن لتضمين الإعلانات من جانب الخادم توفيرها.
ناقش مشروعك
التحدي
كانت المنصة تستخدم سابقًا SSAI (إدراج الإعلانات من جانب الخادم) حصريًا، والذي كان يدير تحقيق الدخل بشكل جيد ولكنه كان له قيود كبيرة على تجارب الإعلانات التفاعلية:
- لم تتمكن الإعلانات المدمجة بواسطة SSAI من دعم التراكبات القابلة للنقر أو الإعلانات المصاحبة أو وحدات الإعلانات التفاعلية
- عدم القدرة على تتبع أحداث الإعلانات من جانب العميل (تقدم الربع، قابلية العرض، النقرة) المطلوبة من قبل مشتري الإعلانات المتميزين
- توقعت منصات التلفزيون الذكي المتصل (Roku, Fire TV, Apple TV) استخدام CSAI لأطر عمل الإعلانات الأصلية ومتطلبات الشهادات الخاصة بها
- كانت علامات SCTE-35 في ملفات HLS/DASH المطلوبة بحاجة إلى تحليلها على العميل، لكن كل SDK لمشغل فيديو تعامل مع أحداث التلميحات بشكل مختلف
- تطلب إدارة حزمة الإعلانات (ملء فواصل إعلانية متعددة الفتحات بإعلانات متعددة) تنسيقًا من جانب العميل
- كانت هناك حاجة إلى اكتشاف أدوات حظر الإعلانات ومنطق التراجع لحماية الإيرادات على منصات الويب
- تطلب التحميل المسبق للإعلانات دون مقاطعة مخزن المحتوى المؤقت إدارة دقيقة لدورة حياة المشغل
حلنا
لقد قمنا ببناء إطار عمل CSAI متعدد المنصات مع طبقة تنسيق إعلانات موحدة تقوم بتحليل علامات SCTE-35 من ملفات HLS/DASH، وتتواصل مع خوادم إعلانات VAST/VMAP، وتدير دورة حياة تشغيل الإعلانات عبر الويب (Video.js/Shaka)، وiOS (AVPlayer)، وAndroid (ExoPlayer)، ومشغلات التلفزيون الذكي المتصل.
البنية
- تسليم المحتوى: تدفقات HLS/DASH مع علامات SCTE-35 عبر AWS MediaPackage + CloudFront
- خادم قرار الإعلان: Google Ad Manager (GAM) / SpotX مع دعم VAST 4.2 و VMAP
- مشغل الويب: Video.js مع محلل إشارات SCTE-35 مخصص وتكامل Google IMA SDK
- مشغل iOS: AVPlayer مع مستمع
AVDateRangeMetadataGroupو IMA iOS SDK - مشغل Android: ExoPlayer مع مستمع
MetadataOutputو IMA Android SDK - التلفزيون الذكي المتصل: مشغلات أصلية للمنصة (Roku RAF, Fire TV IMA, Apple TV AVKit) مع محولات إطار عمل الإعلانات
- تحليلات الإعلانات: خط أنابيب أحداث مخصص لتتبع الانطباعات، الأرباع، الاكتمال، النقرات، وقابلية العرض
- التراجع: تسليم إعلانات داخلية/لوحة عند عدم توفر ملء الإعلان أو عند اكتشاف أداة حظر الإعلانات
تحليل SCTE-35 من جانب العميل
علامات بيان HLS
تظهر إشارات SCTE-35 في بيانات HLS في شكلين، يتم تحليل كلاهما بواسطة العميل:
EXT-X-DATERANGE (HLS v7+)- يستمع المشغل إلى علامات
#EXT-X-DATERANGEذات السماتSCTE35-OUTوSCTE35-IN - تتضمن السمات
PLANNED-DURATIONلمدة فاصل الإعلان وIDلربط الأحداث - الصيغة المفضلة للمشغلات الحديثة (AVPlayer, ExoPlayer, Shaka)
#EXT-X-CUE-OUT:DURATION=<seconds>تشير إلى بداية فاصل الإعلان#EXT-X-CUE-INتشير إلى العودة إلى المحتوى- مدعوم للتوافق مع الإصدارات الأقدم من المشغلات والمشفرات
علامات بيان DASH
- تظهر إشارات SCTE-35 كعناصر
<EventStream>في DASH MPD معschemeIdUri="urn:scte:scte35:2013:xml" - عناصر
<Event>تحتوي علىpresentationTime،duration، وحمولة ثنائية SCTE-35 مشفرة بـ base64 - يقوم Shaka Player و ExoPlayer بتحليل هذه العناصر بشكل أصلي عبر واجهات برمجة تطبيقات مستمعي الأحداث الخاصة بهم
تدفق معالجة العلامات
- الاكتشاف — يستشعر مستمع بيانات تعريف المشغل حدث إشارة SCTE-35 أثناء تحليل البيان
- الاستخراج — يتم استخراج مدة الفاصل، ومعرف الحدث، ونوع التجزئة من العلامة
- طلب الإعلان — يتم إطلاق طلب VAST/VMAP إلى خادم قرار الإعلان بمعلمات الاستهداف (معرف المحتوى، النوع، نوع الجهاز، شريحة المستخدم، الموقع الجغرافي)
- تخطيط الحزمة — يتم تحليل استجابة الإعلان لبناء حزمة إعلانات (قائمة مرتبة من الإبداعات الإعلانية التي تملأ مدة الفاصل)
- التحميل المسبق — يتم تحميل الإبداعات الإعلانية مسبقًا أثناء تشغيل المحتوى للقضاء على زمن الوصول عند بدء فاصل الإعلان
- الإيقاف المؤقت والتبديل — يتم إيقاف تشغيل المحتوى مؤقتًا عند نقطة الإشارة، ويتحول المشغل إلى تشغيل الإعلان
- تشغيل الإعلان — يتم تشغيل الإعلانات بالتسلسل مع تتبع الأرباع، وعرض اللافتات المصاحبة، ومعالجة النقرات
- الاستئناف — بعد اكتمال حزمة الإعلانات، يستأنف تشغيل المحتوى من الإطار الدقيق بعد نقطة الإشارة
تطبيقات خاصة بالمنصة
الويب (Video.js + IMA SDK)
- يقوم مكون Video.js الإضافي المخصص باعتراض بيانات تعريف
#EXT-X-DATERANGEعبر أحداث تغيير إشارةtextTrack - يتولى Google IMA HTML5 SDK إدارة طلبات إعلانات VAST، وتشغيل الإعلانات، وعرض الإعلانات المصاحبة
- تراكب حاوية الإعلانات موضوع فوق عنصر الفيديو لدعم النقرات وأزرار التخطي
- اكتشاف أدوات حظر الإعلانات عبر طلب canary — يتراجع إلى الإعلانات الداخلية أو استئناف المحتوى عند الاكتشاف
- دعم الإعلانات التمهيدية (preroll) والمنتصفية (midroll) والختامية (postroll) عبر VMAP أو الجدولة اليدوية لنقاط الإشارة
iOS (AVPlayer + IMA SDK)
- يتم استخدام
AVPlayerItem.navigationMarkerGroupsوAVDateRangeMetadataGroupلاكتشاف إشارات SCTE-35 - ينطلق مفوض
AVPlayerItemMetadataOutputفي كل حدث إشارة مع توقيت وحمولة محللين - يتعامل Google IMA iOS SDK مع طلب VAST وتشغيل الإعلانات في مثيل
AVPlayerمنفصل - يتم إيقاف ميزة "صورة داخل صورة" (PiP) مؤقتًا أثناء فواصل الإعلانات وفقًا لسياسة الإعلانات الخاصة بالمنصة
- تمت معالجة الصوت في الخلفية — لا يتم تشغيل الإعلانات في وضع الخلفية
Android (ExoPlayer + IMA SDK)
Player.Listener.onMetadata()معMetadataOutputتلتقط أحداث SCTE-35 من HLS/DASH- تم دمج Google IMA Android SDK عبر امتداد
ImaAdsLoaderالخاص بـ ExoPlayer - يستخدم تشغيل الإعلان
MediaSourceمنفصلًا لتجنب تلويث مخزن المحتوى المؤقت - يتعامل مع دورة حياة النشاط (Activity lifecycle) — يتم الحفاظ على حالة الإعلان عبر تغييرات التكوين والعمل في الخلفية
- تتشارك Android TV والجوال نفس منطق الإعلانات مع تعديلات طبقة واجهة المستخدم
منصات التلفزيون الذكي المتصل
Roku (RAF — Roku Ad Framework)- تقوم مكتبة RAF الأصلية من Roku بتحليل علامات SCTE-35 من ملفات HLS مباشرةً
RAF.setAdUrl()تم تكوينه بنقطة نهاية VAST؛ يتولى RAF طلب الإعلان، وبناء حزمة الإعلانات، والتشغيل- دعم الإعلانات المصاحبة عبر وظائف رد الاتصال
renderStitchedAdوrenderTrackingEventالخاصة بـ RAF - تتطلب شهادة Roku استخدام RAF — يتم رفض مشغلات الإعلانات المخصصة أثناء المراجعة
- يستخدم تطبيق Android ExoPlayer + IMA SDK المعدل لواجهة مستخدم Leanback الخاصة بـ Fire TV
- التنقل باستخدام لوحة الاتجاهات (D-pad) لزر التخطي والنقر على "معرفة المزيد" في تراكبات الإعلانات
- معرف إعلان Fire TV المستخدم لاستهداف الإعلانات في طلبات VAST
AVPlayerViewControllerمعinterstitialTimeRangesلمؤشرات واجهة المستخدم الأصلية لفاصل الإعلانات- إشارات SCTE-35 يتم تحليلها عبر
AVPlayerItemMetadataCollector - يتم إدارة تشغيل الإعلانات في
AVQueuePlayerمنفصل لفصل المحتوى/الإعلان بشكل نظيف - معالج النقر عن بعد لـ tvOS لعناصر الإعلان التفاعلية
إدارة حزمة الإعلانات
- ملء الحزمة — تجميع إعلانات VAST متعددة لملء مدة الفاصل المحددة
- التسلسل الهرمي (Waterfall) — إذا لم يعد خادم الإعلانات الأساسي أي إعلانات، يتم الاستعلام عن مصادر الطلب الثانوية/الثالثية بالتسلسل
- تعديل المدة — يختار منشئ حزمة الإعلانات مجموعات إعلانية تتناسب مع مدة الفاصل (تحمل ±0.5 ثانية)
- إزالة التكرار — لا يتم عرض نفس الإعلان الإبداعي مرتين في حزمة واحدة
- تحديد تكرار العرض (Frequency Capping) — يتم فرض حدود لكل مستخدم ولكل جلسة من جانب العميل لتجنب إرهاق الإعلانات
- الإعلانات الفاصلة (Bumpering) — إبداعات إعلانية فاصلة قصيرة ("سنعود بعد قليل" / "أهلاً بعودتك") تغلف حزم الإعلانات
تتبع أحداث الإعلانات وتحليلاتها
- أحداث VAST القياسية —
impression,start,firstQuartile,midpoint,thirdQuartile,complete,skip,clickThrough - قابلية العرض — يتم إطلاق بكسلات قابلية العرض من MOAT/IAS بناءً على رؤية إطار عرض الإعلان وعتبات المدة
- الأحداث المخصصة — أحداث على مستوى التطبيق (بدء/انتهاء فاصل الإعلان، معدل ملء الحزمة، توقيت التحميل المسبق، التراجع الذي تم تفعيله)
- خط أنابيب الخادم — يرسل العميل الأحداث إلى مجمع أحداث خفيف الوزن، والذي يوزعها إلى GAM، MOAT، ومستودع التحليلات الداخلي
- المصالحة — مصالحة سجلات جانب الخادم مع أحداث جانب العميل لاكتشاف التناقضات
التعامل مع أدوات حظر الإعلانات (الويب)
- الاكتشاف — طلب VAST canary إلى نطاق إعلانات معروف؛ يشير المهلة أو الحظر إلى وجود أداة حظر الإعلانات
- استراتيجية التراجع — عرض إعلانات داخلية أو إعلانات ترويجية من نطاق CDN الخاص بالطرف الأول
- بوابة المحتوى — بوابة اختيارية خفيفة: مطالبة المستخدم بإضافة الموقع إلى القائمة البيضاء قبل تشغيل المحتوى
- التحليلات — تتبع معدل اكتشاف أدوات حظر الإعلانات لكل متصفح، ومنطقة جغرافية، وصفحة
الميزات الرئيسية
- CSAI متعدد المنصات — إدراج إعلانات موحد عبر الويب، iOS, Android, Roku, Fire TV, و Apple TV
- تحليل SCTE-35 من جانب العميل — تحليل HLS
EXT-X-DATERANGE,CUE-OUT/IN, و DASHEventStream - إعلانات تفاعلية — تراكبات قابلة للنقر، إعلانات مصاحبة، وأزرار تخطي على جميع المنصات
- تنسيق حزمة الإعلانات — ملء فواصل إعلانية متعددة بالتسلسل الهرمي، وتعديل المدة، وإزالة التكرار
- التحميل المسبق — يتم تحميل الإبداعات الإعلانية مسبقًا أثناء تشغيل المحتوى لانتقالات إعلانية بدون تأخير
- تتبع قابلية العرض — تكامل MOAT/IAS لمتطلبات قابلية العرض لمشتري الإعلانات المتميزين
- الامتثال للتلفزيون الذكي المتصل — تكاملات Roku RAF, Fire TV IMA, و Apple TV AVKit التي تلبي متطلبات الشهادات
- مرونة ضد أدوات حظر الإعلانات — الكشف والتراجع إلى الإعلانات الداخلية الخاصة بالطرف الأول على الويب
النتائج
المكدس التقني
caseStudyDetail.more دراسات الحالة
استكشف المزيد من تطبيقاتنا التقنية
خط أنابيب إشارات علامات الإعلانات SCTE-35 وإدراج مقاطع الفيديو الترويجية
احتاجت شركة إعلام بث مباشر إلى خط أنابيب قوي ومؤتمت لإدخال علامات إعلانات SCTE-35 في البث المباشر وVOD، بالإضافة إلى القدرة على إدراج مقاطع فيديو ترويجية (pre-roll، وmid-roll، وpost-roll) في مواضع محددة بدقة — مما يتيح تحقيق الدخل عبر قنوات FAST والفعاليات المباشرة ومكتبات المحتوى حسب الطلب.
خدمات AWS Media Services لبث قنوات FAST عبر SRT
احتاجت شركة إعلامية إلى إنشاء خلاصات مساهمة موثوقة ومنخفضة زمن الوصول لقنواتها FAST باستخدام بروتوكول Secure Reliable Transport (SRT) — مما يتيح استيعاب المحتوى عالي الجودة من الاستوديوهات البعيدة، وأنظمة cloud playout، وشركاء التوزيع عبر اتصالات الإنترنت غير المتوقعة.
الأسئلة الشائعة
MicrocosmWorks implemented a manifest parser that extracts EXT-X-DATERANGE tags containing base64-encoded SCTE-35 splice_info_section data, decodes the splice commands, and triggers the ad decision request to the VAST/VMAP ad server with the appropriate break duration. The parser handles both time_signal and splice_insert command types across live and VOD manifests.
MicrocosmWorks built a shared ad playback SDK with platform-specific adapters for AVPlayer on iOS, ExoPlayer on Android, hls.js on web, and native players on Roku and Fire TV. The SDK normalizes ad lifecycle events like impression, quartile tracking, and completion across all platforms, ensuring unified reporting regardless of the playback device.
MicrocosmWorks implemented a timeout and fallback strategy where the player waits a maximum of 3 seconds for an ad server response before playing a default slate or skipping to the next content segment. The SDK also pre-fetches upcoming ad break VAST responses during content playback to minimize latency at the actual break point.
MicrocosmWorks integrated Open Measurement SDK (OM SDK) for viewability verification compatible with MOAT, IAS, and DoubleVerify, and the tracking implementation follows IAB VAST 4.2 specifications for impression counting and quartile events. The system also supports IAB's Video Ad Serving Template measurement guidelines for accurate ad completion rate reporting.
MicrocosmWorks delivers ad technology implementations at rates of $30-$50/hr, with a full CSAI system including SCTE-35 parsing, VAST/VMAP integration, and multi-platform player SDKs for iOS, Android, web, and CTV typically requiring 600-900 development hours. Each additional platform adapter adds approximately 80-120 hours to the base implementation.
مستعد لتحويل عملك؟
دعنا نناقش كيف يمكننا تطبيق حلول مشابهة لتحدياتك.