هذه الصفحة مخصّصة للمطوّرين الذين يستخدِمون حزمة تطوير البرامج (SDK) لخدمة "إحصاءات Google لبرنامج Firebase" في تطبيقاتهم ويريدون دمج وضع الموافقة. للاطّلاع على مقدمة عن "وضع الموافقة"، يُرجى الاطّلاع على نظرة عامة حول "وضع الموافقة".
توفّر "إحصاءات Google" ميزة "وضع الموافقة" لتعديل سلوك حزمة تطوير البرامج (SDK) استنادًا إلى حالة الموافقة للمستخدمين. يمكنك تنفيذ وضع الموافقة بطريقة أساسية أو متقدّمة إذا لم تكن متأكّدًا من تنفيذ وضع الموافقة الأساسية أو المتقدّمة، يمكنك الاطّلاع على مزيد من المعلومات عن وضع الموافقة الأساسية في مقابل وضع الموافقة المتقدّمة والتحقّق من إرشادات شركتك.
قبل البدء
قبل أن تتمكّن من إدارة موافقة المستخدِم، عليك تنفيذ ما يلي:
- حزمة تطوير البرامج (SDK) الخاصة بإصدار "إحصاءات Google لبرنامج Firebase"
بانر إعدادات الموافقة للحصول على موافقة المستخدم
إعداد وضع الموافقة
لإعداد وضع الموافقة، عليك إجراء ما يلي:
- قبل أن يمنح المستخدم موافقته: أوقِف مجموعة "إحصاءات Google" مؤقتًا.
- ضبط حالة الموافقة التلقائية
- عدِّل حالة الموافقة استنادًا إلى تفاعل المستخدم مع إعدادات الموافقة.
- أعِد تفعيل مجموعة "إحصاءات Google".
إيقاف جمع البيانات في "إحصاءات Google" مؤقتًا
يعني التنفيذ الأساسي لميزة "وضع الموافقة" حظر تحميل حزمة تطوير البرامج (SDK) الخاصة بإصدار "إحصاءات Google لبرنامج Firebase" إلى أن يمنح المستخدم موافقته.
لإيقاف جمع البيانات في "إحصاءات Google" مؤقتًا، اضبط القيمة firebase_analytics_collection_enabled
على false
في علامة
AndroidManifest.xml
لتطبيقك في علامة التطبيق. مثال:
<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />
ضبط حالة الموافقة التلقائية
لا يتم ضبط قيم "وضع الموافقة" تلقائيًا. لضبط حالة الموافقة التلقائية لتطبيقك، عليك اتّباع الخطوات التالية:
- افتح ملف AndroidManifest.xml الخاص بتطبيقك.
أضِف أزواج المفتاح/القيمة لوضع الموافقة. يصف المفتاح نوع الموافقة وتشير القيمة إلى حالة الموافقة. يمكن أن تكون القيم
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
احفظ التغييرات. بعد ذلك، عليك تنفيذ الآلية الخاصة بتعديل قيم الموافقة.
على سبيل المثال، لضبط كل موافقات المنح لجميع المَعلمات تلقائيًا:
<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)
}