Alcune regioni hanno normative sull'eliminazione dei dati che richiedono ai publisher di fornire agli utenti dei loro contenuti un mezzo per richiedere l'eliminazione dei propri dati. Se la tua integrazione di Real Time Bidding utilizza identificatori proprietari e riceve inventario da regioni con normative sull'eliminazione dei dati, Google ti consiglia di eseguire l'integrazione con il framework per le richieste di eliminazione dei dati di IAB.
Quando un utente sceglie di eliminare i propri identificatori dall'app o dal sito di un publisher, il framework per le richieste di eliminazione dei dati consente al publisher di propagare una richiesta di eliminazione dei dati. Il publisher invia una richiesta di eliminazione dei dati agli exchange, che possono propagare la richiesta di eliminazione dei dati a te. Quando ricevi una richiesta di eliminazione dei dati, devi propagarla alle entità con cui hai condiviso i dati proprietari del publisher. Ad esempio, se hai un'integrazione Open Bidding, devi propagare la richiesta agli offerenti sul tuo exchange con cui sono stati condivisi i dati proprietari.
Questa guida illustra la configurazione iniziale dell'integrazione del framework per le richieste di eliminazione dei dati con Google Exchange e fornisce una panoramica del flusso di lavoro del framework per le richieste di eliminazione dei dati nel contesto di Google Exchange. Per ulteriori indicazioni, consulta il framework per le richieste di eliminazione dei dati.
Configura l'integrazione
Per iniziare a ricevere le richieste di eliminazione dei dati da Google, devi registrare un
dominio con Google che vuoi associare al tuo account e ospitare un
file dsrdelete.json nella directory principale del dominio registrato. Per registrare il tuo
dominio con Google, contatta il tuo account manager. Il file dsrdelete.json
ha diversi scopi, ad esempio:
- Identificazione dell'endpoint a cui Google invia le richieste di eliminazione dei dati.
- Elenco degli identificatori supportati e del relativo formato.
- Specificando le chiavi pubbliche conformi allo standard JSON Web Key (JWK), che altre parti utilizzano per verificare l'autenticità delle richieste di eliminazione o delle conferme di dati propagati che invii.
Per informazioni dettagliate sul file drsdelete.json, ad esempio i campi obbligatori e facoltativi
che puoi compilare, consulta Discovery.
L'endpoint specificato nel file dsrdelete.json deve ricevere e rispondere
alle richieste di eliminazione dei dati in arrivo. Google consiglia di utilizzare una libreria
crittografica per il linguaggio di programmazione scelto per verificare le richieste che
ricevi e firmare le conferme che invii.
L'esempio seguente imposta un file dsrdelete.json con un endpoint,
identificatori e chiave pubblica:
{
"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
}
Ricevere una richiesta di eliminazione dati
Google propaga le richieste di eliminazione dei dati dai publisher quando sono soddisfatte tutte le seguenti condizioni:
- Ospiti un file
dsrdelete.jsonvalido su un dominio registrato con Google. - Il publisher invia a Google una richiesta di eliminazione dei dati per un identificatore.
- Google determina che l'identificatore publisher inviato nella richiesta di eliminazione dei dati è stato condiviso con te.
Quando ricevi una richiesta di eliminazione dei dati, sei responsabile dell'eliminazione dei dati specificati. Devi inoltre continuare a propagare la richiesta di eliminazione dei dati ad altri partner di dati con cui hai condiviso i dati proprietari del publisher. Google supporta le richieste di eliminazione dei dati per i seguenti identificatori:
ppid: identificatori forniti dal publisher (PPID).pfpid_domain: identificatori proprietari del publisher per il web.idfv: identificatori proprietari del publisher per i dispositivi iOS.
Google invia la richiesta di eliminazione dei dati come richiesta HTTP POST all'endpoint
specificato nel file dsrdelete.json. Il corpo della richiesta di eliminazione dei dati
contiene un token web JSON (JWT) composto da
le seguenti parti:
- Un'intestazione JOSE che descrive l'algoritmo di crittografia.
- Un payload JWS contenente la richiesta di eliminazione.
- Una firma JWS per verificare l'autenticità della richiesta.
Google codifica l'intestazione, il payload e la firma in base64 e formatta questi elementi nel seguente modo:
WEB_SAFE_BASE64_ENCODED_HEADER.WEB_SAFE_BASE64_ENCODED_PAYLOAD.WEB_SAFE_BASE64_ENCODED_SIGNATURE
Per saperne di più sui JWT distinti utilizzati nel framework di eliminazione dei dati, consulta Implementazione del token web JSON (JWT). La richiesta di eliminazione dei dati che ricevi da Google è un JWT di richiesta (rqJWT), che include l'Identity JWT (idJWT) che l'editore ha inviato quando ha richiesto l'eliminazione.
Trovare i dettagli di convalida nell'intestazione
L'intestazione è un oggetto JSON che descrive l'algoritmo da utilizzare per produrre un hash della richiesta, necessario per verificarne l'autenticità. Se l'emittente dispone di più chiavi private che può utilizzare per produrre una firma, l'intestazione identifica anche quale delle chiavi pubbliche dell'emittente puoi utilizzare per convalidare la firma.
Il seguente esempio è un'intestazione decodificata che mostra che puoi utilizzare l'algoritmo RSA256
con l'ID chiave abc123 per convalidare la firma:
{
"typ": "JWT",
"alg": "RS256",
"kid": "abc123"
}
Autentica la richiesta
Puoi verificare che Google abbia inviato le richieste di eliminazione dei dati con la chiave pubblica
nel file dsrdelete.json di Google. Il file dsrdelete.json di Google è ospitato
all'indirizzo https://static.doubleclick.net/dsrdelete.json
Per verificare l'autenticità della richiesta di eliminazione dei dati, segui questi passaggi:
Calcola l'hash dell'intestazione e del payload utilizzando l'algoritmo identificato nell'intestazione. I dati passati alla funzione hash devono utilizzare la seguente struttura:
WEB_SAFE_BASE64_ENCODED_HEADER.WEB_SAFE_BASE64_ENCODED_PAYLOADUtilizza la chiave pubblica specificata nel file
dsrdelete.jsondell'emittente per decriptare la firma decodificata.Confronta l'hash generato nel passaggio 1 con il valore decriptato della firma. Se questi elementi corrispondono, la richiesta di eliminazione dei dati è autentica.
Analizzare il payload della richiesta di eliminazione
Dopo aver verificato l'autenticità della richiesta di eliminazione dei dati, devi analizzare il payload per verificare quale identificatore eliminare. Il payload decodificato è un token rqJWT. Per maggiori dettagli, vedi rqJWT: JWT "request" del richiedente.
Il seguente esempio mostra un payload decodificato come token rqJWT e include parametri facoltativi:
{
"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"
}
La richiesta di eliminazione dei dati include il campo sub, che contiene una stringa JSON che indica che il publisher sta richiedendo l'eliminazione di un PPID con il valore crvBtLjLqNUiafwXZiyukLD4Tf6mMUYhBdQaPZ0pjyd. Il token rqJWT include
il token idJWT codificato. Per i dettagli, vedi
idJWT: JWT "identifier" dell'emittente .
Propagare la richiesta di eliminazione dati
Devi propagare la richiesta di eliminazione dei dati a tutti i partner di dati con cui
hai condiviso gli identificatori specificati. Ad esempio, se hai eseguito l'integrazione con
Open Bidding, devi propagare la richiesta di eliminazione dei dati agli offerenti sul tuo
exchange con cui è stato condiviso l'identificatore proprietario. Questa procedura
richiede l'invio di un token rqJWT ai partner di dati. Il token rqJWT deve contenere
gli identificatori pertinenti, formattati in base alle configurazioni nel file
dsrdelete.json del partner di dati. Inoltre, il token rqJWT deve includere la tua firma generata con la tua chiave privata.
Accettare la richiesta di eliminazione dei dati
Per confermare di aver ricevuto la richiesta di eliminazione dei dati e di averla eseguita,
invia un JWT di conferma all'endpoint specificato da Google nel file
dsrdelete.json. Per maggiori dettagli, vedi
acJWT: JWT di "riconoscimento" del destinatario.
Il codice di stato HTTP della risposta dipende dal seguente risultato:
- Successo: restituisce
HTTP 202se la richiesta è stata ricevuta, analizzata e gestita correttamente. - Errore: restituisci
HTTP 400se la richiesta non è stata ricevuta, analizzata e gestita correttamente.
Il corpo della richiesta deve includere un token acJWT con un payload che compila il campo raResultCode con un codice risultato intero. Se vuoi, puoi fornire
un testo descrittivo sul risultato nel campo raResultString. Il token acJWT
deve includere la tua firma generata con la tua chiave privata.
Per scoprire di più sui codici di risultato supportati nel framework per le richieste di eliminazione dei dati, consulta Codici di risultato.
Creare l'intestazione del token acJWT
Compila l'intestazione in base alla funzione hash e alla chiave pubblica che vuoi che il destinatario utilizzi per verificare la tua firma. L'intestazione non codificata
nell'esempio seguente indica che intendi che il destinatario utilizzi l'algoritmo ES256
per generare l'hash e che deve utilizzare la chiave pubblica
con l'ID chiave EhuduQ dal tuo file dsrdelete.json durante la decriptazione della
firma.
{
"alg": "ES256",
"typ": "JWT",
"kid": "EhuduQ"
}
Crea il payload del token acJWT
Compila il payload in base al risultato della richiesta di eliminazione e compila
il campo rqJWT con la forma codificata del token rqJWT che stai
confermando. L'esempio seguente specifica un campo raResultCode con il valore 0 per indicare che l'operazione è riuscita:
{
"version": "1.0",
"jti": "965492b2-74e5-409a-90f4-f041902db05f",
"raResultString": "",
"iat": 1756408212,
"iss": "doubleclick.net",
"raResultCode": 0,
"rqJWT": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IkVodWR1USJ9.eyJvcHRpb25hbFBhcmFtZXRlcnMiOiJ7XCJnYW1OZXR3b3JrQ29kZVwiOlwiMzExMDU3XCJ9Iiwic3ViIjoie1xuICAgIFwiaWRlbnRpZmllclZhbHVlXCI6IFwiY3J2QnRMakxxTlVpYWZ3WFppeXVrTEQ0VGY2bU1VWWhCZFFhUFowcGp5ZFwiLFxuICAgIFwiaWRlbnRpZmllclR5cGVcIjogXCJwcGlkXCIsXG4gICAgXCJpZGVudGlmaWVyRm9ybWF0XCI6IFwicGxhaW50ZXh0XCJcbiAgfSIsImlhdCI6MTc1NjI1Nzk1MSwidmVyc2lvbiI6IjEuMCIsImlzcyI6InRlc3RfcHVibGlzaGVyIiwiaWRKV1QiOiJleUpoYkdjaU9pSkZVekkxTmlJc0ltdHBaQ0k2SWtWb2RXUjFVU0lzSW5SNWNDSTZJa3BYVkNKOS5leUpwYzNNaU9pSjBaWE4wWDNCMVlteHBjMmhsY2lJc0luTjFZaUk2SW50Y2JpQWdJQ0JjSW1sa1pXNTBhV1pwWlhKV1lXeDFaVndpT2lCY0ltTnlka0owVEdwTWNVNVZhV0ZtZDFoYWFYbDFhMHhFTkZSbU5tMU5WVmxvUW1SUllWQmFNSEJxZVdSY0lpeGNiaUFnSUNCY0ltbGtaVzUwYVdacFpYSlVlWEJsWENJNklGd2ljSEJwWkZ3aUxGeHVJQ0FnSUZ3aWFXUmxiblJwWm1sbGNrWnZjbTFoZEZ3aU9pQmNJbkJzWVdsdWRHVjRkRndpWEc0Z0lIMGlMQ0pwWVhRaU9qRTNOVFl5TlRjNU5URXNJblpsY25OcGIyNGlPaUl4TGpBaWZRLkRoMTdmdjFzeEtNbmtPYTdIT1dmVmRzSVlvOEJCeTJwOVNrRFRTZlpvVzZ5cE1kbF81d0RZdFVJWUVmdVgzbjZVYndNb0gwV1ZnR1FuRlFyYU1INlhRIn0.zZnuUsUDzkARg31RzkhLOJCSXD5jPca8qff5IqyYrrRITgRgm29T__6gC3oOOK5RAcd_AFFYWzE8onx6Kj1w8A"
}