Generare gli D dispositivo di prime parti

Tradizionalmente, le applicazioni Adobe Experience Cloud generano cookie per memorizzare gli ID dispositivo utilizzando diverse tecnologie, tra cui:

  1. Cookie di terze parti
  2. Cookie di prime parti impostati da un server di Adobe utilizzando la configurazione CNAME di un nome di dominio
  3. 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 prima parte (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à:

ID dispositivo di prime parti (FPID) e ID Experience Cloud (ECID)

  1. Il browser di un utente finale richiede una pagina web dal server web o dalla rete CDN di un cliente.
  2. 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).
  3. Il cliente imposta un cookie di prima parte per memorizzare l’FPID nel browser dell’utente finale.
  4. L’implementazione Adobe Experience Platform Web SDK del cliente invia una richiesta alla rete Edge di Platform, incluso l’FPID nella mappa delle identità.
  5. Experienci Platform Edge Network riceve l’FPID e lo utilizza per generare un ID Experience Cloud (ECID).
  6. La risposta di Platform Web SDK invia nuovamente l’ECID al browser dell’utente finale.
  7. Se il idMigrationEnabled=true, Platform Web SDK utilizza JavaScript per memorizzare l’ECID come AMCV_ cookie nel browser dell’utente finale.
  8. Nel caso in cui AMCV_ il cookie scade, il processo si ripete. Se è disponibile lo stesso ID dispositivo di prime parti, viene AMCV_ Il cookie viene creato con lo stesso valore ECID di prima.
NOTE
Il idMigrationEnabled non deve essere impostato su true per utilizzare FPID. Con idMigrationEnabled=false potrebbe non vedere AMCV_ cookie, tuttavia, e dovranno 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));
    }

?>

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);
    }

?>
NOTE
Il cookie che contiene l’ID dispositivo di prime parti può avere qualsiasi nome.

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
                    }
                ]
        }
}
IMPORTANT
Il simbolo dello spazio dei nomi dell’identità utilizzato nella mappa di identità, deve essere chiamato 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:

  1. Genera un cookie FPID.
  2. Invia una richiesta a Platform Edge Network utilizzando Platform Web SDK.
  3. Un cookie con il formato AMCV_<IMSORGID@AdobeOrg> viene generato. Questo cookie contiene l’ECID.
  4. Prendi nota del valore del cookie generato, quindi elimina tutti i cookie del sito ad eccezione di FPID cookie.
  5. Invia un’altra richiesta a Platform Edge Network.
  6. Conferma il valore in AMCV_<IMSORGID@AdobeOrg> cookie è lo stesso ECID valore come in AMCV_ cookie 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.

recommendation-more-help
9cc2b5f3-7a2d-451f-950c-f8f7136b6390