Generare ID dispositivo di prime parti
Tradizionalmente, le applicazioni Adobe Experience Cloud generano cookie per memorizzare gli ID dispositivo utilizzando diverse tecnologie, tra cui:
- Cookie di terze parti
- Cookie di prime parti impostati da un server di Adobe utilizzando la configurazione CNAME di un nome di dominio
- Cookie di prime parti impostati da JavaScript
Le modifiche recenti apportate al browser limitano la durata di questi tipi di cookie. I cookie di prime parti sono più efficaci quando vengono impostati utilizzando un server di proprietà del cliente che utilizza un record A/AAAA DNS anziché un CNAME DNS. La funzionalità ID dispositivo di prime parti (FPID) consente ai clienti che implementano Adobe Experience Platform Web SDK di utilizzare gli ID dispositivo nei cookie dei server che utilizzano i record A/AAAA DNS. Questi ID possono quindi essere inviati ad Adobe e utilizzati come seed per generare gli ID Experience Cloud (ECID), che rimangono l’identificatore primario nelle applicazioni Adobe Experience Cloud.
Di seguito è riportato un rapido esempio di come funziona la funzionalità:
-
Il browser di un utente finale richiede una pagina web dal server web o dalla rete CDN di un cliente.
-
Il cliente genera un ID dispositivo (FPID) sul proprio server web o CDN (il server web deve essere associato al record A/AAAA DNS del nome di dominio).
-
Il cliente imposta un cookie di prima parte per memorizzare l’FPID nel browser dell’utente finale.
-
L’implementazione Adobe Experience Platform Web SDK del cliente invia una richiesta all’Edge Network di Platform e:
- Include l'FPID nella mappa di identità.
- Configura un CNAME per le loro richieste Web SDK e configura il loro stream di dati con il nome del loro cookie FPID.
-
L’Edge Network di Experience Platform riceve l’FPID e lo utilizza per generare un ID di Experience Cloud (ECID).
-
La risposta di Platform Web SDK invia nuovamente l’ECID al browser dell’utente finale.
-
Se
idMigrationEnabled=true
, Platform Web SDK utilizza JavaScript per memorizzare l'ECID come cookieAMCV_
nel browser dell'utente finale. -
Nel caso in cui il cookie
AMCV_
scada, il processo si ripete. Se è disponibile lo stesso ID dispositivo di prima parte, viene creato un nuovo cookieAMCV_
con lo stesso valore ECID di prima.
idMigrationEnabled
su true
per utilizzare l'FPID. Con idMigrationEnabled=false
è possibile che non venga visualizzato un cookie AMCV_
e che sia necessario cercare il valore ECID nella risposta di rete.Per questo tutorial, viene utilizzato un esempio specifico che utilizza il linguaggio di script PHP per mostrare come:
- Generare un UUIDv4
- Scrivi il valore UUIDv4 in un cookie
- Includi il valore del cookie nella mappa di identità
- Convalidare la generazione di ECID
Ulteriori informazioni relative agli ID dispositivo di prime parti sono disponibili nella documentazione del prodotto.
Generare un UUIDv4
PHP non dispone di una libreria nativa per la generazione di UUID, quindi questi esempi di codice sono più estesi di quanto sarebbe probabilmente necessario se fosse stato utilizzato un altro linguaggio di programmazione. Il PHP è stato scelto per questo esempio perché è un linguaggio lato server ampiamente supportato.
Quando viene chiamata la seguente funzione, genera un UUID versione-4 casuale:
<?php
function guidv4($data)
{
$data = $data ?? random_bytes(16);
$data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
$data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
?>
Scrivi il valore UUIDv4 in un cookie
Il codice seguente invia una richiesta alla funzione precedente per generare un UUID. Quindi imposta i flag di cookie decisi dalla tua organizzazione. Se è già stato generato un cookie, la scadenza viene estesa.
<?php
if(!isset($_COOKIE['FPID'])) {
$cookie_value = guidv4(openssl_random_pseudo_bytes(16));
$arr_cookie_options = array (
'expires' => time() + 60*60*24*30*13,
'path' => '/',
'domain' => 'mysiteurl.com',
'secure' => true,
'httponly' => true,
'samesite' => 'lax'
);
setcookie($cookie_name, $cookie_value, $arr_cookie_options);
$_COOKIE[$cookie_name] = $cookie_value;
}
else {
$cookie_value = $_COOKIE[$cookie_name];
$arr_cookie_options = array (
'expires' => time() + 60*60*24*30*13,
'path' => '/',
'domain' => 'mysiteurl.com',
'secure' => true,
'httponly' => true,
'samesite' => 'lax'
);
setcookie($cookie_name, $cookie_value, $arr_cookie_options);
}
?>
Includere il valore del cookie in Identity Map
Il passaggio finale consiste nell’utilizzare PHP per copiare il valore del cookie in Identity Map.
{
"identityMap": {
"FPID": [
{
"id": "<? echo $_COOKIE[$cookie_name] ?>",
"authenticatedState": "ambiguous",
"primary": true
}
]
}
}
FPID
.FPID
è uno spazio dei nomi di identità riservato non visibile negli elenchi di interfaccia degli spazi dei nomi di identità.Convalidare la generazione di ECID
Convalida l’implementazione confermando che lo stesso ECID viene generato dal tuo ID dispositivo di prime parti:
- Genera un cookie FPID.
- Invia una richiesta all’Edge Network di Platform tramite Platform Web SDK.
- È stato generato un cookie con il formato
AMCV_<IMSORGID@AdobeOrg>
. Questo cookie contiene l’ECID. - Prendere nota del valore del cookie generato, quindi eliminare tutti i cookie del sito ad eccezione del cookie
FPID
. - Invia un’altra richiesta all’Edge Network di Platform.
- Confermare che il valore nel cookie
AMCV_<IMSORGID@AdobeOrg>
è uguale al valoreECID
del cookieAMCV_
eliminato. Se il valore del cookie è lo stesso per un determinato FPID, il processo di seeding per l’ECID è riuscito.
Per ulteriori informazioni su questa funzione, consulta la documentazione.