Generera enhets-ID:n från första part

Adobe Experience Cloud-program har traditionellt genererat cookies för att lagra enhets-ID med hjälp av olika tekniker, bland annat:

  1. cookies från tredje part
  2. cookies från första part som anges av en Adobe-server med hjälp av domännamnets CNAME-konfiguration
  3. cookies från första part som anges av JavaScript

De senaste ändringarna i webbläsaren begränsar varaktigheten för dessa typer av cookies. Första parts-cookies är mest effektiva när de ställs in med en kundägd server som använder en DNS A/AAA-post i motsats till en DNS CNAME. Med funktionen för FPID (First-party device ID) kan kunder som implementerar Adobe Experience Platform Web SDK använda enhets-ID i cookies från servrar med DNS A/AAAA-poster. Dessa ID:n kan sedan skickas till Adobe och användas som frön för att generera Experience Cloud ID:n (ECID), som förblir den primära identifieraren i Adobe Experience Cloud-program.

Här är ett kort exempel på hur funktionen fungerar:

ID:n för förstahandsenhet (FPID) och Experience Cloud ID:n (ECID)

  1. En slutanvändares webbläsare begär en webbsida från en kunds webbserver eller CDN.
  2. Kunden genererar ett enhets-ID (FPID) på sin webbserver eller CDN (webbservern ska vara knuten till domännamnets DNS A/AAAA-post).
  3. Kunden ställer in en cookie för första part för att lagra FPID i slutanvändarens webbläsare.
  4. Kundens implementering av Adobe Experience Platform Web SDK gör en begäran till Platform Edge Network, inklusive FPID i identitetskartan.
  5. Experience Platform Edge Network tar emot FPID och använder det för att generera ett Experience Cloud ID (ECID).
  6. SDK-svaret för plattformen skickar ECID tillbaka till slutanvändarens webbläsare.
  7. Om idMigrationEnabled=trueanvänds JavaScript för att lagra ECID som AMCV_ cookie i slutanvändarens webbläsare.
  8. I händelse av AMCV_ cookie förfaller, processen upprepas själv. Så länge samma enhets-ID finns tillgängligt får du ett nytt AMCV_ cookie skapas med samma ECID-värde som tidigare.
OBSERVERA

The idMigrationEnabled behöver inte anges till true för att använda FPID. Med idMigrationEnabled=false du kanske inte ser AMCV_ cookie och måste söka efter ECID-värdet i nätverkssvaret.

I den här självstudiekursen används ett specifikt exempel med skriptspråket PHP för att visa hur du:

  • Generera en UUIDv4
  • Skriv UUIDv4-värde till en cookie
  • Inkludera cookie-värdet i identitetskartan
  • Validera ECID-genereringen

Ytterligare dokumentation om enhets-ID:n från första part finns i produktdokumentationen.

Generera en UUIDv4

PHP har inget systemspecifikt bibliotek för UUID-generering, så dessa kodexempel är mer omfattande än vad som troligtvis skulle behövas om ett annat programmeringsspråk användes. PHP valdes för det här exemplet eftersom det är ett språk på serversidan som har brett stöd.

När följande funktion anropas genereras ett slumpmässigt UUID version-4:

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

?>

Följande kod skickar en begäran till funktionen ovan om att generera ett UUID. Sedan anges cookie-flaggorna som din organisation har bestämt. Om en cookie redan har genererats förlängs giltigheten.

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

?>
OBSERVERA

Den cookie som innehåller det första enhets-ID:t kan ha vilket namn som helst.

Det sista steget är att använda PHP för att eko cookie-värdet till identitetskartan.

{
    "identityMap": {
        "FPID": [
                    {
                        "id": "<? echo $_COOKIE[$cookie_name] ?>",
                        "authenticatedState": "ambiguous",
                        "primary": true
                    }
                ]
        }
}
VIKTIGT

Identitetsnamnutrymmessymbolen som används i identitetskartan måste anropas FPID.

FPID är ett reserverat ID-namnutrymme som inte visas i gränssnittslistorna med identitetsnamnutrymmen.

Validera ECID-generering

Validera implementeringen genom att bekräfta att samma ECID genereras från ditt första enhets-ID:

  1. Skapa en FPID-cookie.
  2. Skicka en begäran till Platform Edge Network med Platform Web SDK.
  3. En cookie med formatet AMCV_<IMSORGID@AdobeOrg> genereras. Denna cookie innehåller ECID.
  4. Anteckna cookie-värdet som genereras och ta sedan bort alla cookies för webbplatsen utom FPID cookie.
  5. Skicka ytterligare en begäran till Platform Edge Network.
  6. Bekräfta värdet i AMCV_<IMSORGID@AdobeOrg> cookie är samma ECID som i AMCV_ cookie som har tagits bort. Om cookie-värdet är samma för en viss FPID har sederingsprocessen för ECID slutförts.

Mer information om den här funktionen finns i dokumentationen.

På denna sida