الإعلانات المدمجة مع المحتوى على Android

يسمح شكل الإعلانات المدمجة مع المحتوى للناشر بتخصيص إعلان يتم عرضه لأي مستخدم. بعد جلب إعلان من حزمة SDK، يمكن للناشرين تغيير تنسيق الإعلان ومظهره بحيث يتوافق بشكل أفضل مع واجهة مستخدم التطبيق: إضافة فلتر ألوان وتغيير أسلوب الخط وإضافة تراكبات مخصصة. لتحسين أداء الإعلانات المدمجة مع المحتوى أو تجربة المستخدم، غالبًا ما يضع الناشرون حدودًا للعرض أو يخصمون من أداء تشغيل الفيديو على حزمة تطوير البرامج (SDK). أخيرًا، يمكن للناشرين تخصيص أدوات معالجة النقرات على الإعلانات لمراقبة أحداث إضافية مثل التمريرات السريعة للأعلى.

يتطلب شكل الإعلانات المدمجة مع المحتوى مستوى أعلى من الثقة لدى الناشر مقارنةً بما هو مطلوب لعرض أشكال الإعلانات الأخرى. تريد حِزم SDK عادةً اكتشاف انتهاكات السياسات والتحقّق من أنّ محتوى الإعلان المقدَّم للناشر قد تم عرضه للمستخدم.

ويتم توفير إعلانات البانر في وقت تشغيل حزمة تطوير البرامج (SDK) من خلال SurfaceControlViewHost API. يسمح هذا الإجراء لحزمة 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 المختلفة الخصائص المختلفة لمشاهدات الإعلانات لرصد عمليات الاحتيال وانتهاكات السياسات. نود إتاحة ذلك بدون تحديد الخصائص التي يجب استخدامها، أو أن تصبح المعوقات في SDK تغير مجموعة الخصائص التي يتم الاستعلام عنها. نقترح إنشاء تمثيل لحاوية الإعلان وطرق عرضه الثانوية باستخدام NativeAdContainerInfo. سيشكّل ذلك عنصرًا قابلاً للدمج، يتضمّن رموزًا مختلفة تعرض معلومات تقتصر على حاوية الإعلان ومحتواه، حيث تحافظ هذه المعلومات على الخصوصية وليست مكلفة على احتسابها. ستتمكّن حزمة تطوير البرامج (SDK) من تفعيل فئات الإشارات المضمّنة في NativeAdContainerInfo. ستتلقّى حزمة تطوير البرامج (SDK) هذا العنصر عندما تتغير حالة الإعلان بطرق ذات صلة بحزمة SDK، مثل الأحداث القابلة للفوترة مثل مرّات ظهور الإعلان ونقرات المستخدِم.

بالإضافة إلى ذلك، سيتمكّن الناشر من إضافة علامات (سلاسل) خاصة بالملف الشخصي إلى كل عنصر ثانوي تتم إضافته إلى NativeAdContainer، والتي يمكن استخدامها للسماح لحزمة SDK بمعرفة مادة عرض الإعلان التي يتوافق معها كل طفل.

عندما ينقر المستخدم على الملفات الشخصية لحزمة تطوير البرامج (SDK)، ستعيد مكتبة واجهة المستخدم توجيه MotionEvent مع بعض الخصائص المترجمة إلى مساحة الإحداثيات في حزمة SDK إلى حزمة تطوير البرامج (SDK)، إلى جانب حدث MotionEvent الأصلي. بالنسبة إلى الإصدارات المستقبلية من نظام التشغيل Android، نستكشف إضافة طرق للسماح لتطبيق العميل بنقل التركيز باللمس لجميع إيماءات المستخدم في الأجزاء المملوكة لحزمة SDK من هذا الإعلان المدمج مع المحتوى لتتم معالجتها بواسطة حزمة تطوير البرامج.

الإقرارات

ستتوفّر الإقرارات التالية لحزمة تطوير البرامج (SDK) للحصول على تأكيدات أقوى بشأن عرض الإعلان:

  1. المصادقة على سلامة الجهاز: يمكنك استخدام واجهات برمجة التطبيقات للنظام الأساسي، مثل مصادقة المفتاح لتحديد سلامة الجهاز.
  2. هوية APK: استخدِم واجهات برمجة تطبيقات SdkSandbox مثل SdkSandboxController.getClientPackageName وواجهات برمجة تطبيقات PackageManager مثل requestChecksum لإثبات هوية حزمة APK.
  3. VerifiedMotionEvents: في الإصدارات المستقبلية من نظام التشغيل Android، نستكشف إمكانية السماح لتطبيق العميل بنقل التركيز باللمس لجميع إيماءات المستخدمين على الأجزاء التي تمتلكها حزمة تطوير البرامج (SDK) من هذا الإعلان المدمج مع المحتوى كي تعالجها حزمة تطوير البرامج. يمكن تحويل MotionEvents إلى VerifiedMotionEvents باستخدام واجهات برمجة تطبيقات النظام. يمكن لحزمة تطوير البرامج (SDK) عرض واجهة المستخدم الخاصة بها استجابةً لتفاعل المستخدم في حال أراد ذلك.

الأسئلة المفتوحة

نحن نرحّب بملاحظاتك بشأن النقاط التالية:

  1. هل يُفضَّل أن تنشئ حزمة SDK VerifiedMotionEvents بنفسها أم أنّه من الأفضل أن تنشئ مكتبة واجهة المستخدم الخاصة بالمزوّد خدمة هذا الرمز لحزمة تطوير البرامج (SDK)؟
  2. هل يُفضل أن تسمح حزمة SDK للناشر بالمشاهدات التي تحتوي على فيديو أم أن يمتلك هذه المشاهدات بنفسه؟
  3. ما هي السمات التي تريد تضمينها في العنصر AppOwnedAdContainerInfo؟
  4. كم عدد الإعلانات أو مكوّنات الإعلانات المملوكة لحزمة تطوير البرامج (SDK) التي تتوقّع عرضها في الوقت نفسه على الشاشة؟