GDPR IAB desteği

Google AB Kullanıcı Rızası Politikası uyarınca, Avrupa Ekonomik Alanı (AEA) ve Birleşik Krallık'taki kullanıcılarınıza belirli açıklamalar yapmanız ve yasal olarak gerekli olduğu durumlarda çerez veya başka yerel depolama bilgilerinin kullanılmasının yanı sıra, reklam yayınlamak için kişisel verilerin (AdID gibi) kullanılması konusunda kullanıcıların rızasını almanız gerekir. Bu politika AB eGizlilik Yönergesi ve Genel Veri Koruma Yönetmeliği (GDPR) şartlarını yansıtmaktadır.

Bu kılavuzda, UMP SDK'sının bir parçası olarak GDPR IAB TCF v2 mesajını desteklemek için gereken adımlar açıklanmaktadır. Bu makalenin, uygulamanızı UMP SDK'sı ile kullanmaya başlama ve mesajınızı oluşturmayla ilgili temel bilgilere genel bir bakış sunan Başlayın makalesiyle birlikte kullanılması amaçlanmıştır. Aşağıdaki kılavuz, GDPR IAB TCF v2 mesajına özeldir. Daha fazla bilgi için IAB şartlarının AB kullanıcı rızası alma mesajlarını nasıl etkilediği başlıklı makaleyi inceleyin.

Ön koşullar

GDPR, kullanıcıların izin seçimlerini istedikleri zaman geri çekmelerine olanak tanımak için izinlerin geri alınmasını zorunlu kılar. Kullanıcıların izin tercihlerini geri çekmeleri için bir yöntem uygulamak istiyorsanız Gizlilik seçenekleri başlıklı makaleyi inceleyin.

Bir kullanıcının reşit olma yaşının altında olup olmadığını belirtmek için tagForUnderAgeOfConsent (TFUA) değerini ayarlayın. TFUA'yı true olarak ayarladığınızda UMP SDK'sı kullanıcıdan izin istemez. Uygulamanızın karma bir kitlesi varsa izin istenmediğinden emin olmak için bu parametreyi çocuk kullanıcılar için ayarlayın.

Aşağıdaki örnekte, UMP izin isteğinde TFUA doğru olarak ayarlanmıştır:

Swift

// Create a UMPRequestParameters object.
let parameters = UMPRequestParameters()
// Indicate the user is under age of consent.
parameters.tagForUnderAgeOfConsent = true

// Request an update for the consent information.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
  [weak self] requestConsentError in
  guard let self else { return }

  // ...
}

Objective-C

// Create a UMPRequestParameters object.
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
// Indicate the user is under age of consent.
parameters.tagForUnderAgeOfConsent = YES;

// Request an update for the consent information.
[UMPConsentInformation.sharedInstance
    requestConsentInfoUpdateWithParameters:parameters
        completionHandler:^(NSError *_Nullable requestConsentError) {
          // ...
        }];

Uyumlulaştırma

Uyumlulaştırma iş ortaklarınızı reklam iş ortakları listesine eklemek için Yayınlanan GDPR mesajlarına reklam iş ortakları ekleme başlıklı makaledeki adımları uygulayın. Aksi takdirde iş ortakları uygulamanızda reklam yayınlayamayabilir.

Uyumlulaştırma iş ortakları, GDPR'ye uygunluk konusunda yardımcı olacak ek araçlara da sahip olabilir. Daha fazla bilgi için ilgili iş ortağının entegrasyon kılavuzuna bakın.

GDPR izni toplandıktan sonra, TCF v2 spesifikasyonunu izleyerek yerel depolama alanındaki izin seçimlerini okuyabilirsiniz. IABTCF_PurposeConsents anahtarı, TCF amaçlarının her biri için izni belirtir.

Aşağıdaki kod snippet'inde, 1. Amaç için iznin nasıl kontrol edileceği gösterilmektedir:

Swift

// Example value: "1111111111"
let purposeConsents = UserDefaults.standard.string(forKey: "IABTCF_PurposeConsents")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
let hasConsentForPurposeOne = purposeConsents?.first == "1"

Objective-C

// Example value: "1111111111"
NSString *purposeConsents = [NSUserDefaults.standardUserDefaults
                             stringForKey:@"IABTCF_PurposeConsents"];
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
BOOL hasConsentForPurposeOne = [purposeConsents hasPrefix:@"1"];

