تنظیم حالت رضایت برای برنامه ها، تنظیم حالت رضایت برای برنامه ها

این صفحه برای توسعه دهندگانی است که از Google Analytics برای Firebase SDK در برنامه خود استفاده می کنند و می خواهند حالت رضایت را ادغام کنند. برای آشنایی با حالت رضایت، نمای کلی حالت رضایت را بخوانید.

Google Analytics حالت رضایت را برای تنظیم نحوه رفتار SDK شما بر اساس وضعیت رضایت کاربران ارائه می دهد. شما می توانید حالت رضایت را به صورت پایه یا پیشرفته پیاده سازی کنید. اگر مطمئن نیستید که حالت رضایت اولیه یا پیشرفته را اجرا کنید، درباره حالت رضایت اولیه در مقابل پیشرفته بیشتر بدانید و دستورالعمل‌های شرکت خود را بررسی کنید.

قبل از اینکه شروع کنی

قبل از اینکه بتوانید رضایت کاربر را مدیریت کنید، باید موارد زیر را اجرا کنید:

  • Google Analytics برای Firebase SDK
  • یک بنر تنظیمات رضایت برای گرفتن رضایت کاربر

برای تنظیم حالت رضایت، باید:

  1. قبل از اینکه کاربر رضایت دهد: مجموعه Analytics را موقتاً غیرفعال کنید .
  2. وضعیت رضایت پیش فرض را تنظیم کنید .
  3. وضعیت رضایت را بر اساس تعامل کاربر با تنظیمات رضایت خود به‌روزرسانی کنید .
  4. مجموعه 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" />

به طور پیش فرض، هیچ مقدار حالت رضایت تنظیم نشده است. برای تنظیم وضعیت رضایت پیش‌فرض برای برنامه‌تان:

  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" />

مجموعه 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)
}