این صفحه برای توسعه دهندگانی است که از Google Analytics برای Firebase SDK در برنامه خود استفاده می کنند و می خواهند حالت رضایت را ادغام کنند. برای آشنایی با حالت رضایت، نمای کلی حالت رضایت را بخوانید.
Google Analytics حالت رضایت را برای تنظیم نحوه رفتار SDK شما بر اساس وضعیت رضایت کاربران ارائه می دهد. شما می توانید حالت رضایت را به صورت پایه یا پیشرفته پیاده سازی کنید. اگر مطمئن نیستید که حالت رضایت اولیه یا پیشرفته را اجرا کنید، درباره حالت رضایت اولیه در مقابل پیشرفته بیشتر بدانید و دستورالعملهای شرکت خود را بررسی کنید.
قبل از اینکه شروع کنی
قبل از اینکه بتوانید رضایت کاربر را مدیریت کنید، باید موارد زیر را اجرا کنید:
- Google Analytics برای Firebase SDK
یک بنر تنظیمات رضایت برای گرفتن رضایت کاربر
حالت رضایت را تنظیم کنید
برای تنظیم حالت رضایت، باید:
- قبل از اینکه کاربر رضایت دهد: مجموعه Analytics را موقتاً غیرفعال کنید .
- وضعیت رضایت پیش فرض را تنظیم کنید .
- وضعیت رضایت را بر اساس تعامل کاربر با تنظیمات رضایت خود بهروزرسانی کنید .
- مجموعه Analytics را دوباره فعال کنید .
مجموعه Analytics را موقتاً غیرفعال کنید
اجرای اولیه حالت رضایت به معنای مسدود کردن بارگیری Google Analytics برای Firebase SDK تا زمانی که کاربر رضایت خود را اعلام کند، است.
برای غیرفعال کردن موقت مجموعه Analytics، مقدار firebase_analytics_collection_enabled
را در AndroidManifest.xml
برنامه خود در تگ برنامه روی false
قرار دهید. مثلا:
<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" />
مجموعه Analytics را دوباره فعال کنید
پس از رضایت کاربر، مجموعه Analytics را دوباره با استفاده از روشsetAnalyticsCollectionEnabled()
فعال کنید. مقدار تنظیم شده توسط روش setAnalyticsCollectionEnabled
در اجرای برنامه باقی می ماند و مقدار FIREBASE_ANALYTICS_COLLECTION_ENABLED
در فایل AndroidManifest.xml
برنامه شما را لغو می کند. هنگامی که مقداری را برای setAnalyticsCollectionEnabled
تنظیم کردید، مجموعه Analytics در آن حالت باقی می ماند تا زمانی که setAnalyticsCollectionEnabled
دوباره فراخوانی شود، حتی اگر کاربر برنامه شما را ببندد و دوباره باز کند.
برای به روز رسانی مجموعه Analytics:
setAnalyticsCollectionEnabled(true);
بهروزرسانی رضایت
برای بهروزرسانی مقادیر رضایت پس از راهاندازی برنامه، با روش setConsent
تماس بگیرید.
مقدار تنظیم شده توسط روش setConsent
، تنظیم پیش فرض را لغو می کند و در اجرای برنامه ها باقی می ماند. این مقدار تا زمانی که setConsent
دوباره فراخوانی نشود، در آن حالت باقی میماند، حتی اگر کاربر برنامه را ببندد و دوباره باز کند. setConsent
فقط پارامترهایی را که شما مشخص کرده اید به روز می کند.
اگر کاربری رضایت قبلی خود را برای Analytics یا ذخیرهسازی آگهی پس بگیرد، Google Analytics همه ویژگیهای کاربر، از جمله رضایت برای
ad_personalization
را حذف میکند. برای حفظ رضایت کاربر برای شخصیسازی آگهی، مقدار قبلی را برای شخصیسازی آگهی با استفاده ازsetConsent
( Kotlin+KTX | Java ) بازیابی کنید.
مثال زیر روش setConsent
را نشان می دهد که مقادیر رضایت متفاوت را به granted
به روز می کند:
جاوا
// 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);
کاتلین
Firebase.analytics.setConsent {
analyticsStorage(ConsentStatus.GRANTED)
adStorage(ConsentStatus.GRANTED)
adUserData(ConsentStatus.GRANTED)
adPersonalization(ConsentStatus.GRANTED)
}