Sık sorulan sorular

AEA ve Birleşik Krallık'ta reklam yayınlamayla ilgili Kullanıcı Rızası Yönetim Platformu Şartları'nı karşılamak için herhangi bir işlem yapmazsam ne olur?

16 Ocak 2024'ten itibaren, Google sertifikalı bir CMP kullanmayan iş ortakları AEA ve Birleşik Krallık trafiğinde yalnızca sınırlı reklamlar yayınlayabilir.

Şart 16 Ocak 2024'te AEA ve Birleşik Krallık trafiğinin küçük bir kısmında uygulanmaya başlayacak ve Şubat 2024'ün sonuna geldiğimizde tüm AEA ve Birleşik Krallık trafiğinde hayata geçirilene kadar uygulama kapsamı artacak. Para kazanmanızın etkilenmemesi için 16 Ocak 2024'e kadar sertifikalı bir CMP kullanmaya başlayın.

Kullanıcının izin verip vermediğini nasıl kontrol edebilirim?

Kullanıcı rızası tek bir bit ile değil, IAB TCF spesifikasyonunda tanımlandığı şekilde bir dizi amaç ve sağlayıcı ile temsil edilir. Google Ads kişiselleştirme ölçütleri için Kullanıcı Rızası Politikaları: Kişiselleştirilmiş ve Kişiselleştirilmemiş Reklamlar başlıklı makaleyi inceleyin.

Ayrıca, Google'ın Reklam teknolojisi sağlayıcılar (ATP) listesinde yer alan ancak TCF sağlayıcı listesine kayıtlı olmayan reklam teknolojileri, izin toplama için Google'ın Ek İzin teknik spesifikasyonunu kullanır. Google, IAB'ye kaydolmamış reklam teknolojisi sağlayıcıların ve kimliklerinin listesini aşağıdaki konumda yayınlar: https://storage.googleapis.com/tcfac/additional-consent-providers.csv.

Tek bir reklam isteğinde hata ayıklama yapmak için reklam istek dizesini dışa aktarmak üzere reklam denetleyicisindeki Gelişmiş reklam birimi hata ayıklama özelliğini kullanın. Ardından aşağıdaki sorgu parametrelerini bulun:

Sorgu parametresi Anlamı
gdpr GDPR'nin bu reklam isteği için geçerli olup olmadığı.
gdpr_consent TC dizesi. IAB, değeri manuel olarak kod çözebileceğiniz bir web aracı sağlar.
addtl_consent Google'ın Ek İzin için teknik spesifikasyonundaki Eİ dizesi.

İzin tercihlerini programatik olarak okumak için daha fazla bilgi edinmek üzere İzin tercihlerini okuma başlıklı makaleyi inceleyin.

CMP şartını karşılamak için Google'ın UMP SDK'sını kullanmam gerekir mi?

Hayır, reklam yayınlamak için Google sertifikalı CMP'lerin listesini inceleyerek dilediğiniz CMP'yi kullanabilirsiniz.

Kullanıcı daha önce izin vermiş olsa bile UMP SDK'sını kullanarak izin formunu nasıl tekrar gösterebilirim?

Bir kullanıcı daha önce izin kararı verdiyse Google'ın izin yönetimi çözümü, TC dizesi geçerliliğini yitirene veya başka bir şekilde geçersiz hale gelene kadar yeni izin toplama isteğinde bulunmaz.

GDPR, kullanıcıların izin seçimlerini istedikleri zaman geri çekmelerine olanak tanımak için izin değişikliği yapılmasını zorunlu kılar. Kullanıcıların izin tercihlerini geri çekmesini sağlayacak bir yöntem uygulamak için gizlilik seçeneklerine bakın. İzin formunu tekrar göstermek için presentPrivacyOptionsFormFromViewController:completionHandler: numaralı telefonu arayın.

Google sertifikalı bir CMP entegre ettim ancak izin veren kullanıcılardan bile uyumlulaştırma iş ortaklarına reklam isteği gönderilmediğini görüyorum. Why is this happening?

