Veri Silme İsteği Çerçevesi'ni kullanma

Bazı bölgelerde, yayıncıların içerik kullanıcılarına verilerinin silinmesini talep etme olanağı sunmasını zorunlu kılan veri silme düzenlemeleri vardır. Anlık teklif entegrasyonunuz birinci taraf tanımlayıcılarını kullanıyorsa ve veri silme düzenlemelerinin olduğu bölgelerden envanter alıyorsa Google, IAB'nin Veri Silme İsteği Çerçevesi ile entegrasyon yapmanızı önerir.

Bir kullanıcı, tanımlayıcılarını bir yayıncının uygulamasından veya sitesinden silmeyi seçtiğinde, veri silme isteği çerçevesi, yayıncının veri silme isteğini yaymasına olanak tanır. Yayıncı, veri silme isteğini size iletebilecek olan borsalara veri silme isteği gönderir. Veri silme isteği aldığınızda, isteği yayıncının birinci taraf verilerini paylaştığınız kuruluşlara iletmeniz gerekir. Örneğin, bir Açık Artırma entegrasyonunuz varsa isteği, birinci taraf verilerinin paylaşıldığı borsanızdaki teklif verenlere iletmeniz gerekir.

Bu kılavuzda, Google Exchange ile Veri Silme İsteği Çerçevenizin ilk kurulumu ele alınmakta ve Google Exchange bağlamında Veri Silme İsteği Çerçevesi iş akışına genel bir bakış sunulmaktadır. Daha fazla bilgi için Veri Silme İsteği Çerçevesi'ne bakın.

Entegrasyonunuzu ayarlama

Google'dan veri silme istekleri almaya başlamak için hesabınızla ilişkilendirmek istediğiniz bir alanı Google'a kaydetmeniz ve kayıtlı alanınızın kök dizininde bir dsrdelete.json dosyası barındırmanız gerekir. Alanınızı Google'a kaydetmek için hesap yöneticinizle iletişime geçin. dsrdelete.json dosyası, aşağıdakiler gibi çeşitli amaçlara hizmet eder:

  • Google'ın veri silme isteklerini gönderdiği uç noktayı belirleme.
  • Desteklenen tanımlayıcılarınızı ve bunların nasıl biçimlendirildiğini listeleme
  • JSON Web Key (JWK) standardına uygun ortak anahtarlarınızı belirtme. Bu anahtarlar, diğer taraflarca gönderdiğiniz silme isteklerinin veya onaylarının yayılmış verilerinin gerçekliğini doğrulamak için kullanılır.

Doldurabileceğiniz zorunlu ve isteğe bağlı alanlar gibi drsdelete.json dosyasıyla ilgili ayrıntılar için Keşif başlıklı makaleyi inceleyin.

dsrdelete.json dosyasında belirtilen uç noktanız, gelen veri silme isteklerini almalı ve yanıtlamalıdır. Google, aldığınız istekleri doğrulamak ve gönderdiğiniz onayları imzalamak için seçtiğiniz programlama dilinde kriptografik bir kitaplık kullanmanızı önerir.

Aşağıdaki örnekte, uç nokta, tanımlayıcılar ve ortak anahtar içeren bir dsrdelete.json dosyası ayarlanmaktadır:

{
    "endpoint": "https://www.doubleclick.net/iab-ddrf",
    "identifiers": [
        { "id": 1, "type": "ppid", "format": "plaintext" },
        { "id": 2, "type": "idfv", "format": "plaintext" },
        { "id": 3, "type": "pfpid_domain", "format": "plaintext" }
    ],
    "publicKey": [
        {
            "kty": "EC",
            "crv": "P-256",
            "x": "_OPPeKSEdi3_JEHla93vOGTx8VD01ozhyYxwQzYCVLs",
            "y": "_XHufu2A_hbN5Uj4Wm7JPHE7ly0_4cmqntmz93pweys",
            "kid": "yUa3wQ",
            "use": "sig",
            "alg": "ES256"
        }
    ],
    "vendorScriptRequirement": false
}

Veri silme isteği alma

