فلترة إعلانات تثبيت التطبيقات للجمهور المحمي

عادةً ما تؤدي إعلانات تثبيت التطبيقات إلى عمليات تثبيت التطبيقات الجديدة المتوافقة مع الأجهزة الجوّالة. لزيادة عائد استثمار الإنفاق الإعلاني إلى أقصى حد، من الأفضل عدم عرض إعلان لتثبيت تطبيق على الأجهزة التي تم تثبيت التطبيق نفسه عليها من قبل. في هذا الاقتراح، نشير إلى هذه الممارسة باسم "تصفية إعلانات تثبيت التطبيقات".

يوضّح هذا الاقتراح كيفية دعم Protected Audience على Android لفلترة الإعلانات حسب المحتوى، وخاصةً فلترة إعلانات تثبيت التطبيقات، بطريقة تحافظ على الخصوصية. للمشاركة، يجب أن يوافق التطبيق على الجهاز بشكل صريح على تصفية إعلانات تثبيت التطبيقات. أثناء اختيار الإعلانات، تتم فلترة مرشّحي الإعلانات بناءً على قائمة التطبيقات المثبَّتة على الجهاز التي تُعرف بتقنية الإعلان.

لا تظهر قائمة التطبيقات المثبّتة إلا ضمن عملية اختيار الإعلانات، وتستند إلى النظام الأساسي لجهة الشراء للإشارة إلى ضرورة فلترة إعلان معيّن استنادًا إلى توفّر تطبيق على الجهاز.

لإعداد فلترة إعلانات تثبيت التطبيقات، اتّبِع الخطوات التالية:

الخطوة 1: تسجيل تطبيق لفلترة إعلانات تثبيت التطبيقات

للموافقة على فلترة إعلانات تثبيت التطبيقات، يستدعي مطوِّر التطبيقات واجهة برمجة التطبيقات لتسجيل التطبيقات registerForAdFiltering من تطبيقه، أو حزمة تطوير برامج (SDK) لتكنولوجيا الإعلانات، مع قائمة بنطاقات المستوى الأعلى (eTLD+1) للمشترين لتكنولوجيا الإعلان. يتيح ذلك للمشترين المُدرَجين في القائمة، ولهؤلاء المشترين فقط، فلترة الإعلانات استنادًا إلى حالة تثبيت التطبيق، سواء بشكلٍ مباشر أو من خلال حزمة تطوير البرامج (SDK) الخاصة بتكنولوجيا الإعلان التي يستخدمونها. يمنح التسجيل تحكمًا كاملاً لمطوِّر التطبيق في ما إذا كان ينبغي أن يشارك التطبيق في فلترة إعلانات تثبيت التطبيقات أم لا. java void registerForAdFiltering(List<AdTechIdentifier> buyers);

الخطوة 2: طلب فلترة إعلانات تثبيت التطبيقات

عند النظر في عرض الأسعار على أحد الإعلانات، يمكن للمشترين اختيار الإبلاغ عن الإعلان لتتم فلترته استنادًا إلى حالة تثبيت التطبيق. ويتم ذلك من خلال تضمين اسم حزمة التطبيق في بيانات التعريف للإعلان. يشكّل طلب فلترة إعلانات تثبيت التطبيق جزءًا من بيانات الإعلانات التي يتمّ إدخالها في عملية مزاد "الجمهور المحمي". ويتم إنشاء بيانات الإعلانات هذه بشكلٍ مختلف استنادًا إلى ما إذا كان هذا الإعلان سياقيًا أو إعلانًا لتجديد النشاط التسويقي.

  • بالنسبة إلى حالة استخدام الإعلان بحسب المحتوى، وهي حالة الاستخدام الرئيسية لفلترة إعلانات تثبيت التطبيقات، يتم تضمين معلومات الفلترة كجزء من بيانات الإعلانات التي يمكن أن يمنحها المشترين للبائعين عند الاستجابة لعرض سعر سياقي خارج نطاق Protected Audience. تتوقّع ميزة Protected Audience عرض معلومات فلترة المعلومات كجزء من الاستجابة السياقية، تمامًا مثل أي بيانات وصفية أخرى خاصة بالإعلان.
  • بالنسبة إلى حالة استخدام تجديد النشاط التسويقي، يتوقع تطبيق Protected Audience فلترة المعلومات ليتمّ تضمينها في الجمهور المخصّص. تتوفّر فرصتان لإجراء هذا الدمج: عند الانضمام إلى الجمهور وعند جلب بيانات جديدة عن الجمهور كجزء من عملية تعديل الجمهور. من المفترض أن يظهر طلب فلترة إعلانات تثبيت التطبيقات على النحو التالي داخل كائن JSON AdData: json { "render_uri": "https://..", "metadata": {..}, "filters": { "app_install": { "app_package_names": ["app1.package", "app2.package"] } } }

