Generare ID 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 all’Edge Network di Platform, incluso l’FPID nella mappa delle identità.
  5. L’Edge Network di Experience Platform riceve l’FPID e lo utilizza per generare un ID di Experience Cloud (ECID).
  6. La risposta di Platform Web SDK invia nuovamente l’ECID al browser dell’utente finale.
  7. Se idMigrationEnabled=true, Platform Web SDK utilizza JavaScript per memorizzare l'ECID come cookie AMCV_ nel browser dell'utente finale.
  8. 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 cookie AMCV_ con lo stesso valore ECID di prima.
NOTE
Non è necessario impostare 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));
    }

?>

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 identità deve essere denominato 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 all’Edge Network di Platform tramite Platform Web SDK.
  3. È stato generato un cookie con il formato AMCV_<IMSORGID@AdobeOrg>. Questo cookie contiene l’ECID.
  4. Prendere nota del valore del cookie generato, quindi eliminare tutti i cookie del sito ad eccezione del cookie FPID.
  5. Invia un’altra richiesta all’Edge Network di Platform.
  6. Confermare che il valore nel cookie AMCV_<IMSORGID@AdobeOrg> è uguale al valore ECID del cookie AMCV_ 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