Google, aşağıdaki koşulların tümü karşılandığında yayıncılardan gelen veri silme isteklerini size iletir:

  • Google'da kayıtlı bir alanda geçerli bir dsrdelete.json dosyası barındırıyor olmanız gerekir.
  • Yayıncı, bir tanımlayıcı için Google'a veri silme isteği gönderir.
  • Google, veri silme isteğinde gönderilen yayıncı tanımlayıcısının sizinle paylaşıldığını belirler.

Veri silme isteği aldığınızda belirtilen verileri silmek sizin sorumluluğunuzdadır. Ayrıca, birinci taraf yayıncı verilerini paylaştığınız diğer veri iş ortaklarına da veri silme isteğini iletmeye devam etmeniz gerekir. Google, aşağıdaki tanımlayıcılar için veri silme isteklerini destekler:

  • ppid: Yayıncı tarafından sağlanan tanımlayıcılar (PPID).
  • pfpid_domain: Web için yayıncıya ait birinci taraf tanımlayıcılar.
  • idfv: iOS cihazlar için yayıncıya ait birinci taraf tanımlayıcılar.

Google, veri silme isteğini dsrdelete.json dosyanızda belirtilen uç noktaya HTTP POST isteği olarak gönderir. Veri silme isteğinin gövdesinde aşağıdaki bölümlerden oluşan bir JSON Web Jetonu (JWT) bulunur:

  • Şifreleme algoritmasını açıklayan bir JOSE başlığı.
  • Silme isteğini içeren bir JWS yükü.
  • İsteğin özgünlüğünü doğrulamak için JWS imzası.

Google, başlığı, yükü ve imzayı Base64 olarak kodlar ve bu öğeleri aşağıdaki gibi biçimlendirir:

WEB_SAFE_BASE64_ENCODED_HEADER.WEB_SAFE_BASE64_ENCODED_PAYLOAD.WEB_SAFE_BASE64_ENCODED_SIGNATURE

Veri silme çerçevesinde kullanılan farklı JWT'ler hakkında daha fazla bilgi edinmek için JSON Web Token (JWT) Uygulaması başlıklı makaleyi inceleyin. Google'dan aldığınız veri silme isteği, yayıncının silme isteğinde bulunurken gönderdiği kimlik JWT'sini (idJWT) içeren bir istek JWT'sidir (rqJWT).

Doğrulama ayrıntılarını üstbilgide bulma

Başlık, isteğin karmasını oluşturmak için kullanmanız gereken algoritmayı açıklayan bir JSON nesnesidir. Bu, isteğin gerçekliğini doğrulamak için gereklidir. Yayıncının imza oluşturmak için kullanabileceği birden fazla özel anahtarı varsa üstbilgi, imzayı doğrulamak için yayıncının hangi ortak anahtarlarını kullanabileceğinizi de tanımlar.

Aşağıdaki örnek, RSA256 algoritmasını abc123 anahtar kimliğiyle kullanarak imzayı doğrulayabileceğinizi gösteren, kodu çözülmüş bir başlıktır:

{
    "typ": "JWT",
    "alg": "RS256",
    "kid": "abc123"
}

İsteği doğrulama

Google'ın veri silme isteklerini gönderdiğini, Google dsrdelete.json dosyasındaki ortak anahtarla doğrulayabilirsiniz. Google dsrdelete.json dosyası https://static.doubleclick.net/dsrdelete.json adresinde barındırılır.

Veri silme isteğinin gerçekliğini doğrulamak için aşağıdaki adımları uygulayın:

  1. Başlıkta belirtilen algoritmayı kullanarak başlığın ve yükün karmasını hesaplayın. Karma işlevinize iletilen veriler aşağıdaki yapıyı kullanmalıdır:

    WEB_SAFE_BASE64_ENCODED_HEADER.WEB_SAFE_BASE64_ENCODED_PAYLOAD
    
  2. Kodlanmış imzanın şifresini çözmek için veren kuruluşun dsrdelete.json dosyasında belirtilen ortak anahtarı kullanın.

  3. Birinci adımda oluşturduğunuz karma ile imzadan alınan şifresi çözülmüş değeri karşılaştırın. Bu öğeler eşleşiyorsa veri silme isteği geçerlidir.

Silme isteği yükünü ayrıştırma

