شروع کنید

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

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

پیام‌های کاربر را با یکی از انواع پیام‌های کاربری موجود در برگه حریم خصوصی و پیام‌رسانی حساب Ad Manager خود ایجاد کنید. UMP SDK تلاش می‌کند پیام حریم خصوصی ایجاد شده از شناسه برنامه Ad Manager را در پروژه شما نمایش دهد.

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

برای جلب رضایت، مراحل زیر را انجام دهید:

  1. درخواست برای آخرین اطلاعات رضایت کاربر.
  2. در صورت نیاز فرم رضایت نامه را بارگیری و ارائه دهید.

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

  • آیا رضایت لازم است . به عنوان مثال، برای بار اول رضایت لازم است، یا تصمیم قبلی رضایت منقضی شده است.
  • آیا یک نقطه ورود گزینه های حریم خصوصی مورد نیاز است یا خیر . برخی از پیام‌های حریم خصوصی به برنامه‌ها نیاز دارند که به کاربران اجازه دهند گزینه‌های حریم خصوصی خود را در هر زمان تغییر دهند.

در صورت نیاز فرم پیام حریم خصوصی را بارگیری و ارائه دهید

پس از دریافت به‌روزترین وضعیت رضایت، با 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;
}

یک عنصر قابل مشاهده به برنامه خود اضافه کنید

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

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
      if (loadAndShowError != null) {
        // Consent gathering failed.
      }

      // Consent has been gathered.

      // Redraw the app bar actions if a privacy options entry point is required.
      if (await isPrivacyOptionsRequired()) {
        setState(() {
          _isPrivacyOptionsRequired = true;
        });
      }
    });
  },
  // ...

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

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

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

درخواست تبلیغات

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

  • پس از کسب رضایت در جلسه جاری.
  • بلافاصله پس از فراخوانی requestConsentInfoUpdate() . امکان دارد در جلسه قبل رضایت گرفته شده باشد. به‌عنوان بهترین روش تأخیر، توصیه می‌کنیم منتظر تکمیل تماس نمانید تا بتوانید در اسرع وقت پس از راه‌اندازی برنامه، بارگیری تبلیغات را شروع کنید.

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

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

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
      if (loadAndShowError != null) {
        // Consent gathering failed.
      }

      // Consent has been gathered.
      if (await ConsentInformation.instance.canRequestAds()) {
        _initializeGoogleMobileAdsSDK()
      }
      // ...
    });
  },
  (FormError error) {},
);

// Check if you can initialize the Mobile Ads SDK in parallel while
// checking for new consent information. Consent obtained in the
// previous session can be used to request ads.
if (await ConsentInformation.instance.canRequestAds()) {
  _initializeGoogleMobileAdsSDK()
}

کد زیر پس از کسب رضایت کاربر، SDK تبلیغات موبایل Google را تنظیم می‌کند:

void _initializeGoogleMobileAdsSDK() async {
  if (_isMobileAdsInitializeCalled) {
    return;
  }

  _isMobileAdsInitializeCalled = true;

  // Initialize the Mobile Ads SDK.
  MobileAds.instance.initialize();

  // Load an ad.
  _loadAd();
}

تست کردن

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

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

    اندروید

    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 SDK با استفاده از debugGeography روشی را برای آزمایش رفتار برنامه شما فراهم می‌کند که گویی دستگاه در مناطق مختلفی مانند EEA یا بریتانیا قرار دارد. توجه داشته باشید که تنظیمات اشکال زدایی فقط در دستگاه های آزمایشی کار می کند.

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

ConsentRequestParameters params =
    ConsentRequestParameters(consentDebugSettings: debugSettings);

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

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

ConsentInformation.instance.reset();

نمونه هایی در GitHub

نمونه کاملی از ادغام UMP SDK که در این صفحه در نمونه های Flutter ما پوشش داده شده است را ببینید.

،

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

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

پیام‌های کاربر را با یکی از انواع پیام‌های کاربری موجود در برگه حریم خصوصی و پیام‌رسانی حساب Ad Manager خود ایجاد کنید. UMP SDK تلاش می‌کند پیام حریم خصوصی ایجاد شده از شناسه برنامه Ad Manager را در پروژه شما نمایش دهد.

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

برای جلب رضایت، مراحل زیر را انجام دهید:

  1. درخواست برای آخرین اطلاعات رضایت کاربر.
  2. در صورت نیاز فرم رضایت نامه را بارگیری و ارائه دهید.

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

  • آیا رضایت لازم است . به عنوان مثال، برای بار اول رضایت لازم است، یا تصمیم قبلی رضایت منقضی شده است.
  • آیا یک نقطه ورود گزینه های حریم خصوصی مورد نیاز است یا خیر . برخی از پیام‌های حریم خصوصی به برنامه‌ها نیاز دارند که به کاربران اجازه دهند گزینه‌های حریم خصوصی خود را در هر زمان تغییر دهند.

در صورت نیاز فرم پیام حریم خصوصی را بارگیری و ارائه دهید

پس از دریافت به‌روزترین وضعیت رضایت، با 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;
}

یک عنصر قابل مشاهده به برنامه خود اضافه کنید

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

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
      if (loadAndShowError != null) {
        // Consent gathering failed.
      }

      // Consent has been gathered.

      // Redraw the app bar actions if a privacy options entry point is required.
      if (await isPrivacyOptionsRequired()) {
        setState(() {
          _isPrivacyOptionsRequired = true;
        });
      }
    });
  },
  // ...

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

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

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

درخواست تبلیغات

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

  • پس از کسب رضایت در جلسه جاری.
  • بلافاصله پس از فراخوانی requestConsentInfoUpdate() . امکان دارد در جلسه قبل رضایت گرفته شده باشد. به‌عنوان بهترین روش تأخیر، توصیه می‌کنیم منتظر تکمیل تماس نمانید تا بتوانید در اسرع وقت پس از راه‌اندازی برنامه، بارگیری تبلیغات را شروع کنید.

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

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

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
      if (loadAndShowError != null) {
        // Consent gathering failed.
      }

      // Consent has been gathered.
      if (await ConsentInformation.instance.canRequestAds()) {
        _initializeGoogleMobileAdsSDK()
      }
      // ...
    });
  },
  (FormError error) {},
);

// Check if you can initialize the Mobile Ads SDK in parallel while
// checking for new consent information. Consent obtained in the
// previous session can be used to request ads.
if (await ConsentInformation.instance.canRequestAds()) {
  _initializeGoogleMobileAdsSDK()
}

کد زیر پس از کسب رضایت کاربر، SDK تبلیغات موبایل Google را تنظیم می‌کند:

void _initializeGoogleMobileAdsSDK() async {
  if (_isMobileAdsInitializeCalled) {
    return;
  }

  _isMobileAdsInitializeCalled = true;

  // Initialize the Mobile Ads SDK.
  MobileAds.instance.initialize();

  // Load an ad.
  _loadAd();
}

تست کردن

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

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

    اندروید

    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 SDK با استفاده از debugGeography روشی را برای آزمایش رفتار برنامه شما فراهم می‌کند که گویی دستگاه در مناطق مختلفی مانند EEA یا بریتانیا قرار دارد. توجه داشته باشید که تنظیمات اشکال زدایی فقط در دستگاه های آزمایشی کار می کند.

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

ConsentRequestParameters params =
    ConsentRequestParameters(consentDebugSettings: debugSettings);

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

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

ConsentInformation.instance.reset();

نمونه هایی در GitHub

نمونه کاملی از ادغام UMP SDK که در این صفحه در نمونه های Flutter ما پوشش داده شده است را ببینید.