الخطوة 3: استبعاد إعلانات تثبيت التطبيقات أثناء اختيار الإعلانات

أثناء طلب الإعلان، يمكن للمشتري تمرير عدة إعلانات إلى البائع مرة أخرى بمعلومات التصفية حتى يمكن تصفية إعلانات التطبيقات المثبتة. ويكون من جهة البيع مطلوبًا لتمرير معلومات الفلترة كجزء من إعدادات وظيفة selectAds في الحقل adData. يتوقع Android تنسيق رسالة مشابه لتنسيق أدناه.

AdData myAdData = new AdData.Builder()
        .setRenderUri(Uri.parse("https://.."))
        .setMetadata("{...}")
        .setFilters(new AdFilters.Builder()
                .setAppInstalledFilter(new AppInstalledFilter.Builder()
                    .setPackageNames(ImmutableList.of("app1.package", "app2.package"))
                    .build())
                .build())
        .build();
AdSelectionConfig myAdSelectionConfig = new AdSelectionConfig.Builder()
    .setSeller(AdTechIdentifier.fromString("example-ssp1.com"))
    .setDecisionLogicUri(Uri.parse("https://..."))
    ...
    .setContextualAds(ImmutableList.of(new ContextualAd.Builder()
                      .setBuyer(AdTechIdentifier.fromString("example.com"))
                      .setReportingUri("https://example.com/reporting")
                      .setBid(20)
                      // myAdData could be taken from the JSON above
                      .setAd(myAdData)
                      .build()))
    .build();
// Invoke ad services API to initiate ad selection workflow.
selectAds(myAdSelectionConfig);

تتم معالجة الفلترة ضمن selectAds API. تعمل ميزة "الجمهور المحمي" على فلترة الإعلان في حال تطابق التطبيق المحدَّد في الرسالة مع التطبيق الوارد في القائمة المحدَّدة لتثبيت التطبيق الخاصة بمشترين تكنولوجيا الإعلان. هناك نتيجتان محتملتان:

  • لم يتم العثور على التطبيق في هذه القائمة، مما يعني أنه لم يتم تثبيته وفتحه.
  • يتوفّر التطبيق في هذه القائمة، ما يعني أنّه تم تثبيته وفتحه. إذا اكتشفَت ميزة "الجمهور المحمي" توفُّر تطبيق حالي، يتم استبعاد الإعلان من قائمة الإعلانات التي يستخدمها المزاد لعرض الإعلان "scoreAds" عليها.

الاعتبارات الواجب مراعاتها عند تضمين الإعلانات السياقية

