کیت توسعه نرمافزار پلتفرم پیامرسانی کاربر گوگل (UMP) ابزاری برای حفظ حریم خصوصی و پیامرسانی است که به شما در مدیریت گزینههای حریم خصوصی کمک میکند. برای اطلاعات بیشتر، به «درباره حریم خصوصی و پیامرسانی» مراجعه کنید. میتوانید یک پیادهسازی IMA کارآمد با UMP SDK را در برنامه نمونه UMP مشاهده کنید.
پیشنیازها
- اندروید API سطح ۲۱ یا بالاتر
ایجاد نوع پیام
پیامهای کاربری را با یکی از انواع پیامهای کاربری موجود در زیر برگه حریم خصوصی و پیامرسانی حساب مدیریت تبلیغات خود ایجاد کنید. UMP SDK تلاش میکند یک پیام حریم خصوصی ایجاد شده از شناسه برنامه تبلیغات رسانهای تعاملی تنظیم شده در پروژه شما را نمایش دهد.
برای جزئیات بیشتر، به «درباره حریم خصوصی و پیامرسانی» مراجعه کنید.
نصب با Gradle
وابستگی مربوط به SDK پلتفرم پیامرسانی کاربر گوگل را به فایل Gradle سطح برنامه ماژول خود، که معمولاً app/build.gradle ، اضافه کنید:
dependencies {
implementation("com.google.android.ump:user-messaging-platform:3.1.0")
}
پس از ایجاد تغییرات در build.gradle برنامه خود، حتماً پروژه خود را با فایلهای Gradle همگامسازی کنید.
شناسه برنامه را اضافه کنید
میتوانید شناسه برنامه خود را در رابط کاربری Ad Manager پیدا کنید. شناسه را با استفاده از قطعه کد زیر به AndroidManifest.xml خود اضافه کنید:
<manifest>
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
دریافت اطلاعات رضایت کاربر
برای دریافت اطلاعات رضایت کاربر، موارد زیر را انجام دهید:
یک نمونه از ConsentInformation تعریف کنید:
جاوا
private final ConsentInformation consentInformation;
کاتلین
private lateinit val consentInformation: ConsentInformation
نمونه ConsentInformation مقداردهی اولیه کنید:
جاوا
consentInformation = UserMessagingPlatform.getConsentInformation(context);
کاتلین
consentInformation = UserMessagingPlatform.getConsentInformation(context)
شما باید در هر بار اجرای برنامه، با استفاده از requestConsentInfoUpdate() درخواست بهروزرسانی اطلاعات رضایت کاربر را بدهید. این درخواست موارد زیر را بررسی میکند:
- آیا رضایت لازم است ؟ برای مثال، آیا برای اولین بار رضایت لازم است یا تصمیم رضایت قبلی منقضی شده است.
- اینکه آیا به نقطه ورود گزینههای حریم خصوصی نیاز است یا خیر . برخی از پیامهای حریم خصوصی از برنامهها میخواهند که به کاربران اجازه دهند گزینههای حریم خصوصی خود را در هر زمانی تغییر دهند.
جاوا
// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
activity,
params,
() -> // Called when consent information is successfully updated.
requestConsentError -> // Called when there's an error updating consent information.
کاتلین
// Requesting an update to consent information should be called on every app launch.
consentInformation.requestConsentInfoUpdate(
activity,
params,
{
// Called when consent information is successfully updated.
},
{ requestConsentError -> // Called when there's an error updating consent information.
},
)
فرم پیام حریم خصوصی را بارگیری و ارائه دهید
پس از دریافت آخرین وضعیت رضایت، تابع loadAndShowConsentFormIfRequired() را برای بارگذاری هر فرم مورد نیاز برای جمعآوری رضایت کاربر فراخوانی کنید. پس از بارگذاری، فرمها بلافاصله نمایش داده میشوند.
جاوا
UserMessagingPlatform.loadAndShowConsentFormIfRequired(
activity,
formError -> {
// Consent gathering process is complete.
});
کاتلین
UserMessagingPlatform.loadAndShowConsentFormIfRequired(activity) { formError ->
// Consent gathering is complete.
}
گزینههای حریم خصوصی
برخی از فرمهای پیامهای حریم خصوصی از یک نقطه ورود گزینههای حریم خصوصی ارائه شده توسط ناشر ارائه میشوند و به کاربران اجازه میدهند گزینههای حریم خصوصی خود را در هر زمانی مدیریت کنند. برای کسب اطلاعات بیشتر در مورد اینکه کاربران شما در نقطه ورود گزینههای حریم خصوصی چه پیامی را میبینند، به انواع پیامهای موجود برای کاربر مراجعه کنید.
بررسی کنید که آیا به نقطه ورود گزینههای حریم خصوصی نیاز است یا خیر
پس از فراخوانی requestConsentInfoUpdate() ، تابع getPrivacyOptionsRequirementStatus() را بررسی کنید تا مشخص شود که آیا نقطه ورود گزینههای حریم خصوصی برای برنامه شما مورد نیاز است یا خیر. اگر نقطه ورود مورد نیاز است، یک عنصر رابط کاربری قابل مشاهده و قابل تعامل به برنامه خود اضافه کنید که فرم گزینههای حریم خصوصی را ارائه دهد. اگر نقطه ورود حریم خصوصی مورد نیاز نیست، عنصر رابط کاربری خود را طوری پیکربندی کنید که قابل مشاهده و قابل تعامل نباشد.
جاوا
/** Helper function to determine if a privacy options entry point is required. */
public boolean isPrivacyOptionsRequired() {
return consentInformation.getPrivacyOptionsRequirementStatus()
== PrivacyOptionsRequirementStatus.REQUIRED;
}
کاتلین
/** Helper variable to determine if the privacy options form is required. */
val isPrivacyOptionsRequired: Boolean
get() =
consentInformation.privacyOptionsRequirementStatus ==
ConsentInformation.PrivacyOptionsRequirementStatus.REQUIRED
برای فهرست کامل وضعیتهای الزامات گزینههای حریم خصوصی، به ConsentInformation.PrivacyOptionsRequirementStatus مراجعه کنید.
فرم گزینههای حریم خصوصی را ارائه دهید
وقتی کاربر با عنصر شما تعامل میکند، فرم گزینههای حریم خصوصی را نمایش دهید:
جاوا
UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener);
کاتلین
UserMessagingPlatform.showPrivacyOptionsForm(activity, onConsentFormDismissedListener)
درخواست تبلیغات با رضایت کاربر
قبل از درخواست تبلیغات، از canRequestAds() برای بررسی اینکه آیا رضایت کاربر را دریافت کردهاید یا خیر، استفاده کنید:
جاوا
consentInformation.canRequestAds();
کاتلین
consentInformation.canRequestAds()
مکانهای زیر برای بررسی اینکه آیا میتوانید ضمن جمعآوری رضایت، درخواست تبلیغات دهید، فهرست شدهاند:
- پس از اینکه UMP SDK در جلسه فعلی رضایت را جمع آوری کرد.
- بلافاصله پس از اینکه
requestConsentInfoUpdate()فراخوانی کردید. ممکن است UMP SDK در جلسه قبلی برنامه، رضایت را دریافت کرده باشد.
اگر در طول فرآیند جمعآوری رضایت خطایی رخ داد، بررسی کنید که آیا میتوانید درخواست تبلیغات دهید یا خیر. UMP SDK از وضعیت رضایت جلسه قبلی برنامه استفاده میکند.
جلوگیری از کارهای تکراری درخواست تبلیغات
همانطور که canRequestAds() پس از جمعآوری رضایت و پس از فراخوانی requestConsentInfoUpdate() بررسی میکنید، مطمئن شوید که منطق شما از درخواستهای تبلیغاتی اضافی که ممکن است منجر به برگرداندن true در هر دو بررسی شوند، جلوگیری میکند. برای مثال، با یک متغیر بولی.
آزمایش
اگر میخواهید در حین توسعه، ادغام را در برنامه خود آزمایش کنید، این مراحل را برای ثبت برنامهای دستگاه آزمایشی خود دنبال کنید. قبل از انتشار برنامه، حتماً کدی را که این شناسههای دستگاه آزمایشی را تنظیم میکند، حذف کنید.
- فراخوانی
requestConsentInfoUpdate(). خروجی گزارش را برای پیامی مشابه مثال زیر بررسی کنید، که شناسه دستگاه شما و نحوه اضافه کردن آن به عنوان یک دستگاه آزمایشی را نشان میدهد:
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.شناسه دستگاه آزمایشی خود را در کلیپبورد کپی کنید.
کد خود را طوری تغییر دهید که
ConsentDebugSettings.Builder().addTestDeviceHashedId()فراخوانی کند و لیستی از شناسههای دستگاههای آزمایشی شما را به آن ارسال کند.جاوا
ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this) .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID") .build(); ConsentRequestParameters params = new ConsentRequestParameters .Builder() .setConsentDebugSettings(debugSettings) .build(); consentInformation = UserMessagingPlatform.getConsentInformation(this); // Include the ConsentRequestParameters in your consent request. consentInformation.requestConsentInfoUpdate( this, params, // ... );کاتلین
val debugSettings = ConsentDebugSettings.Builder(this) .addTestDeviceHashedId("TEST-DEVICE-HASHED-ID") .build() val params = ConsentRequestParameters .Builder() .setConsentDebugSettings(debugSettings) .build() consentInformation = UserMessagingPlatform.getConsentInformation(this) // Include the ConsentRequestParameters in your consent request. consentInformation.requestConsentInfoUpdate( this, params, // ... )
یک جغرافیا را تحمیل کنید
کیت توسعه نرمافزار UMP با استفاده از DebugGeography روشی را برای آزمایش رفتار برنامه شما فراهم میکند، گویی دستگاه در مناطق مختلفی مانند EEA یا UK قرار دارد. توجه داشته باشید که تنظیمات اشکالزدایی فقط روی دستگاههای آزمایشی کار میکنند.
جاوا
ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(this)
.setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
.addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
.build();
ConsentRequestParameters params = new ConsentRequestParameters
.Builder()
.setConsentDebugSettings(debugSettings)
.build();
consentInformation = UserMessagingPlatform.getConsentInformation(this);
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
this,
params,
...
);
کاتلین
val debugSettings = ConsentDebugSettings.Builder(this)
.setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
.addTestDeviceHashedId("TEST-DEVICE-HASHED-ID")
.build()
val params = ConsentRequestParameters
.Builder()
.setConsentDebugSettings(debugSettings)
.build()
consentInformation = UserMessagingPlatform.getConsentInformation(this)
// Include the ConsentRequestParameters in your consent request.
consentInformation.requestConsentInfoUpdate(
this,
params,
...
)
تنظیم مجدد وضعیت رضایت
هنگام آزمایش برنامه خود با UMP SDK، ممکن است تنظیم مجدد وضعیت SDK برای شبیهسازی اولین تجربه نصب کاربر مفید باشد. SDK متد reset() را برای انجام این کار ارائه میدهد.
جاوا
consentInformation.reset();
کاتلین
consentInformation.reset()
مثالها در گیتهاب
یک مثال کامل از یکپارچهسازی UMP SDK که در این صفحه پوشش داده شده است را در UmpExample ببینید.