UMP SDK'sını ayarlama

Google Kullanıcı Mesajlaşma Platformu (UMP) SDK'sı, gizlilik tercihlerini yönetmenize yardımcı olan bir gizlilik ve mesajlaşma aracıdır. Daha fazla bilgi için Gizlilik ve Mesajlaşma hakkında başlıklı makaleyi inceleyin.

Mesaj türü oluşturma

AdMob hesabınızın Gizlilik ve Mesajlaşma sekmesindeki Kullanılabilir kullanıcı mesajı türleri'nden birini kullanarak kullanıcı mesajları oluşturun. UMP SDK'sı, projenizde ayarlanan AdMob uygulama kimliğinden oluşturulan bir gizlilik mesajı göstermeye çalışır.

Daha fazla bilgi için Gizlilik ve Mesajlaşma hakkında başlıklı makaleyi inceleyin.

requestConsentInfoUpdate() kullanarak her uygulama başlatıldığında kullanıcının izin bilgilerinin güncellenmesini istemeniz gerekir. Bu istekte aşağıdakiler kontrol edilir:

  • İzin gerekip gerekmediği. Örneğin, ilk kez izin alınması gerektiğinde veya önceki izin kararının süresi dolduğunda.
  • Gizlilik seçenekleri giriş noktasının gerekli olup olmadığı. Bazı gizlilik mesajları, uygulamaların kullanıcıların gizlilik seçeneklerini istedikleri zaman değiştirmesine izin vermesini gerektirir.
@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.
    },
  );
}

Gizlilik mesajı formunu yükleme ve sunma

En güncel izin durumunu aldıktan sonra, kullanıcı izni almak için gereken formları yüklemek üzere loadAndShowConsentFormIfRequired() yöntemini çağırın. Formlar yüklendikten sonra hemen gösterilir.

@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.
    },
  );
}

Gizlilik seçenekleri

Bazı gizlilik mesajı formları, yayıncı tarafından oluşturulan bir gizlilik seçenekleri giriş noktasından sunulur. Böylece kullanıcılar gizlilik seçeneklerini diledikleri zaman yönetebilir. Kullanıcılarınızın gizlilik seçenekleri giriş noktasında hangi mesajı göreceği hakkında daha fazla bilgi edinmek için Mevcut kullanıcı mesajı türleri başlıklı makaleyi inceleyin.

Gizlilik seçenekleri giriş noktasının gerekli olup olmadığını kontrol etme

requestConsentInfoUpdate() yöntemini çağırdıktan sonra, uygulamanız için gizlilik seçenekleri giriş noktası gerekip gerekmediğini belirlemek üzere getPrivacyOptionsRequirementStatus() yöntemini kontrol edin. Giriş noktası gerekiyorsa uygulamanıza gizlilik seçenekleri formunu sunan, görünür ve etkileşimli bir kullanıcı arayüzü öğesi ekleyin. Gizlilik giriş noktası gerekli değilse kullanıcı arayüzü öğenizi görünür ve etkileşimli olmayacak şekilde yapılandırın.

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

Gizlilik seçenekleri koşul durumlarının tam listesi için PrivacyOptionsRequirementStatus sayfasına bakın.

Gizlilik seçenekleri formunu gösterme

Kullanıcı öğenizle etkileşimde bulunduğunda gizlilik seçenekleri formunu gösterin:

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

Kullanıcı rızasıyla reklam isteğinde bulunma

Reklam isteğinde bulunmadan önce canRequestAds() kullanarak kullanıcıdan izin alıp almadığınızı kontrol edin:

await ConsentInformation.instance.canRequestAds()

Kullanıcı rızası alırken reklam isteğinde bulunup bulunamayacağınızı kontrol edebileceğiniz yerler aşağıda listelenmiştir:

  • UMP SDK'sı mevcut oturumda izin aldıktan sonra.
  • requestConsentInfoUpdate() yöntemini çağırdıktan hemen sonra. UMP SDK, önceki uygulama oturumunda izin almış olabilir.

Rıza alma işlemi sırasında bir hata oluşursa reklam isteyip isteyemeyeceğinizi kontrol edin. UMP SDK'sı, önceki uygulama oturumundaki izin durumunu kullanır.

Gereksiz reklam isteği işlemlerini önleme

İzin aldıktan ve requestConsentInfoUpdate() yöntemini çağırdıktan sonra canRequestAds() değerini kontrol ederken mantığınızın, her iki kontrolün de true değerini döndürmesine neden olabilecek gereksiz reklam isteklerini engellediğinden emin olun. Örneğin, boole değişkeniyle.

Test

Uygulamanızı geliştirirken entegrasyonu test etmek istiyorsanız test cihazınızı programatik olarak kaydetmek için aşağıdaki adımları uygulayın. Uygulamanızı yayınlamadan önce bu test cihazı kimliklerini ayarlayan kodu kaldırdığınızdan emin olun.

  1. requestConsentInfoUpdate() Hizmetleri İçin Arayın.
  2. Günlük çıkışında, cihaz kimliğinizi ve cihazınızı test cihazı olarak nasıl ekleyeceğinizi gösteren aşağıdaki örneğe benzer bir mesaj olup olmadığını kontrol edin:

    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. Test cihazı kimliğinizi panonuza kopyalayın.

  4. Kodunuzu ConsentDebugSettings.testIdentifiers yöntemini çağıracak ve test cihazı kimliklerinizin listesini iletecek şekilde değiştirin.

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

Coğrafi konumu zorunlu kılma

UMP SDK'sı, debugGeography kullanarak cihazın Avrupa Ekonomik Alanı (AEA), Birleşik Krallık ve İsviçre gibi çeşitli bölgelerdeymiş gibi uygulamanızın davranışını test etmenizi sağlar. Hata ayıklama ayarlarının yalnızca test cihazlarında çalıştığını unutmayın.

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

ConsentRequestParameters params =
    ConsentRequestParameters(consentDebugSettings: debugSettings);

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

Uygulamanızı UMP SDK ile test ederken, bir kullanıcının ilk yükleme deneyimini simüle edebilmek için SDK'nın durumunu sıfırlamanın faydalı olabileceğini görebilirsiniz. SDK, bunu yapmak için reset() yöntemini sağlar.

ConsentInformation.instance.reset();

GitHub'daki örnekler

Bu sayfada ele alınan UMP SDK entegrasyonunun tam bir örneğini Flutter örneklerimizde bulabilirsiniz.