الإفصاح للمستخدمين في المنطقة الاقتصادية الأوروبية

اختيار النظام الأساسي: Android جديد Android iOS Unity Flutter

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

تعكس هذه السياسة شروط "التوجيه الأوروبّي بشأن الخصوصية الإلكترونية" و"اللائحة العامّة لحماية البيانات" (GDPR) في الاتّحاد الأوروبّي.

يقدّم هذا الدليل الخطوات المطلوبة لدعم رسالة طلب الموافقة بموجب "اللائحة العامة لحماية البيانات" (GDPR) والإصدار 2 من "إطار الشفافية والموافقة" الصادر عن مكتب IAB كجزء من حزمة تطوير البرامج لمنصة UMP. ويُفترض استخدامه مع مقالة البدء التي تقدّم نظرة عامة حول كيفية تشغيل تطبيقك باستخدام حزمة تطوير البرامج لمنصة UMP والأساسيات المتعلّقة بإعداد رسالتك. تتعلّق الإرشادات التالية تحديدًا برسالة طلب الموافقة بموجب "اللائحة العامة لحماية البيانات" (GDPR) والإصدار 2 من "إطار الشفافية والموافقة" الصادر عن مكتب IAB. لمزيد من المعلومات، يُرجى الاطّلاع على كيفية تأثير متطلبات IAB في رسائل طلب الموافقة في الاتحاد الأوروبي.

المتطلبات الأساسية

تتطلّب "اللائحة العامة لحماية البيانات" إبطال الموافقة للسماح للمستخدمين بسحب خيارات الموافقة في أي وقت. يُرجى الاطّلاع على خيارات الخصوصية لتنفيذ طريقة تتيح للمستخدمين سحب خيارات الموافقة.

للإشارة إلى ما إذا كان المستخدم دون سن الرشد، اضبط tagForUnderAgeOfConsent (TFUA). عند ضبط TFUA على true، لا تطلب حزمة تطوير البرامج لمنصة UMP الموافقة من المستخدم. إذا كان تطبيقك يستهدف جمهورًا مختلطًا، اضبط هذه المَعلمة للمستخدمين الأطفال لضمان عدم طلب الموافقة.

يضبط المثال التالي TFUA على "صحيح" في طلب الموافقة على منصة UMP:

Swift

// Create a UMPRequestParameters object.
let parameters = RequestParameters()
// Indicate the user is under age of consent.
parameters.isTaggedForUnderAgeOfConsent = true

// Request an update for the consent information.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
  [weak self] requestConsentError in
  guard let self else { return }

  // ...
}

Objective-C

// Create a UMPRequestParameters object.
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
// Indicate the user is under age of consent.
parameters.tagForUnderAgeOfConsent = YES;

// Request an update for the consent information.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
        completionHandler:^(NSError *_Nullable requestConsentError) {
          // ...
        }];

الوساطة

اتّبِع الخطوات الواردة في مقالة إضافة شركاء إعلانات إلى الرسائل المنشورة لطلب موافقة المستخدمين بموجب "اللائحة العامة لحماية البيانات" (GDPR) لإضافة شركاء التوسّط إلى قائمة الشركاء الإعلانيين. قد يؤدي عدم اتّباع هذه الخطوات إلى عدم تمكُّن الشركاء من عرض الإعلانات على تطبيقك.

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

بعد جمع الموافقة بموجب "اللائحة العامة لحماية البيانات"، يمكنك قراءة خيارات الموافقة من وحدة التخزين المحلية باتّباع مواصفات الإصدار 2 من "إطار الشفافية والموافقة". يشير المفتاح IABTCF_PurposeConsents إلى الموافقة لكل من أغراض "إطار الشفافية والموافقة".

يوضّح مقتطف الرمز التالي كيفية التحقّق من الموافقة على الغرض 1:

Swift

// Example value: "1111111111"
let purposeConsents = UserDefaults.standard.string(forKey: "IABTCF_PurposeConsents")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
let hasConsentForPurposeOne = purposeConsents?.first == "1"

Objective-C

// Example value: "1111111111"
NSString *purposeConsents = [NSUserDefaults.standardUserDefaults
                             stringForKey:@"IABTCF_PurposeConsents"];
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
BOOL hasConsentForPurposeOne = [purposeConsents hasPrefix:@"1"];

الأسئلة الشائعة

ماذا يحدث إذا لم أتّخذ أي إجراء لاستيفاء متطلبات منصة إدارة الموافقة لعرض الإعلانات في المنطقة الاقتصادية الأوروبية والمملكة المتحدة وسويسرا؟

اعتبارًا من 16 يناير 2024، إذا لم يستخدم الشريك منصة معتمَدة من Google لإدارة الموافقة، لن تكون مؤهّلة للعرض على الزيارات الواردة من المنطقة الاقتصادية الأوروبية والمملكة المتحدة سوى "الإعلانات المحدودة".

