Apparaat-id's van de eerste fabrikant genereren
Adobe Experience Cloud-toepassingen hebben van oudsher cookies gegenereerd om apparaatid's op te slaan met behulp van verschillende technologieën, zoals:
- Cookies van andere bedrijven
- De koekjes van de eerste partij die door een server van de Adobe worden geplaatst gebruikend de configuratie van CNAME van een domeinnaam
- Door JavaScript ingestelde cookies van de eerste partij
Recente browserwijzigingen beperken de duur van dit type cookies. De koekjes van de eerste partij zijn het meest efficiënt wanneer zij gebruikend een klant-bezeten server gebruikend DNS A/AAAA-verslag in tegenstelling tot DNS CNAME worden geplaatst. De eerste-partij apparaat identiteitskaart (FPID) functionaliteitstaat klanten die SDK van het Web van Adobe Experience Platform uitvoeren toe om apparaat IDs in koekjes van servers te gebruiken die DNS A/AAAA-verslagen gebruiken. Deze id's kunnen vervolgens naar de Adobe worden verzonden en worden gebruikt als zaden om Experience Cloud-id's (ECID's) te genereren, wat de primaire id blijft in Adobe Experience Cloud-toepassingen.
Hier volgt een kort voorbeeld van de werking van de functionaliteit:
-
De browser van een eindgebruiker vraagt om een webpagina van de webserver of CDN van een klant.
-
De klant genereert een apparaat-id (FPID) op zijn webserver of CDN (de webserver moet zijn gekoppeld aan de DNS A/AAAA-record van de domeinnaam).
-
De klant stelt een cookie van de eerste partij in om de FPID in de browser van de eindgebruiker op te slaan.
-
De Adobe Experience Platform Web SDK-implementatie van de Web SDK van de klant vraagt de Edge Network van het platform om:
- Hiermee neemt u de FPID op in de identiteitskaart.
- Vormt een CNAME voor hun verzoeken van SDK van het Web en vormt hun gegevensstroom met de naam van hun koekje FPID.
-
De Edge Network van het Experience Platform ontvangt FPID en gebruikt het om een Experience Cloud identiteitskaart (ECID) te produceren.
-
De reactie van SDK van het Web van het platform verzendt ECID terug naar browser van de eindgebruiker.
-
Als de
idMigrationEnabled=true
, gebruikt Platform Web SDK JavaScript om ECID alsAMCV_
koekje in browser van de eindgebruiker op te slaan. -
Als het
AMCV_
-cookie vervalt, wordt het proces zelf herhaald. Zolang dezelfde apparaat-id van de eerste fabrikant beschikbaar is, wordt een nieuwAMCV_
-cookie gemaakt met dezelfde ECID-waarde als voorheen.
idMigrationEnabled
hoeft niet op true
te worden ingesteld om FPID te gebruiken. Met idMigrationEnabled=false
ziet u echter wellicht geen AMCV_
-cookie en moet u naar de ECID-waarde in de netwerkreactie zoeken.In deze zelfstudie wordt een specifiek voorbeeld met PHP-scripttaal gebruikt om te tonen hoe:
- Een UUIDv4 genereren
- UUIDv4-waarde naar een cookie schrijven
- De cookiewaarde opnemen in het identiteitsoverzicht
- De ECID-generatie valideren
Aanvullende documentatie met betrekking tot apparaat-id's van de eerste fabrikant vindt u in de productdocumentatie.
Een UUIDv4 genereren
PHP heeft geen native bibliotheek voor het genereren van UUID, dus deze codevoorbeelden zijn uitgebreider dan wat waarschijnlijk vereist zou zijn als een andere programmeertaal werd gebruikt. PHP werd gekozen voor dit voorbeeld omdat het een breed ondersteunde server-side taal is.
Wanneer de volgende functie wordt aangeroepen, genereert deze een willekeurige UUID-versie 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));
}
?>
UUIDv4-waarde naar een cookie schrijven
De volgende code vraagt de bovenstaande functie om een UUID te genereren. Vervolgens worden de cookie-vlaggen ingesteld die door uw organisatie worden bepaald. Als er al een cookie is gegenereerd, wordt de vervaldatum verlengd.
<?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);
}
?>
De cookie-waarde opnemen in het identiteitsoverzicht
De laatste stap is om PHP te gebruiken om de koekjeswaarde aan de Kaart van de Identiteit te echo.
{
"identityMap": {
"FPID": [
{
"id": "<? echo $_COOKIE[$cookie_name] ?>",
"authenticatedState": "ambiguous",
"primary": true
}
]
}
}
FPID
worden genoemd.FPID
is een gereserveerde naamruimte voor identiteiten die niet zichtbaar is in de interfacelijsten met naamruimten.ECID-generatie valideren
Valideer de implementatie door te bevestigen dat dezelfde ECID wordt gegenereerd op basis van uw apparaat-id van de eerste partij:
- Een FPID-cookie genereren.
- Verzend een verzoek naar de Edge Network van het Platform gebruikend het Web SDK van het Platform.
- Er wordt een cookie met de notatie
AMCV_<IMSORGID@AdobeOrg>
gegenereerd. Dit cookie bevat de ECID. - Maak een notitie van de cookiewaarde die wordt gegenereerd en verwijder vervolgens alle cookies voor uw site, behalve het
FPID
-cookie. - Verzend een ander verzoek naar de Edge Network van het Platform.
- Bevestig dat de waarde in het
AMCV_<IMSORGID@AdobeOrg>
-cookie dezelfdeECID
-waarde is als in hetAMCV_
-cookie dat is verwijderd. Als de cookiewaarde voor een bepaalde FPID gelijk is, is het zaadproces voor de ECID geslaagd.
Voor meer informatie over deze eigenschap, zie de documentatie.