راه‌اندازی کیت توسعه نرم‌افزار UMP

کیت توسعه نرم‌افزار «پلاتفرم پیام‌رسانی کاربر Google» (UMP) ابزاری برای حریم خصوصی و پیام‌رسانی است که به شما کمک می‌کند انتخاب‌های حریم خصوصی را مدیریت کنید. برای اطلاعات بیشتر، درباره «حریم خصوصی و پیام‌رسانی» را ببینید.

ایجاد نوع پیام

پیام‌های کاربر را با یکی از انواع پیام کاربر دردسترس در برگه حریم خصوصی و پیام‌رسانی حساب AdMob خود بسازید. «کیت توسعه نرم‌افزار UMP» تلاش می‌کند پیام حریم خصوصی ایجادشده از «شناسه برنامه AdMob» تنظیم‌شده در پروژه شما را نمایش دهد.

برای جزئیات بیشتر، درباره حریم خصوصی و پیام‌رسانی را ببینید.

باید در هر بار راه‌اندازی برنامه، بااستفاده از requestConsentInfoUpdate()، درخواست کنید اطلاعات رضایت کاربر به‌روز شود. این درخواست موارد زیر را بررسی می‌کند:

  • آیا رضایت لازم است یا خیر. برای مثال، رضایت برای اولین‌بار لازم است، یا تصمیم رضایت قبلی منقضی شده است.
  • آیا نقطه ورودی گزینه‌های حریم خصوصی الزامی است. برخی‌از پیام‌های حریم خصوصی برنامه‌ها را ملزم می‌کنند به کاربران اجازه دهند گزینه‌های حریم خصوصی‌شان را در هر زمانی تغییر دهند.
@override
void initState() {
  super.initState();

  // Create a ConsentRequestParameters object.
  final params = ConsentRequestParameters();

  // Request an update to consent information on every app launch.
  ConsentInformation.instance.requestConsentInfoUpdate(
    params,
    () async {
      // Called when consent information is successfully updated.
    },
    (FormError error) {
      // Called when there's an error updating consent information.
    },
  );
}

بار کردن و ارائه فرم پیام حریم خصوصی

پس‌از دریافت جدیدترین وضعیت موافقت، برای بار کردن فرم‌های لازم برای جمع‌آوری موافقت کاربر، با loadAndShowConsentFormIfRequired() تماس بگیرید. پس‌از بار شدن، فرم‌ها بلافاصله نمایش داده می‌شوند.

@override
void initState() {
  super.initState();

  // Create a ConsentRequestParameters object.
  final params = ConsentRequestParameters();

  // Request an update to consent information on every app launch.
  ConsentInformation.instance.requestConsentInfoUpdate(
    params,
    () async {
      ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
        if (loadAndShowError != null) {
          // Consent gathering failed.
        }

        // Consent has been gathered.
      });
    },
    (FormError error) {
      // Handle the error.
    },
  );
}

گزینه‌های حریم خصوصی

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

بررسی کنید که آیا نقطه ورودی گزینه‌های حریم خصوصی الزامی است یا نه

پس‌از تماس با requestConsentInfoUpdate()، getPrivacyOptionsRequirementStatus() را بررسی کنید تا مشخص کنید آیا نقطه ورودی گزینه‌های حریم خصوصی برای برنامه‌تان لازم است یا نه. اگر نقطه ورودی لازم است، عنصر واسط کاربر قابل‌مشاهده و تعاملی به برنامه‌تان اضافه کنید که فرم گزینه‌های حریم خصوصی را ارائه دهد. اگر نقطه ورود حریم خصوصی الزامی نیست، عنصر واسط کاربر خود را طوری پیکربندی کنید که قابل‌مشاهده و تعامل‌پذیر نباشد.

/// Helper variable to determine if the privacy options entry point is required.
Future<bool> isPrivacyOptionsRequired() async {
  return await ConsentInformation.instance
      .getPrivacyOptionsRequirementStatus() ==
      PrivacyOptionsRequirementStatus.required;
}

برای فهرست کامل وضعیت‌های الزامی گزینه‌های حریم خصوصی، به PrivacyOptionsRequirementStatus مراجعه کنید.

ارائه فرم گزینه‌های حریم خصوصی