سيبدأ فرض هذه المتطلبات في 16 يناير 2024 على نسبة صغيرة من الزيارات الواردة من المنطقة الاقتصادية الأوروبية والمملكة المتحدة، على أن يتم تطبيقها على جميع هذه الزيارات في نهاية فبراير 2024. يُرجى استخدام منصة معتمَدة لإدارة الموافقة بحلول 16 يناير 2024 لضمان عدم تأثُّر عملية تحقيق الربح.

كيف يمكنني التحقّق مما إذا كان المستخدم قد منح الموافقة؟

لا يتم تمثيل الموافقة من خلال بت واحد، بل من خلال مجموعة من الأغراض و المورّدين على النحو المحدّد في مواصفات "إطار الشفافية والموافقة" الصادر عن مكتب IAB. يُرجى الاطّلاع على سياسات الموافقة: الإعلانات المخصّصة والإعلانات غير المخصّصة لمعرفة معايير تخصيص "إعلانات Google".

بالإضافة إلى ذلك، تستخدم تقنيات الإعلان في قائمة مزوّدي تقنية الإعلان (ATP) من Google غير المسجَّلة في قائمة مورّدي "إطار الشفافية والموافقة" المواصفات الفنية لـ "الموافقة الإضافية" من Google لجمع الموافقة. تنشر Google قائمة مزوّدي تقنية الإعلان غير المسجَّلين لدى مكتب IAB وأرقام تعريفهم في الموقع التالي: https://storage.googleapis.com/tcfac/additional-consent-providers.csv.

لتصحيح الأخطاء في طلب عرض إعلان فردي، استخدِم ميزة تحديد المشاكل في إعدادات الخصوصية في أداة فحص الإعلانات لعرض إشارات الخصوصية التالية التي تم تمريرها في طلب عرض الإعلان كجزء من تكامل الناشر مع "إطار الشفافية والموافقة" الصادر عن مكتب IAB في أوروبا:

تصنيف أداة فحص الإعلانات مَعلَمة طلب عرض الإعلان المعنى
تنطبق "اللائحة العامة لحماية البيانات" (IABTCF_gdprApplies) gdpr ما إذا كانت اللائحة العامة لحماية البيانات تنطبق على طلب عرض الإعلان هذا.
سلسلة الموافقة والشفافية (IABTCF_TCString) gdpr_consent سلسلة الموافقة والشفافية يوفّر مكتب IAB أداة على الويب يمكنك من خلالها فك ترميز القيمة يدويًا .
سلسلة الموافقة الإضافية (IABTCF_AddtlConsent) addtl_consent سلسلة الموافقة الإضافية من المواصفات الفنية لـ "الموافقة الإضافية" من Google.

لقراءة خيارات الموافقة آليًا، يُرجى الاطّلاع على كيفية قراءة خيارات الموافقة لمزيد من المعلومات.

هل أحتاج إلى استخدام حزمة تطوير البرامج لمنصة UMP من Google لاستيفاء متطلبات منصة إدارة الموافقة؟

لا، يمكنك استخدام أي منصة لإدارة الموافقة من قائمة منصات إدارة الموافقة المعتمَدة من Google لعرض الإعلانات.

كيف يمكنني عرض نموذج الموافقة مرة أخرى باستخدام حزمة تطوير البرامج لمنصة UMP حتى إذا كان المستخدم قد منح الموافقة من قبل؟

إذا سبق أن اتّخذ المستخدم قرارًا بشأن الموافقة، لن يطلب حلّ إدارة الموافقة من Google جمع موافقة جديدة إلى أن تنتهي صلاحية سلسلة الموافقة والشفافية أو تصبح غير صالحة بطريقة أخرى.

تتطلّب "اللائحة العامة لحماية البيانات" تعديل الموافقة للسماح للمستخدمين بسحب خيارات الموافقة في أي وقت. يُرجى الاطّلاع على خيارات الخصوصية لتنفيذ طريقة تتيح للمستخدمين سحب خيارات الموافقة. لعرض نموذج الموافقة مرة أخرى، استخدِم presentPrivacyOptionsFormFromViewController:completionHandler:.

لقد دمجت منصة معتمَدة من Google لإدارة الموافقة، ولكن لا تظهر لي أي طلبات عرض الإعلان يتم إرسالها إلى شركاء التوسّط، حتى من المستخدمين الذين منحوا الموافقة. ما سبب ذلك؟

بموجب "إطار الشفافية والموافقة"، تتحقّق Google من أن مزوّدي تقنيات الإعلان ومصادر الطلب الآلية الأخرى لا تنتهك سياسة Google وأنّها تملك أساسًا قانونيًا واحدًا على الأقل لمعالجة البيانات قبل تضمينها في تدفق التوسّط. يُرجى الانتقال إلى قسم التوسّط لمزيد من المعلومات.

