إعداد وضع الموافقة للتطبيقات

هذه الصفحة مخصّصة للمطوّرين الذين يستخدِمون حزمة تطوير البرامج (SDK) لخدمة "إحصاءات Google لبرنامج Firebase" في تطبيقاتهم ويريدون دمج وضع الموافقة. للاطّلاع على مقدمة عن "وضع الموافقة"، يُرجى الاطّلاع على نظرة عامة حول "وضع الموافقة".

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

قبل البدء

قبل أن تتمكّن من إدارة موافقة المستخدِم، عليك تنفيذ ما يلي:

لإعداد وضع الموافقة، عليك إجراء ما يلي:

  1. قبل أن يمنح المستخدم موافقته: أوقِف مجموعة "إحصاءات Google" مؤقتًا.
  2. ضبط حالة الموافقة التلقائية
  3. عدِّل حالة الموافقة استنادًا إلى تفاعل المستخدم مع إعدادات الموافقة.
  4. أعِد تفعيل مجموعة "إحصاءات Google".

إيقاف جمع البيانات في "إحصاءات Google" مؤقتًا

يعني التنفيذ الأساسي لميزة "وضع الموافقة" حظر تحميل حزمة تطوير البرامج (SDK) الخاصة بإصدار "إحصاءات Google لبرنامج Firebase" إلى أن يمنح المستخدم موافقته.

لإيقاف جمع البيانات في "إحصاءات Google" مؤقتًا، اضبط القيمة firebase_analytics_collection_enabled على false في علامة AndroidManifest.xml لتطبيقك في علامة التطبيق. مثال:

<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />

لا يتم ضبط قيم "وضع الموافقة" تلقائيًا. لضبط حالة الموافقة التلقائية لتطبيقك، عليك اتّباع الخطوات التالية:

  1. افتح ملف AndroidManifest.xml الخاص بتطبيقك.
  2. أضِف أزواج المفتاح/القيمة لوضع الموافقة. يصف المفتاح نوع الموافقة وتشير القيمة إلى حالة الموافقة. يمكن أن تكون القيم true، ما يعني أنّه تم منح الموافقة، أو false، ما يعني أنّه تم رفض الموافقة. اضبط ما يلي:

    • google_analytics_default_allow_analytics_storage
    • google_analytics_default_allow_ad_storage
    • google_analytics_default_allow_ad_user_data
    • google_analytics_default_allow_ad_personalization_signals
  3. احفظ التغييرات. بعد ذلك، عليك تنفيذ الآلية الخاصة بتعديل قيم الموافقة.

على سبيل المثال، لضبط كل موافقات المنح لجميع المَعلمات تلقائيًا:

<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />

إعادة تفعيل مجموعة "إحصاءات Google"

بعد منح المستخدم موافقته، فعِّل خيار جمع البيانات في "إحصاءات Google" مرة أخرى باستخدام طريقة setAnalyticsCollectionEnabled().

تظل القيمة التي تحدّدها الطريقة setAnalyticsCollectionEnabled في جميع عمليات تنفيذ التطبيق وتلغي قيمة FIREBASE_ANALYTICS_COLLECTION_ENABLED في ملف AndroidManifest.xml الخاص بتطبيقك. بعد ضبط قيمة setAnalyticsCollectionEnabled، تظل مجموعة "إحصاءات Google" على هذه الحالة إلى أن يتم استدعاء setAnalyticsCollectionEnabled مرة أخرى، حتى إذا أغلق المستخدِم تطبيقك وأعاد فتحه.

لتعديل مجموعة "إحصاءات Google":

setAnalyticsCollectionEnabled(true);

لتعديل قيم الموافقة بعد إطلاق تطبيق، عليك طلب طريقة setConsent.

تلغي القيمة التي تحدّدها الطريقة setConsent الإعداد التلقائي، وتظل قائمة في جميع عمليات تنفيذ التطبيقات. تظل القيمة على هذه الحالة إلى أن يتم استدعاء setConsent مرة أخرى، حتى إذا أغلق المستخدم التطبيق وأعاد فتحه. لا يعدِّل setConsent المَعلمات التي تحدّدها فقط.

إذا سحب أحد المستخدمين موافقته السابقة على "إحصاءات Google" أو مساحة تخزين الإعلانات، ستحذف "إحصاءات Google" جميع خصائص المستخدمين، بما في ذلك الموافقة على ad_personalization. للحفاظ على خيار موافقة المستخدم لتخصيص الإعلانات، عليك استعادة القيمة السابقة لتخصيص الإعلانات باستخدام setConsent (Kotlin+KTX | Java) .

يعرض المثال التالي طريقة setConsent لتعديل قيم الموافقة المختلفة إلى granted:

Java

// Set consent types.
Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);

mFirebaseAnalytics.setConsent(consentMap);

Kotlin

Firebase.analytics.setConsent {
  analyticsStorage(ConsentStatus.GRANTED)
  adStorage(ConsentStatus.GRANTED)
  adUserData(ConsentStatus.GRANTED)
  adPersonalization(ConsentStatus.GRANTED)
}