وقتی کاربر با عنصر شما تعامل برقرار می‌کند، فرم گزینه‌های حریم خصوصی را ارائه دهید:

ConsentForm.showPrivacyOptionsForm((formError) {
  if (formError != null) {
    debugPrint("${formError.errorCode}: ${formError.message}");
  }
});

درخواست آگهی با رضایت کاربر

قبل‌از درخواست آگهی، از canRequestAds() برای بررسی اینکه آیا از کاربر رضایت گرفته‌اید یا نه استفاده کنید:

await ConsentInformation.instance.canRequestAds()

در اینجا مکان‌های زیر فهرست شده‌اند که می‌توانید بررسی کنید آیا می‌توانید هنگام جمع‌آوری موافقت، درخواست آگهی کنید یا نه:

  • پس‌از اینکه «کیت توسعه نرم‌افزار UMP» در جلسه فعلی موافقت را جمع‌آوری کرد.
  • بلافاصله پس‌از تماس با requestConsentInfoUpdate(). «کیت توسعه نرم‌افزار UMP» ممکن است در جلسه قبلی برنامه رضایت را کسب کرده باشد.

اگر درطول فرایند جمع‌آوری موافقت خطایی رخ داد، بررسی کنید که آیا می‌توانید درخواست آگهی کنید. «کیت توسعه نرم‌افزار UMP» از وضعیت موافقت جلسه قبلی برنامه استفاده می‌کند.

جلوگیری از کار درخواست آگهی اضافی

هنگام بررسی canRequestAds() پس‌از دریافت موافقت و پس‌از تماس با requestConsentInfoUpdate()، مطمئن شوید منطق شما از درخواست‌های آگهی اضافی که ممکن است باعث شود هر دو بررسی true برگردانند جلوگیری کند. برای مثال، با متغیر بولی.

آزمایش

اگر می‌خواهید یکپارچه‌سازی را در برنامه‌تان درحین توسعه آزمایش کنید، این مراحل را برای ثبت برنامه‌ریزی‌شده دستگاه آزمایشی‌تان دنبال کنید. حتماً قبل‌از انتشار برنامه، کدی را که این شناسه‌های دستگاه آزمایشی را تنظیم می‌کند بردارید.

  1. تماس با requestConsentInfoUpdate().
  2. برونداد گزارش را برای پیامی مشابه مثال زیر بررسی کنید، که شناسه دستگاهتان و نحوه افزودن آن به‌عنوان دستگاه آزمایشی را نشان می‌دهد:

    Android

    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]
    
  3. شناسه دستگاه آزمایشی‌تان را در بریده‌دان کپی کنید.

  4. کدتان را اصلاح کنید تا ConsentDebugSettings.testIdentifiers را فراخوانی کند و فهرستی از شناسه‌های دستگاه آزمایشی‌تان را ارسال کند.

    ConsentDebugSettings debugSettings = ConsentDebugSettings(
      testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
    );
    
    ConsentRequestParameters params =
        ConsentRequestParameters(consentDebugSettings: debugSettings);
    
    ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
      // ...
    };
    

اجبار به مکان جغرافیایی

«کیت توسعه نرم‌افزار UMP» روشی برای آزمایش رفتار برنامه‌تان ارائه می‌دهد، به‌طوری‌که دستگاه در مناطق مختلفی مثل منطقه اقتصادی اروپا (EEA)، پادشاهی متحد (UK)، و سوئیس بااستفاده از debugGeography قرار داشته باشد. توجه داشته باشید که تنظیمات اشکال‌زدایی فقط در دستگاه‌های آزمایشی کار می‌کند.

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
);

ConsentRequestParameters params =
    ConsentRequestParameters(consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
  // ...
};

هنگام آزمایش برنامه با «کیت توسعه نرم‌افزار UMP»، ممکن است بازنشانی وضعیت کیت توسعه نرم‌افزار برای شبیه‌سازی تجربه اولین نصب کاربر مفید باشد. کیت توسعه نرم‌افزار روش reset() را برای انجام این کار ارائه می‌دهد.

ConsentInformation.instance.reset();

مثال‌ها در GitHub

نمونه کاملی از ادغام «کیت توسعه نرم‌افزار پلاتفرم پیام‌رسانی کاربر» که در این صفحه پوشش داده شده است را در نمونه‌های Flutter ما ببینید.