من خلال فلترة إعلانات تثبيت التطبيقات، تبدأ واجهات برمجة التطبيقات Protected Audience API في إتاحة فلترة الإعلانات السياقية. هناك بعض الأمور التي من المهم تحديدها في الحالات التي يكون فيها المزاد عبارة عن مزيج من الإعلانات السياقية وإعلانات تجديد النشاط التسويقي، أو الإعلانات المستندة إلى المحتوى فقط.

  • عند إجراء مزاد selectAd، يكون لدى المشتري خيار المرور في قائمة من عناصر ContextualAd. وتحتوي هذه العناصر على eTLD+1 لمشتري الإعلان، وعرض سعر للإعلان، وعنوان URL يشير إلى منطق إعداد التقارير للإعلان، وAdData الذي يحتوي على عنوان URL الفعلي لمحتوى الإعلان وتوقيع إثبات هوية المشتري (يُرجى الاطّلاع على توقيع الإعلانات السياقية لمعرفة مزيد من التفاصيل. تجدر الإشارة إلى أنّ شكل AdData يُستخدم في كلٍّ من الإعلانات السياقية وإعلانات تجديد النشاط التسويقي.
  • في بداية عملية المزاد، تتم تصفية الإعلانات السياقية وإعلانات تجديد النشاط التسويقي باستخدام مجموعة أسماء الحزم المحددة في AdData.adFilters.appInstallFilters.packageNames. بعد ذلك، يتم تحديد قيم عروض الأسعار لأي إعلانات لتجديد النشاط التسويقي، ويتم تسجيل نتائج كلٍّ من إعلانات تجديد النشاط التسويقي والإعلانات السياقية باستخدام دالة scoreAds المتوفرة. يفوز الإعلان الذي حصل على أعلى نتيجة. تجدر الإشارة إلى أن هذه العملية تتم حتى في حال عدم وجود إعلانات لتجديد النشاط التسويقي.
  • إذا فاز إعلان بحسب المحتوى في المزاد وتم تفعيل ميزة إعداد تقارير مرات الظهور بواسطة التطبيق، يُنزِّل برنامج Protected Audience وظيفة JavaScript المسماة reportWin() وتنفّذها من عنوان URL لإعداد التقارير المضمَّنة في بيانات الإعلانات السياقية. يشبه ذلك الطريقة التي يتم بها إعداد التقارير لإعلان تجديد نشاط تسويقي فاز بالمزاد.

    نموذج وظيفة إعداد تقارير JavaScript:

    function reportWin(ad_selection_signals, per_buyer_signals, signals_for_buyer,
    contextual_signals) {
    let reporting_address = 'https://reporting.example.com';
    return {'status': 0, 'results': {'reporting_uri':
         reporting_address + '?some_signal=' + per_buyer_signals.some_signal} };
    }
    

ميزة "توقيع الإعلان السياقي"

  • يجب أن يوقّع المشتري على الإعلانات السياقية التي تتضمّن فلترة عمليات تثبيت التطبيقات. تستخدم المنصة هذا التوقيع للتحقّق من تكنولوجيا الإعلان التي قدّمت الإعلانات وفلاتر تثبيت التطبيقات الخاصة بتكنولوجيا الإعلان لتطبيقها على الإعلانات. تهدف هذه الطريقة إلى منع تقنية الإعلان الضارّة من استخدام هوية تقنية إعلان أخرى للاستفادة من تسجيل فلترة تثبيت التطبيقات لتقنية الإعلان الأخرى.

  • ستجلب "مبادرة حماية الخصوصية" هذه المفاتيح من نقطة نهاية تكنولوجيا الإعلان المقدَّمة أثناء التسجيل. وفقًا لأفضل الممارسات، ننصح بتحديث المفاتيح بشكل متكرر، ولكن في موعد لا يتجاوز 6 أشهر.

  • ستطلب "مبادرة حماية الخصوصية" من تكنولوجيا الإعلان التأكّد من توفّر نقطة النهاية التي توفّرها هذه التكنولوجيا أثناء عملية التسجيل. لمزيد من التفاصيل حول الإجراءات المطلوبة من قِبل تقنيات الإعلان الحالية والمُسجَّلة حديثًا، يمكنك الاطّلاع على تعليمات التسجيل.

  • وسيتم في المستقبل القريب نشر دليل المطور بمزيد من التعليمات التفصيلية بشأن التنفيذ.