TCF kapsamında Google, reklam teknolojisi sağlayıcıların ve diğer programatik talep kaynaklarının Google politikasını ihlal edip etmediğini ve verileri uyumlulaştırma şelalesine eklemeden önce veri işleme için en az bir yasal gerekçeleri olup olmadığını kontrol eder. Daha fazla bilgi için arabuluculuk bölümüne gidin.

Google'ın Reklam Teknolojisi Sağlayıcılar (ATP) listesinde yer alan bazı uyumlulaştırma iş ortakları TCF katılımcı listesine kayıtlı değildir. Bu iş ortakları, izin toplama için bunun yerine Google'ın Ek İzin için teknik spesifikasyonunu kullanır. Google, IAB'ye kaydolmamış reklam teknolojisi sağlayıcıların ve kimliklerinin listesini aşağıdaki konumda yayınlar: https://storage.googleapis.com/tcfac/additional-consent-providers.csv

UMP SDK'sı, ACString'in depolanmasını destekler. Böylece, iş ortaklarının TCF'ye kayıtlı olup olmadığını anlamanıza gerek kalmadan yayınlanan GDPR mesajlarına reklam iş ortakları ekleyebilirsiniz. Üçüncü taraf CMP'yi kullanırken aşağıdakileri yapmanız gerekir:

  1. Üçüncü taraf CMP'nin ACString'i saklamayı desteklediğini onaylayın.
  2. Her uyumlulaştırma iş ortağını, üçüncü taraf CMP'nin izin almak için kullandığı reklam teknolojisi sağlayıcılar listesine ekleyin.
Kullanıcılar izin vermezse uygulamamın işleyiş şeklini değiştirebilir miyim? Politika buna izin veriyor mu?

Yayıncılar, uygulamalarında IAB TCF dizesini okuyabilir. İzin tercihlerini programatik olarak okuma hakkında bilgi edinmek için İzin tercihlerini okuma başlıklı makaleyi inceleyin. Yayıncılar, ilgili düzenlemeler kapsamındaki yükümlülüklerini hukuk danışmanlarıyla birlikte incelemelidir.

Seçenekleri Yönet'i seçip tüm amaçlara izin verdiğim halde neden reklam görmüyorum? Why is this happening?

Amaç iznini toplamanın yanı sıra tedarikçi iznini de toplamalısınız. Google gibi sağlayıcıların uygun reklamlar yayınlaması için hem amaç izni hem de tedarikçi izni gereklidir.

Aynı kullanıcıya hem iOS ATT uyarısını hem de GDPR iznini göstermek için en iyi uygulama nedir?

Kullanıcı GDPR'ye izin verdiyse önce GDPR kullanıcı rızası alma mesajını, ardından iOS ATT uyarısını göstermenizi öneririz. Her iki mesajı da Ad Manager kullanıcı arayüzünde yapılandırırsanız bu işlem UMP SDK'sı tarafından zaten gerçekleştirilir. Daha fazla bilgi için Kullanıcılarınızın göreceği mesaj başlıklı makaleyi inceleyin.

ATT uyarısını UMP SDK'sını kullanarak göstermiyorsanız iOS ATT uyarısını gösterip göstermeyeceğinize karar vermek için GDPR izni toplandıktan sonra izin seçeneklerini okumanızı öneririz.

1. sürüme zaten izin vermiş olan kullanıcılar için Eİ dizesi sürüm 2'yi nasıl uygulayabilirim?

Bir kullanıcının AC dizesi sürüm 2'ye izin verip vermediğini ve izin formunu tekrar göstermeniz gerekip gerekmediğini belirlemek için Google'ın Ek İzin teknik spesifikasyonu uyarınca yerel depolama alanındaki IABTCF_AddtlConsent anahtarını kontrol edin.

Swift

// Example value: "2~1.35.41.101~dv.9.21.81"
let additionalConsent = UserDefaults.standard.string(forKey: "IABTCF_AddtlConsent")
// Index 0 contains information about the specification version number.
let isACVersion2 = additionalConsent?.first == "2"

Objective-C

// Example value: "2~1.35.41.101~dv.9.21.81"
NSString *additionalConsent = [NSUserDefaults.standardUserDefaults
                        stringForKey:@"IABTCF_AddtlConsent"];
// Index 0 contains information about the specification version number.
BOOL isACVersion2 = [additionalConsent hasPrefix:@"2"];