بعض شركاء التوسّط في قائمة مزوّدي تقنية الإعلان (ATP) من Google غير مسجَّلين في قائمة مورّدي إطار الشفافية والموافقة. يستخدم هؤلاء الشركاء بدلاً من ذلك المواصفات الفنية لـ "الموافقة الإضافية" من Google لجمع الموافقة. تنشر Google قائمة مزوّدي تقنية الإعلان غير المسجَّلين لدى مكتب IAB وأرقام تعريفهم في الموقع التالي: https://storage.googleapis.com/tcfac/additional-consent-providers.csv

تتيح حزمة تطوير البرامج لمنصة UMP تخزين سلسلة الموافقة الإضافية، ما يسمح لك بإضافة شركاء إعلانات إلى الرسائل المنشورة لطلب موافقة المستخدمين بموجب "اللائحة العامة لحماية البيانات" (GDPR) بدون الحاجة إلى معرفة ما إذا كان الشركاء مسجَّلين في "إطار الشفافية والموافقة". عند استخدام منصة خارجية لإدارة الموافقة، يجب اتّباع الخطوات التالية:

  1. التأكّد من أنّ منصة إدارة الموافقة الخارجية تتيح تخزين سلسلة الموافقة الإضافية
  2. تضمين كل شريك توسّط في قائمة مزوّدي تقنية الإعلان الذين تستخدمهم منصة إدارة الموافقة الخارجية لجمع الموافقة
هل يمكنني تغيير طريقة عمل تطبيقي إذا لم يمنح المستخدمون الموافقة؟ هل تسمح بذلك السياسة؟

يمكن للناشرين قراءة سلسلة "إطار الشفافية والموافقة" الصادر عن مكتب IAB في تطبيقاتهم. يُرجى الاطّلاع على كيفية قراءة خيارات الموافقة للحصول على معلومات حول قراءة خيارات الموافقة آليًا. يجب أن يراجع الناشرون التزاماتهم بموجب اللوائح التنظيمية ذات الصلة مع مستشار قانوني.

عند النقر على إدارة الخيارات والموافقة على جميع الأغراض، لا تظهر لي أي إعلانات. ما سبب ذلك؟

بالإضافة إلى جمع الموافقة على الأغراض، عليك أيضًا جمع موافقة المورّد. تكون الموافقة على الأغراض وموافقة المورّد مطلوبتَين لأي مورّد، مثل Google، لعرض إعلانات مناسبة.

ما هي أفضل ممارسة لعرض كل من تنبيه إطار عمل شفافية تتبّع التطبيقات (ATT) على نظام التشغيل iOS والموافقة بموجب "اللائحة العامة لحماية البيانات" للمستخدم نفسه؟

ننصح بعرض رسالة طلب الموافقة بموجب "اللائحة العامة لحماية البيانات" أولاً وتنبيه إطار عمل شفافية تتبّع التطبيقات (ATT) على نظام التشغيل iOS ثانيًا إذا منح المستخدم الموافقة بموجب "اللائحة العامة لحماية البيانات". تتولّى حزمة تطوير البرامج لمنصة UMP هذه العملية إذا تم ضبط كلتا الرسالتَين في واجهة مستخدم "مدير الإعلانات". يُرجى الاطّلاع على الرسالة التي ستظهر للمستخدمين لمزيد من المعلومات.

إذا لم يتم عرض تنبيه إطار عمل شفافية تتبّع التطبيقات (ATT) باستخدام حزمة تطوير البرامج لمنصة UMP، ننصحك بقراءة خيارات الموافقة بعد جمع الموافقة بموجب "اللائحة العامة لحماية البيانات" لتحديد ما إذا كان سيتم عرض تنبيه إطار عمل شفافية تتبّع التطبيقات (ATT) على نظام التشغيل iOS.

كيف يمكنني تنفيذ الإصدار 2 من سلسلة الموافقة الإضافية للمستخدمين الذين سبق أن منحوا الموافقة على الإصدار 1؟

يُرجى التحقّق من المفتاح IABTCF_AddtlConsent في وحدة التخزين المحلية وفقًا لـ المواصفات الفنية لـ "الموافقة الإضافية" من Google لتحديد ما إذا كان المستخدم قد منح الموافقة على الإصدار 2 من سلسلة الموافقة الإضافية وما إذا كان عليك عرض نموذج الموافقة مرة أخرى.

Swift

// Example value: "2~1.35.41.101~dv.9.21.81"
let additionalConsent = UserDefaults.standard.string(forKey: "IABTCF_AddtlConsent")
// Index 0 contains information about the specification version number.
let isACVersion2 = additionalConsent?.first == "2"

Objective-C

// Example value: "2~1.35.41.101~dv.9.21.81"
NSString *additionalConsent = [NSUserDefaults.standardUserDefaults
                        stringForKey:@"IABTCF_AddtlConsent"];
// Index 0 contains information about the specification version number.
BOOL isACVersion2 = [additionalConsent hasPrefix:@"2"];