เริ่มเลย

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

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

สร้างข้อความสําหรับผู้ใช้ด้วยประเภทข้อความสําหรับผู้ใช้ที่ใช้ได้ประเภทใดประเภทหนึ่งในส่วนความเป็นส่วนตัวและการแสดงข้อความแจ้งผู้ใช้ของบัญชี Ad Manager UMP SDK จะพยายามแสดงข้อความความเป็นส่วนตัวที่สร้างจากรหัสแอปพลิเคชันของ Ad Manager ที่กําหนดไว้ในโปรเจ็กต์

ดูรายละเอียดเพิ่มเติมได้ที่ เกี่ยวกับความเป็นส่วนตัวและการรับส่งข้อความ

หากต้องการรวบรวมความยินยอม ให้ทําตามขั้นตอนต่อไปนี้

  1. คำขอข้อมูลความยินยอมล่าสุดของผู้ใช้
  2. โหลดและแสดงแบบฟอร์มความยินยอม หากจำเป็น

คุณควรขออัปเดตข้อมูลความยินยอมของผู้ใช้ทุกครั้งที่เปิดแอปโดยใช้ 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.
    });
}

ตัวเลือกความเป็นส่วนตัว

แบบฟอร์มประกาศเกี่ยวกับความเป็นส่วนตัวบางแบบฟอร์มจะแสดงจากจุดแรกเข้าของตัวเลือกความเป็นส่วนตัวที่แสดงผลโดยผู้เผยแพร่โฆษณา เพื่อให้ผู้ใช้จัดการตัวเลือกความเป็นส่วนตัวของตนได้ทุกเมื่อ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อความที่ผู้ใช้เห็นที่จุดแรกเข้าของตัวเลือกความเป็นส่วนตัวได้ที่ประเภทข้อความสำหรับผู้ใช้ที่ใช้ได้

หากต้องการใช้จุดแรกเข้าของตัวเลือกความเป็นส่วนตัว ให้ทําตามขั้นตอนต่อไปนี้

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

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

การทดสอบ

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

  1. โทรมาที่ Update()
  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. แก้ไขโค้ดเพื่อเรียกใช้ 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);
    }
    

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

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

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