Google User Messaging Platform (UMP) SDK ابزاری برای حفظ حریم خصوصی و پیامرسانی است که به شما در مدیریت انتخابهای حریم خصوصی کمک میکند. برای اطلاعات بیشتر، درباره حریم خصوصی و پیامرسانی را ببینید.
یک نوع پیام ایجاد کنید
پیامهای کاربر را با یکی از انواع پیامهای کاربر موجود در برگه حریم خصوصی و پیامرسانی حساب AdMob خود ایجاد کنید. UMP SDK سعی میکند پیام حریم خصوصی ایجاد شده از AdMob Application ID را در پروژه شما نمایش دهد.
برای جزئیات بیشتر، درباره حریم خصوصی و پیامرسانی را ببینید.
جلب رضایت
برای جلب رضایت، مراحل زیر را انجام دهید:
- درخواست برای آخرین اطلاعات رضایت کاربر.
- در صورت نیاز فرم رضایت نامه را بارگیری و ارائه دهید.
درخواست اطلاعات رضایت
شما باید در هر راه اندازی برنامه با استفاده از Update()
درخواست به روز رسانی اطلاعات رضایت کاربر را بدهید. این درخواست موارد زیر را بررسی می کند:
- آیا رضایت لازم است . به عنوان مثال، برای بار اول رضایت لازم است، یا تصمیم قبلی رضایت منقضی شده است.
- آیا یک نقطه ورود گزینه های حریم خصوصی مورد نیاز است یا خیر . برخی از پیامهای حریم خصوصی به برنامهها نیاز دارند که به کاربران اجازه دهند گزینههای حریم خصوصی خود را در هر زمان تغییر دهند.
در صورت نیاز فرم پیام حریم خصوصی را بارگیری و ارائه دهید
پس از دریافت بهروزترین وضعیت رضایت، با LoadAndShowConsentFormIfRequired()
تماس بگیرید تا فرمهای مورد نیاز برای جمعآوری رضایت کاربر بارگیری شود. پس از بارگذاری، فرم ها بلافاصله ارائه می شوند.
کد زیر نحوه درخواست آخرین اطلاعات رضایت کاربر را نشان می دهد. در صورت نیاز، کد بارگیری می شود و فرم پیام حریم خصوصی را ارائه می دهد:
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// 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.
});
}
گزینه های حفظ حریم خصوصی
برخی از فرمهای پیام حریم خصوصی از نقطه ورود گزینههای حریم خصوصی ارائهشده توسط ناشر ارائه میشوند و به کاربران اجازه میدهند گزینههای حریم خصوصی خود را در هر زمان مدیریت کنند. برای اطلاعات بیشتر در مورد پیامی که کاربران شما در نقطه ورودی گزینههای حریم خصوصی میبینند، به انواع پیامهای کاربر موجود مراجعه کنید.
برای پیاده سازی یک نقطه ورود گزینه های حریم خصوصی، مراحل زیر را انجام دهید:
- پس از اینکه
Update()
فراخوانی کردید،PrivacyOptionsRequirementStatus
را علامت بزنید تا مشخص شود که آیا یک نقطه ورود گزینه های حریم خصوصی مورد نیاز است یا خیر. - در صورت نیاز، یک عنصر رابط کاربری قابل مشاهده و قابل تعامل به برنامه خود اضافه کنید تا به عنوان نقطه ورود گزینه های حریم خصوصی عمل کند. اگر نقطه ورود حریم خصوصی مورد نیاز نیست، عنصر رابط کاربری خود را طوری پیکربندی کنید که قابل مشاهده و تعامل نباشد.
- فرم گزینه های حریم خصوصی را با استفاده از
ShowPrivacyOptionsForm()
ارائه دهید.
مثال کد زیر این مراحل را نشان می دهد:
[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.ShowPrivacyOptionsForm((FormError showError) =>
{
if (showError != null)
{
Debug.LogError("Error showing privacy options form with error: " + showError.Message);
}
// Enable the privacy settings button.
UpdatePrivacyButton();
});
}
/// <summary>
/// Updates the privacy buttons visual state based on the consent information.
/// </summary>
void UpdatePrivacyButton()
{
if (_privacyButton != null)
{
_privacyButton.interactable =
ConsentInformation.PrivacyOptionsRequirementStatus ==
PrivacyOptionsRequirementStatus.Required;
}
}
درخواست تبلیغات
قبل از درخواست تبلیغات در برنامه خود، بررسی کنید که آیا رضایت کاربر را با استفاده از CanRequestAds()
دریافت کرده اید یا خیر. هنگام جمع آوری رضایت دو مکان برای بررسی وجود دارد:
- پس از کسب رضایت در جلسه جاری.
- بلافاصله پس از اینکه
Update()
را فراخوانی کردید. امکان دارد در جلسه قبل رضایت گرفته شده باشد. بهعنوان بهترین روش تأخیر، توصیه میکنیم منتظر تکمیل تماس نمانید تا بتوانید در اسرع وقت پس از راهاندازی برنامه، بارگیری تبلیغات را شروع کنید.
اگر در فرآیند جمعآوری رضایت خطایی رخ داد، همچنان باید بررسی کنید که آیا میتوانید آگهی درخواست کنید یا خیر. UMP SDK از وضعیت رضایت جلسه قبل استفاده می کند.
void Start()
{
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters();
// 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.
});
}
});
}
تست کردن
اگر میخواهید یکپارچهسازی برنامه خود را در حین توسعه آزمایش کنید، این مراحل را دنبال کنید تا دستگاه آزمایشی خود را به صورت برنامهنویسی ثبت کنید. قبل از انتشار برنامه، حتماً کدی را که این شناسههای دستگاه آزمایشی را تنظیم میکند حذف کنید.
- Call
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" } }; // Create a ConsentRequestParameters object. ConsentRequestParameters request = new ConsentRequestParameters { ConsentDebugSettings = debugSettings, }; // Check the current consent information status. ConsentInformation.Update(request, OnConsentInfoUpdated); }
جغرافی اجباری
UMP SDK با استفاده از DebugGeography
روشی را برای آزمایش رفتار برنامه شما فراهم میکند که گویی دستگاه در مناطق مختلفی مانند EEA یا بریتانیا قرار دارد. توجه داشته باشید که تنظیمات اشکال زدایی فقط در دستگاه های آزمایشی کار می کند.
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"
}
};
// Create a ConsentRequestParameters object.
ConsentRequestParameters request = new ConsentRequestParameters
{
ConsentDebugSettings = debugSettings,
};
// Check the current consent information status.
ConsentInformation.Update(request, OnConsentInfoUpdated);
}
وضعیت رضایت را بازنشانی کنید
هنگام آزمایش برنامه خود با UMP SDK، ممکن است برای شما مفید باشد که وضعیت SDK را بازنشانی کنید تا بتوانید اولین تجربه نصب کاربر را شبیه سازی کنید. SDK متد Reset()
را برای این کار فراهم می کند.
ConsentInformation.Reset();
نمونه هایی در GitHub
نمونه کاملی از ادغام UMP SDK که در این صفحه در HelloWorld پوشش داده شده است را ببینید.