يسمح شكل الإعلانات المدمجة مع المحتوى للناشر بتخصيص إعلان يتم عرضه للمستخدم. بعد جلب إعلان من حزمة تطوير البرامج (SDK)، يمكن للناشرين تغيير تنسيق الإعلان ومظهره لمواءمته بشكل أفضل مع واجهة مستخدِم التطبيق: إضافة فلتر ألوان وتغيير الطباعة وإضافة تراكبات مخصّصة. لتحسين أداء الإعلانات المدمجة مع المحتوى أو تجربة المستخدم، غالبًا ما يحدّد الناشرون حدودًا لعرض الإعلانات أو ينقلون تشغيل الفيديو إلى حزمة تطوير البرامج (SDK). أخيرًا، يمكن للناشرين تخصيص مُستمعي النقرات على الإعلانات للتتبّع عن الأحداث الإضافية، مثل التمرير سريعًا للأعلى.
يتطلب شكل "الإعلانات المدمجة مع المحتوى" مستوى أعلى من الثقة في الناشر مقارنةً بالمستوى المطلوب لعرض أشكال الإعلانات الأخرى. تهدف حِزم SDK عادةً إلى رصد انتهاكات السياسة والتحقّق من أنّه تم عرض محتوى الإعلان الذي تم تقديمه للناشر على العميل.
يتم توفير إمكانية عرض إعلانات البانر في وقت تشغيل حزمة SDK من خلال واجهة برمجة التطبيقات
SurfaceControlViewHost
. يسمح ذلك لحزمة SDK بعرض عناصر واجهة المستخدِم
من عملية "وقت تشغيل حزمة تطوير البرامج (SDK)" بدون أن يتم التلاعب بها من قِبل
تطبيق العميل. استخدِم وضعَي SurfaceView Z فوق أو Z تحت لتحديد
ما إذا كانت المساحة التي يتم فيها عرض واجهة مستخدم حزمة SDK فوق نافذة العميل
التطبيق أو تحتها. عند عرض إعلان باستخدام وضع Z أعلاه، تتلقّى حزمة SDK
MotionEvents
من تفاعل المستخدِم، ولكنّ مشاهدات
تطبيق العميل لا تظهر فوق الإعلان. عند عرض إعلان في الوضع "Z أسفل الشاشة"، يعرض
التطبيق مشاهداته الخاصة فوق الإعلان، ولكن MotionEvents
عند تفاعل المستخدِم
مع الإعلان، يتم توجيهه إلى التطبيق وليس إلى حزمة SDK.
يمكن لحزمة SDK والناشر استخدام مكتبات privacysandbox.ui من Jetpack لإنشاء جلسة واجهة مستخدم والحفاظ عليها.
حاوية إعلانات مملوكة للتطبيق
لقد أنشأنا نموذجًا أوليًا للسماح لحزمة SDK بإدارة جميع طرق العرض التي تتضمّن إعلانًا مضمّنًا (بما في ذلك
العناصر التي تظهر على سطح التطبيق)، وتبيّن لنا أنّه على الرغم من أنّ ذلك ممكن، إلا أنّه يفرض بعض
القيود على واجهة المستخدم ويزيد من تعقيد الدمج مع حزمة SDK. ومنهجًا أكثر
عملية هو السماح للتطبيق بعرض معظم المراجعات. لا يزال بإمكان حزمة SDK
اختيار عرض بعض عناصر واجهة المستخدم بنفسها، مثل عرض الإعلان، باستخدام SandboxedSdkView
من privacysandbox.ui. يقدّم هذا النهج أكبر قدر من المرونة في كيفية
إتاحة حالات الاستخدام الحالية والمستقبلية لهذا التنسيق الإعلاني: باستخدام
هذا النهج، يمكن لمطوّر التطبيق نقل مكوّنات الإعلان وتصميمها كما هو مطلوب، في حين تحتفظ حزمة SDK بملكية مشغّل الفيديو، إذا كان ذلك هو الخيار المفضّل، وتحتفظ
بالوصول إلى عناصر التحكّم في الوسائط.
إشعارات بشأن حالة الإعلان
تفحص حِزم SDK المختلفة سمات مختلفة لمشاهدات الإعلانات من أجل رصد عمليات الخداع ومحاولة رصد الانتهاكات المتعلّقة بالسياسة. نريد توفير هذه الميزة بدون تحديد
المواقع التي يجب استخدامها، أو أن نصبح عائقًا أمام حزمة تطوير البرامج (SDK) التي تغيّر مجموعة
المواقع التي يتم الاستعلام عنها. نقترح إنشاء تمثيل لحاوية الإعلان
ومشاهده الفرعية باستخدام NativeAdContainerInfo
. سيكون هذا العنصر قابلاً للتقسيم
ويتضمّن أدوات جلب مختلفة تعرض معلومات تقتصر على حاوية الإعلان
ومحتوياتها، حيث تحافظ هذه المعلومات على الخصوصية ولا يتطلّب حسابها
تكلفة مرتفعة. ستتمكّن حزمة SDK من تفعيل فئات الإشارات المضمّنة في
NativeAdContainerInfo
. ستتلقّى حزمة تطوير البرامج (SDK) هذا العنصر كلما تغيّرت حالة الإعلان
بطرق ذات صلة بحزمة SDK، مثل الأحداث التي يمكن تحصيل رسومها، مثل مرّات ظهور الإعلان
والنقرات التي يجريها المستخدِمون.
بالإضافة إلى ذلك، سيتمكّن الناشر من إضافة علامات خاصة بالعرض (سلاسل) إلى
كل طفل تمت إضافته إلى NativeAdContainer
، ويمكن استخدامها لإعلام حزمة تطوير البرامج (SDK)
بمادة العرض الإعلانية التي يتوافق معها كل طفل.
عندما ينقر المستخدم على طرق العرض التي تملكها حزمة SDK، ستعيد مكتبة واجهة المستخدم توجيه
MotionEvent
مع الخصائص التي تم ترجمتها إلى مساحة إحداثيات حزمة SDK إلى
حزمة SDK، إلى جانب MotionEvent الأصلي. في الإصدارات المستقبلية من Android، نحن مشغولون
باستكشاف طرق لإتاحة تطبيق العميل لنقل تركيز اللمس
لجميع إيماءات المستخدم على الأجزاء التي تملكها حزمة SDK من هذا الإعلان المدمج كي تتم معالجتها من قِبل
حزمة SDK.
الإقرارات
ستتوفّر شهادات الاعتماد التالية لحزمة SDK للحصول على مزيد من التأكيدات حول عرض الإعلانات:
- إثبات سلامة الجهاز: استخدِم واجهات برمجة التطبيقات الخاصة بالنظام الأساسي، مثل إثبات صحة المفتاح لتحديد سلامة الجهاز.
- هوية حزمة APK: استخدِم واجهات برمجة تطبيقات SdkSandbox، مثل
SdkSandboxController.getClientPackageName
، وواجهات برمجة تطبيقات PackageManager، مثلrequestChecksum
، للتحقّق من هوية حزمة APK. VerifiedMotionEvents
: في الإصدارات المستقبلية من Android، نستكشف إتاحة تطبيق العميل لنقل التركيز باللمس لجميع إيماءات المستخدم على الأجزاء التي تملكها حزمة SDK من هذا الإعلان المدمج كي تتعامل معها حزمة SDK. يمكن تحويلMotionEvents
إلىVerifiedMotionEvents
باستخدام واجهات برمجة تطبيقات النظام. يمكن أن يعرض حِزم تطوير البرامج (SDK) واجهة المستخدم الخاصة بها استجابةً لتفاعل المستخدم إذا اختَر ذلك.
الأسئلة المفتوحة
- هل من الأفضل أن تنشئ حزمة SDK
VerifiedMotionEvents
بنفسها، أم أن تنشئ مكتبة واجهة المستخدم الخاصة بالموفّر حزمة SDK؟ - هل من الأفضل أن تسمح حزمة SDK للناشر بملكية المشاهدات التي تحتوي على فيديو، أم أن تملك هذه المشاهدات بنفسه؟
- ما هي الخصائص التي تريد تضمينها في عنصر
AppOwnedAdContainerInfo
؟ - ما هو عدد الإعلانات أو مكوّنات الإعلانات التي تملكها حزمة SDK والتي تتوقّع أن تظهر في الوقت نفسه على الشاشة؟