Veri silme isteğinin gerçekliğini doğruladıktan sonra, hangi tanımlayıcının silineceğini doğrulamak için yükü ayrıştırmanız gerekir. Kod çözme işlemi yapılan yük, rqJWT jetonudur. Ayrıntılar için rqJWT: İstek Sahibi "istek" JWT'si başlıklı makaleyi inceleyin.

Aşağıdaki örnekte, kod çözme işlemi yapılmış bir yükün rqJWT jetonu olarak gösterildiği ve isteğe bağlı parametrelerin eklendiği görülmektedir:

{
    "optionalParameters": "{\"gamNetworkCode\":\"311057\"}",
    "sub": "{\n    \"identifierValue\": \"crvBtLjLqNUiafwXZiyukLD4Tf6mMUYhBdQaPZ0pjyd\",\n    \"identifierType\": \"ppid\",\n    \"identifierFormat\": \"plaintext\"\n  }",
    "iat": 1756257951,
    "version": "1.0",
    "iss": "test_publisher",
    "idJWT": "eyJhbGciOiJFUzI1NiIsImtpZCI6IkVodWR1USIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ0ZXN0X3B1Ymxpc2hlciIsInN1YiI6IntcbiAgICBcImlkZW50aWZpZXJWYWx1ZVwiOiBcImNydkJ0TGpMcU5VaWFmd1haaXl1a0xENFRmNm1NVVloQmRRYVBaMHBqeWRcIixcbiAgICBcImlkZW50aWZpZXJUeXBlXCI6IFwicHBpZFwiLFxuICAgIFwiaWRlbnRpZmllckZvcm1hdFwiOiBcInBsYWludGV4dFwiXG4gIH0iLCJpYXQiOjE3NTYyNTc5NTEsInZlcnNpb24iOiIxLjAifQ.Dh17fv1sxKMnkOa7HOWfVdsIYo8BBy2p9SkDTSfZoW6ypMdl_5wDYtUIYEfuX3n6UbwMoH0WVgGQnFQraMH6XQ"
}

Veri silme isteği, yayıncının crvBtLjLqNUiafwXZiyukLD4Tf6mMUYhBdQaPZ0pjyd değeriyle bir PPID'nin silinmesini istediğini belirten bir JSON dizesi içeren sub alanını içerir. rqJWT jetonu, kodlanmış idJWT jetonunu içerir. Ayrıntılar için idJWT: Issuer "identifier" JWT başlıklı makaleyi inceleyin.

Veri silme isteğini yayma

Veri silme isteğini, belirtilen tanımlayıcıları paylaştığınız tüm veri iş ortaklarına iletmeniz gerekir. Örneğin, Open Bidding ile entegrasyonunuz varsa birinci taraf tanımlayıcının paylaşıldığı, exchange'inizdeki teklif verenlere veri silme isteğini iletmeniz gerekir. Bu işlem için veri iş ortaklarına rqJWT jetonu göndermeniz gerekir. rqJWT jetonu, veri iş ortağının dsrdelete.json dosyasındaki yapılandırmalara göre biçimlendirilmiş ilgili tanımlayıcıları içermelidir. Ayrıca, rqJWT jetonu, özel anahtarınızla oluşturulan imzanızı içermelidir.

Veri silme isteğini onaylama

Veri silme isteğini aldığınızı ve bu isteğe göre işlem yaptığınızı onaylamak için dsrdelete.json dosyasında Google'ın belirttiği uç noktaya bir onay JWT'si gönderin. Ayrıntılar için acJWT: Alıcı "onay" JWT'si başlıklı makaleyi inceleyin.

Yanıtınızın HTTP durum kodu aşağıdaki sonuca bağlıdır:

  • Başarı: İstek başarıyla alındıysa, ayrıştırıldıysa ve işleme alındıysa HTTP 202 değerini döndürün.
  • Başarısız: İstek başarıyla alınmadıysa, ayrıştırılmadıysa ve işlenmediyse HTTP 400 değerini döndürün.

İstek gövdesi, raResultCode alanını bir tam sayı sonuç koduyla dolduran bir yük içeren acJWT jetonu içermelidir. İsteğe bağlı olarak, raResultString alanında sonuçla ilgili açıklayıcı metin sağlayabilirsiniz. acJWT jetonu, özel anahtarınızla oluşturulan imzanızı içermelidir.

