Génération d’identifiants d’appareil propriétaires
Les applications Adobe Experience Cloud ont traditionnellement généré des cookies pour stocker les identifiants d’appareil à l’aide de différentes technologies, notamment :
- Cookies tiers
- Cookies propriétaires définis par un serveur Adobe à l’aide de la configuration CNAME d’un nom de domaine
- Cookies propriétaires définis par JavaScript
Les modifications récentes du navigateur limitent la durée de ces types de cookies. Les cookies propriétaires sont plus efficaces lorsqu’ils sont définis à l’aide d’un serveur détenu par le client à l’aide d’un enregistrement DNS A/AAAA plutôt que d’un CNAME DNS. La fonctionnalité d’identifiant d’appareil propriétaire (FPID) permet aux clients qui implémentent le SDK Web de Adobe Experience Platform d’utiliser des identifiants d’appareil dans des cookies provenant de serveurs utilisant des enregistrements DNS A/AAAA. Ces identifiants peuvent ensuite être envoyés à Adobe et utilisés comme graines pour générer des identifiants Experience Cloud (ECID), qui reste l’identifiant principal dans les applications Adobe Experience Cloud.
Voici un exemple rapide du fonctionnement de cette fonctionnalité :
-
Le navigateur d’un utilisateur final demande une page Web au serveur Web ou au réseau de diffusion de contenu d’un client.
-
Le client génère un identifiant d’appareil (FPID) sur son serveur web ou CDN (le serveur web doit être associé à l’enregistrement DNS A/AAAA du nom de domaine).
-
Le client définit un cookie propriétaire pour stocker le FPID dans le navigateur de l’utilisateur final.
-
L’implémentation du SDK Web Adobe Experience Platform du client émet une requête à l’Edge Network Platform et :
- Inclut le FPID dans la carte d’identité.
- Configure un CNAME pour leurs requêtes de SDK Web et configure leur flux de données avec le nom de leur cookie FPID.
-
L’Edge Network Experience Platform reçoit le FPID et l’utilise pour générer un identifiant Experience Cloud (ECID).
-
La réponse du SDK Web Platform envoie l’ECID à son navigateur.
-
Si le
idMigrationEnabled=true
, le SDK Web de Platform utilise JavaScript pour stocker l’ECID en tant que cookieAMCV_
dans le navigateur de l’utilisateur final. -
Dans le cas où le cookie
AMCV_
expire, le processus se répète. Tant que le même identifiant d’appareil propriétaire est disponible, un nouveau cookieAMCV_
est créé avec la même valeur ECID qu’auparavant.
idMigrationEnabled
n’a pas besoin d’être défini sur true
pour utiliser FPID. Avec idMigrationEnabled=false
, vous ne verrez peut-être pas de cookie AMCV_
et devrez rechercher la valeur ECID dans la réponse réseau.Dans ce tutoriel, un exemple spécifique utilisant le langage de script PHP est utilisé pour montrer comment :
- Génération d’un UUIDv4
- Écrire une valeur UIDv4 dans un cookie
- Inclure la valeur du cookie dans la carte d’identité
- Validation de la génération d’ECID
Vous trouverez plus d’informations sur les ID d’appareils propriétaires dans la documentation du produit.
Génération d’un UUIDv4
PHP n’a pas de bibliothèque native pour la génération d’UUID. Par conséquent, ces exemples de code sont plus étendus que ce qui serait probablement nécessaire si un autre langage de programmation était utilisé. PHP a été choisi pour cet exemple car il s’agit d’un langage côté serveur largement pris en charge.
Lorsque la fonction suivante est appelée, elle génère un UUID aléatoire 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));
}
?>
Écrire une valeur UIDv4 dans un cookie
Le code suivant émet une requête à la fonction ci-dessus pour générer un UUID. Il définit ensuite les indicateurs de cookie décidés par votre organisation. Si un cookie a déjà été généré, l’expiration est étendue.
<?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);
}
?>
Inclure la valeur du cookie dans la carte des identités
La dernière étape consiste à utiliser PHP pour faire écho à la valeur du cookie dans la carte des identités.
{
"identityMap": {
"FPID": [
{
"id": "<? echo $_COOKIE[$cookie_name] ?>",
"authenticatedState": "ambiguous",
"primary": true
}
]
}
}
FPID
.FPID
est un espace de noms d’identité réservé qui n’est pas visible dans les listes d’interface des espaces de noms d’identité.Validation de la génération d’ECID
Validez l’implémentation en confirmant que le même ECID est généré à partir de votre identifiant d’appareil propriétaire :
- Générez un cookie FPID.
- Envoyez une requête à l’Edge Network Platform à l’aide du SDK Web Platform.
- Un cookie au format
AMCV_<IMSORGID@AdobeOrg>
est généré. Ce cookie contient l’ECID. - Notez la valeur du cookie qui est générée, puis supprimez tous les cookies de votre site, à l’exception du cookie
FPID
. - Envoyez une autre requête à l’Edge Network Platform.
- Vérifiez que la valeur du cookie
AMCV_<IMSORGID@AdobeOrg>
est la même valeurECID
que dans le cookieAMCV_
qui a été supprimé. Si la valeur du cookie est identique pour un FPID donné, le processus d’ensemencement de l’ECID a réussi.
Pour plus d’informations sur cette fonctionnalité, voir la documentation.