تحت خطمشی رضایت کاربر اتحادیه اروپا Google، شما باید اطلاعات مشخصی را برای کاربران خود در منطقه اقتصادی اروپا (EEA) همراه با بریتانیا انجام دهید و رضایت آنها را برای استفاده از کوکیها یا سایر فضای ذخیرهسازی محلی، در صورت نیاز قانونی، و استفاده از دادههای شخصی کسب کنید ( مانند AdID) برای ارائه تبلیغات. این سیاست منعکس کننده الزامات دستورالعمل حریم خصوصی الکترونیک اتحادیه اروپا و مقررات عمومی حفاظت از داده ها (GDPR) است.
برای حمایت از ناشران در انجام وظایف خود تحت این خطمشی، Google پلتفرم پیامرسانی کاربر (UMP) SDK را ارائه میدهد. UMP SDK برای پشتیبانی از آخرین استانداردهای IAB به روز شده است. همه این پیکربندیها اکنون میتوانند به راحتی در حریم خصوصی و پیامرسانی AdMob مدیریت شوند.
پیش نیازها
- راهنمای شروع را کامل کنید
- اگر روی الزامات مربوط به GDPR کار می کنید،چگونه الزامات IAB بر پیام های رضایت اتحادیه اروپا تأثیر می گذاردچگونه الزامات IAB بر پیام های رضایت اتحادیه اروپا تأثیر می گذارد
یک نوع پیام ایجاد کنید
پیامهای کاربری را با یکی از انواع پیام کاربرموجوددر برگه حریم خصوصی و پیامرسانیAdMobAd Manager108 خود ایجاد کنید. UMP SDK سعی می کند یک پیام کاربر ایجاد شده از شناسه برنامه AdMob را در پروژه شما نمایش دهد. اگر هیچ پیامی برای برنامه شما پیکربندی نشده باشد، SDK یک خطا برمیگرداند.
برای جزئیات بیشتر،درباره حریم خصوصی و پیامرسانی را ببینید.
درخواست اطلاعات رضایت
باید در هر راهاندازی برنامه، با استفاده از Update()
درخواست بهروزرسانی اطلاعات رضایت کاربر را بدهید. این تعیین می کند که آیا کاربر شما باید رضایت خود را ارائه دهد، اگر قبلاً این کار را نکرده است یا اینکه رضایت او منقضی شده است.
در اینجا مثالی از نحوه بررسی وضعیت در شروع برنامه آورده شده است:
void Start()
{
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
}
در صورت نیاز فرم رضایت را بارگیری و نمایش دهید
مهم: API های زیر با UMP SDK نسخه 2.1.0 یا بالاتر سازگار هستند. پس از دریافت به روزترین وضعیت رضایت، باLoadAndShowConsentFormIfRequired()
در کلاسConsentForm
تماس بگیرید تا فرم رضایت بارگیری شود. اگر وضعیت رضایت مورد نیاز باشد، SDK فرمی را بارگیری میکند و بلافاصله آن راارائه شده ارائه میکند. Action<FormError>
callbackپس از رد شدن فرم نامیده می شود. اگر رضایت لازم نباشد، Action<FormError>
callbackبلافاصله نامیده می شود.
void Start()
{
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
});
}
اگر پس از انتخاب کاربر یا رد کردن فرم، نیاز به انجام هر کاری دارید، آن منطق را در Action<FormError>
callbackبرای فرم خود قرار دهید.
درخواست تبلیغات
قبل از درخواست تبلیغات در برنامه خود، بررسی کنید که آیا رضایت کاربر را با استفاده از دریافت کرده اید یا خیر. هنگام جمع آوری رضایت دو مکان برای بررسی وجود دارد:
- هنگامی که رضایت در جلسه جاری جمع آوری شد.
- بلافاصله پس از تماس با
Update()
. امکان دارد در جلسه قبل رضایت گرفته شده باشد. بهعنوان بهترین روش تأخیر، توصیه میکنیم منتظر تکمیل تماس نمانید تا بتوانید در اسرع وقت پس از راهاندازی برنامه، بارگیری تبلیغات را شروع کنید.
اگر در فرآیند جمعآوری رضایت خطایی رخ داد، همچنان باید سعی کنید تبلیغات را درخواست کنید. UMP SDK از وضعیت رضایت جلسه قبل استفاده می کند.
void Start()
{
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
void OnConsentInfoUpdated(FormError consentError)
{
if (consentError != null)
{
// Handle the error.
UnityEngine.Debug.LogError(consentError);
return;
}
// If the error is null, the consent information state was updated.
// You are now ready to check if a form is available.
ConsentForm.LoadAndShowConsentFormIfRequired((FormError formError) =>
{
if (formError != null)
{
// Consent gathering failed.
UnityEngine.Debug.LogError(consentError);
return;
}
// Consent has been gathered.
if (ConsentInformation.CanRequestAds())
{
MobileAds.Initialize((InitializationStatus initstatus) =>
{
// TODO: Request an ad.
});
}
});
}
گزینه های حفظ حریم خصوصی
برخی از فرمهای رضایت از کاربر میخواهند که رضایت خود را در هر زمانی تغییر دهد. برای اجرای دکمه گزینه های حریم خصوصی در صورت لزوم، مراحل زیر را رعایت کنید.
برای انجام این کار:
- یک عنصر رابط کاربری، مانند دکمهای در صفحه تنظیمات برنامهتان، که میتواند فرم گزینههای حریم خصوصی را راهاندازی کند، پیادهسازی کنید.
- هنگامی که
LoadAndShowConsentFormIfRequired()
کامل شد، بررسی کنید تا مشخص شود که آیا عنصر UI که می تواند فرم گزینه های حریم خصوصی را ارائه دهد، نمایش داده شود. - هنگامی که کاربر با عنصر UI شما تعامل می کند، با تماس بگیرید تا فرم را نشان دهد تا کاربر بتواند گزینه های حریم خصوصی خود را در هر زمانی به روز کند.
مثال زیر نشان می دهد که چگونه می توان فرم گزینه های حریم خصوصی را از یک Button
نشان داد.
[SerializeField, Tooltip("Button to show the privacy options form.")]
private Button _privacyButton;
private void Start()
{
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.onClick.AddListener(UpdatePrivacyButton);
// Disable the privacy settings button by default.
_privacyButton.interactable = false;
}
}
/// <summary>
/// Shows the privacy options form to the user.
/// </summary>
public void ShowPrivacyOptionsForm()
{
Debug.Log("Showing privacy options form.");
ConsentForm.LoadAndShowConsentFormIfRequired((FormError showError) =>
{
if (showError != null)
{
Debug.LogError("Error showing privacy options form with error: " + showError.Message);
}
// Enable the privacy settings button.
if (_privacyButton != null)
{
_privacyButton.interactable =
ConsentInformation.PrivacyOptionsRequirementStatus ==
PrivacyOptionsRequirementStatus.Required;
}
});
}
آزمایش کردن
اگر میخواهید یکپارچهسازی برنامه خود را در حین توسعه آزمایش کنید، مراحل زیر را دنبال کنید تا دستگاه آزمایشی خود را به صورت برنامهنویسی ثبت کنید.
- با
Update()
تماس بگیرید. خروجی گزارش را برای پیامی مانند پیام زیر بررسی کنید، که شناسه دستگاه شما و نحوه افزودن آن را به عنوان یک دستگاه آزمایشی به شما نشان میدهد:
اندروید
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
iOS
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
شناسه دستگاه آزمایشی خود را در کلیپ بورد خود کپی کنید.
کد خود را بهبا
DebugGeography.TestDeviceHashedIds
تماس بگیرید و لیستی از شناسه های دستگاه آزمایشی خود را درارسال کنید.
void Start()
{
var debugSettings = new ConsentDebugSettings
{
TestDeviceHashedIds =
new List<string>
{
"TEST-DEVICE-HASHED-ID"
}
};
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
جغرافی اجباری
UMP SDK راهی برای آزمایش رفتار برنامه شما ارائه میکند که گویی دستگاه در منطقه اقتصادی اروپا یا بریتانیا با استفاده از the DebugGeography
field on ConsentDebugSettings
واقع شده است. توجه داشته باشید که تنظیمات اشکال زدایی فقط در دستگاه های آزمایشی کار می کند.
void Start()
{
var debugSettings = new ConsentDebugSettings
{
// Geography appears as in EEA for debug devices.
DebugGeography = DebugGeography.EEA,
TestDeviceHashedIds = new List<string>
{
"TEST-DEVICE-HASHED-ID"
}
};
// Set tag for under age of consent.
// Here false means users are not under age of consent.
ConsentRequestParameters request = new ConsentRequestParameters
{
TagForUnderAgeOfConsent = false,
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
وضعیت رضایت را بازنشانی کنید
در آزمایش برنامه خود با UMP SDK، ممکن است بازنشانی وضعیت SDK برای شما مفید باشد تا بتوانید اولین تجربه نصب کاربر را شبیه سازی کنید. SDK روش Reset()
را برای انجام این کار ارائه می دهد.
ConsentInformation.Reset();