เริ่มเลย

SDK สำหรับ User Messaging Platform (UMP) ของ Google เป็นเครื่องมือด้านความเป็นส่วนตัวและการรับส่งข้อความเพื่อช่วยคุณจัดการตัวเลือกความเป็นส่วนตัว ดูข้อมูลเพิ่มเติมได้ที่ เกี่ยวกับความเป็นส่วนตัวและการรับส่งข้อความ

สร้างประเภทข้อความ

สร้างข้อความสําหรับผู้ใช้ด้วยประเภทข้อความสําหรับผู้ใช้ที่ใช้ได้ประเภทใดประเภทหนึ่งในส่วนความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ของบัญชี 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 ที่มองเห็นได้และโต้ตอบได้ลงในแอปที่แสดงแบบฟอร์มตัวเลือกความเป็นส่วนตัว หากไม่จำเป็นต้องมีจุดแรกเข้าด้านความเป็นส่วนตัว ให้กําหนดค่าองค์ประกอบ 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() หรือไม่ การตรวจสอบขณะรวบรวมความยินยอมทำได้ 2 วิธีดังนี้

  • หลังจากรวบรวมความยินยอมในเซสชันปัจจุบันแล้ว
  • ทันทีที่คุณโทรหา 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()
}

โค้ดต่อไปนี้จะตั้งค่า Google Mobile Ads SDK หลังจากที่รวบรวมความยินยอมของผู้ใช้แล้ว

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

  _isMobileAdsInitializeCalled = true;

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

  // Load an ad.
  _loadAd();
}

การทดสอบ

หากต้องการทดสอบการผสานรวมในแอปขณะพัฒนา ให้ทำตามขั้นตอนเหล่านี้เพื่อลงทะเบียนอุปกรณ์ทดสอบแบบเป็นโปรแกรม อย่าลืมนำโค้ดที่กำหนดรหัสอุปกรณ์ทดสอบเหล่านี้ออกก่อนที่จะเผยแพร่แอป

  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 {
      // ...
    };
    

บังคับใช้ภูมิศาสตร์

SDK ของ UMP มีวิธีทดสอบลักษณะการทํางานของแอปเสมือนว่าอุปกรณ์อยู่ในภูมิภาคต่างๆ เช่น EEA หรือสหราชอาณาจักร โดยใช้ debugGeography โปรดทราบว่าการตั้งค่าการแก้ไขข้อบกพร่องใช้ได้กับอุปกรณ์ทดสอบเท่านั้น

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