الإشارات الآمنة هي بيانات مشفّرة يتم جمعها على جهاز العميل ومشاركتها مع مقدّمي عروض أسعار محدّدين. يوضّح لك هذا الدليل كيفية جمع الإشارات الآمنة وإرسالها إلى "مدير إعلانات Google" باستخدام حزمة IMA SDK.
تتطلّب واجهة برمجة التطبيقات "الإشارات الآمنة" الإصدار 3.18.1 أو إصدارًا أحدث من حزمة تطوير البرامج (SDK) لإعلانات الوسائط التفاعلية على نظام التشغيل iOS.
لاختيار الإشارات وعروض الأسعار وتفعيل مشاركة الإشارات الآمنة، اطّلِع على مقالة مشاركة الإشارات الآمنة مع مقدّمي عروض الأسعار.
استخدام مقدّم إشارات تابع لجهة خارجية
لاستخدام الإشارات الآمنة، يجب نشر فئة محوّل مجمّع الإشارات في تطبيقك لجمع الإشارات وتشفيرها وتمريرها إلى حزمة تطوير البرامج (SDK) الخاصة بـ IMA.
اتّبِع تعليمات موفِّر الخدمة التابع لجهة خارجية لإعداد حساب معه، وتضمين الأُطر، وإعداد أداة ربط الإشارات الآمنة في تطبيقك.
تعمل حزمة IMA SDK لنظام التشغيل iOS تلقائيًا على تهيئة كل مهايئ للإشارات الآمنة، بدون إجراء أي تغييرات إضافية على الرمز البرمجي.
في ما يلي مثال على كيفية إضافة محوّل إشارات آمنة إلى مشروعك:
إرسال بيانات مخصّصة
بالإضافة إلى استخدام موفّر إشارات تابع لجهة خارجية، يمكنك أيضًا جمع الإشارات وتشفيرها وإرسالها باستخدام بيانات مخصّصة. قبل أن تتمكّن من إرسال إشارات آمنة باستخدام بيانات مخصّصة، عليك تفعيل الإشارات المخصّصة في "إدارة إعلانات Google".
لكل طلب بث، اتّبِع الخطوات التالية:
- أنشِئ عنصر
IMASecureSignals
يحتوي على بياناتك المخصّصة المرمّزة كسلسلة. - أضِف عنصر
IMASecureSignals
إلى طلب البث من خلال ضبط السمةIMAStreamRequest.secureSignals
:
Objective-C
app/ViewController.m
- (void)requestStream {
// Create a stream request. Use one of "Livestream request" or "VOD request",
// depending on your type of stream.
IMAStreamRequest *request;
if (kStreamType == StreamTypeLive) {
// Livestream request. Replace the asset key with your value.
request = [[IMALiveStreamRequest alloc] initWithAssetKey:kLiveStreamAssetKey
networkCode:kNetworkCode
adDisplayContainer:self.adDisplayContainer
videoDisplay:self.imaVideoDisplay
userContext:nil];
} else {
// VOD request. Replace the content source ID and video ID with your values.
request = [[IMAVODStreamRequest alloc] initWithContentSourceID:kVODContentSourceID
videoID:kVODVideoID
networkCode:kNetworkCode
adDisplayContainer:self.adDisplayContainer
videoDisplay:self.imaVideoDisplay
userContext:nil];
}
IMASecureSignals *signals =
[[IMASecureSignals alloc] initWithCustomData:@"My encoded signal string"];
request.secureSignals = signals;
[self.adsLoader requestStreamWithRequest:request];
}
Swift
app/ViewController.swift
func requestStream() {
// Create a stream request. Use one of "Livestream request" or "VOD request".
let signals = IMASecureSignals(customData: "My encoded signal string")
if ViewController.requestType == StreamType.live {
// Livestream request.
let request = IMALiveStreamRequest(
assetKey: ViewController.assetKey,
networkCode: ViewController.networkCode,
adDisplayContainer: adDisplayContainer!,
videoDisplay: imaVideoDisplay,
userContext: nil)
request.secureSignals = signals
adsLoader?.requestStream(with: request)
} else {
// VOD stream request.
let request = IMAVODStreamRequest(
contentSourceID: ViewController.contentSourceID,
videoID: ViewController.videoID,
networkCode: ViewController.networkCode,
adDisplayContainer: adDisplayContainer!,
videoDisplay: imaVideoDisplay,
userContext: nil)
request.secureSignals = signals
adsLoader?.requestStream(with: request)
}
}