Veri Silme İsteği Çerçevesi'nde desteklenen sonuç kodları hakkında daha fazla bilgi edinmek için Sonuç Kodları başlıklı makaleyi inceleyin.

acJWT jeton başlığını oluşturma

Alıcının imzanızı doğrulamak için kullanmasını istediğiniz karma işlevine ve ortak anahtara göre başlığı doldurun. Aşağıdaki örnekte kodlanmamış başlık, alıcının karma oluşturmak için ES256 algoritmasını kullanmasını ve imzanızın şifresini çözerken dsrdelete.json dosyanızdaki anahtar kimliği EhuduQ olan ortak anahtarı kullanmasını istediğinizi gösterir.

{
    "alg": "ES256",
    "typ": "JWT",
    "kid": "EhuduQ"
}

acJWT jetonu yükünü oluşturma

Silme isteğinin sonucuna göre yükü doldurun ve rqJWT alanını, onayladığınız rqJWT jetonunun kodlanmış biçimiyle doldurun. Aşağıdaki örnekte, işlemin başarılı olduğunu belirtmek için raResultCode alanında 0 değeri belirtilmektedir:

{
    "version": "1.0",
    "jti": "965492b2-74e5-409a-90f4-f041902db05f",
    "raResultString": "",
    "iat": 1756408212,
    "iss": "doubleclick.net",
    "raResultCode": 0,
    "rqJWT": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkVodWR1USJ9.eyJvcHRpb25hbFBhcmFtZXRlcnMiOiJ7XCJnYW1OZXR3b3JrQ29kZVwiOlwiMzExMDU3XCJ9Iiwic3ViIjoie1xuICAgIFwiaWRlbnRpZmllclZhbHVlXCI6IFwiY3J2QnRMakxxTlVpYWZ3WFppeXVrTEQ0VGY2bU1VWWhCZFFhUFowcGp5ZFwiLFxuICAgIFwiaWRlbnRpZmllclR5cGVcIjogXCJwcGlkXCIsXG4gICAgXCJpZGVudGlmaWVyRm9ybWF0XCI6IFwicGxhaW50ZXh0XCJcbiAgfSIsImlhdCI6MTc1NjI1Nzk1MSwidmVyc2lvbiI6IjEuMCIsImlzcyI6InRlc3RfcHVibGlzaGVyIiwiaWRKV1QiOiJleUpoYkdjaU9pSkZVekkxTmlJc0ltdHBaQ0k2SWtWb2RXUjFVU0lzSW5SNWNDSTZJa3BYVkNKOS5leUpwYzNNaU9pSjBaWE4wWDNCMVlteHBjMmhsY2lJc0luTjFZaUk2SW50Y2JpQWdJQ0JjSW1sa1pXNTBhV1pwWlhKV1lXeDFaVndpT2lCY0ltTnlka0owVEdwTWNVNVZhV0ZtZDFoYWFYbDFhMHhFTkZSbU5tMU5WVmxvUW1SUllWQmFNSEJxZVdSY0lpeGNiaUFnSUNCY0ltbGtaVzUwYVdacFpYSlVlWEJsWENJNklGd2ljSEJwWkZ3aUxGeHVJQ0FnSUZ3aWFXUmxiblJwWm1sbGNrWnZjbTFoZEZ3aU9pQmNJbkJzWVdsdWRHVjRkRndpWEc0Z0lIMGlMQ0pwWVhRaU9qRTNOVFl5TlRjNU5URXNJblpsY25OcGIyNGlPaUl4TGpBaWZRLkRoMTdmdjFzeEtNbmtPYTdIT1dmVmRzSVlvOEJCeTJwOVNrRFRTZlpvVzZ5cE1kbF81d0RZdFVJWUVmdVgzbjZVYndNb0gwV1ZnR1FuRlFyYU1INlhRIn0.zZnuUsUDzkARg31RzkhLOJCSXD5jPca8qff5IqyYrrRITgRgm29T__6gC3oOOK5RAcd_AFFYWzE8onx6Kj1w8A"
}