Tradicionalmente, os aplicativos do Adobe Experience Cloud geram cookies para armazenar ids de dispositivos usando diferentes tecnologias, incluindo:
Alterações recentes no navegador restringem a duração desses tipos de cookies. Os cookies primários são mais eficazes quando são definidos usando um servidor de propriedade do cliente usando um registro DNS A/AAAA em vez de um CNAME DNS. A funcionalidade de ID de dispositivo próprio (FPID) permite que os clientes que implementam o SDK da Web da Adobe Experience Platform usem IDs de dispositivo em cookies de servidores que usam registros DNS A/AAAA. Essas IDs podem ser enviadas para o Adobe e usadas como seeds para gerar IDs de Experience Cloud (ECIDs), que permanecem como o identificador principal nos aplicativos da Adobe Experience Cloud.
Este é um exemplo rápido de como a funcionalidade funciona:
idMigrationEnabled=true
, o SDK da Web da Platform usa o JavaScript para armazenar a ECID como a AMCV_
cookie no navegador do usuário final.AMCV_
cookie expira, o processo se repete. Desde que a mesma ID de dispositivo próprio esteja disponível, um novo AMCV_
O cookie do é criado com o mesmo valor de ECID de antes.A variável idMigrationEnabled
não precisa ser definido como true
para usar FPID. Com idMigrationEnabled=false
talvez você não veja uma AMCV_
no entanto, e precisarão procurar o valor ECID na resposta da rede.
Para este tutorial, um exemplo específico usando a linguagem de script PHP é usado para mostrar como:
Outra documentação relacionada às IDs de dispositivos primários pode ser encontrada na documentação do produto.
O PHP não tem uma biblioteca nativa para geração UUID, então estes exemplos de código são mais extensos do que o que seria necessário se outra linguagem de programação fosse usada. O PHP foi escolhido para este exemplo porque é uma linguagem do lado do servidor amplamente suportada.
Quando a seguinte função é chamada, ela gera um UUID aleatório versão 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));
}
?>
O código a seguir faz uma solicitação à função acima para gerar uma UUID. Em seguida, ele define os sinalizadores de cookie decididos pela sua organização. Se um cookie já tiver sido gerado, a expiração será estendida.
<?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);
}
?>
O cookie que contém a ID de dispositivo primário pode ter qualquer nome.
O passo final é usar o PHP para ecoar o valor do cookie no Mapa de identidade.
{
"identityMap": {
"FPID": [
{
"id": "<? echo $_COOKIE[$cookie_name] ?>",
"authenticatedState": "ambiguous",
"primary": true
}
]
}
}
O símbolo de namespace de identidade usado no mapa de identidade deve ser chamado FPID
.
FPID
é um namespace de identidade reservado que não está visível nas listas de interface de namespaces de identidade.
Valide a implementação confirmando que a mesma ECID é gerada a partir da ID de dispositivo primário:
AMCV_<IMSORGID@AdobeOrg>
é gerado. Esse cookie contém a ECID.FPID
cookie.AMCV_<IMSORGID@AdobeOrg>
o cookie é o mesmo ECID
valor como na variável AMCV_
cookie excluído. Se o valor do cookie for o mesmo para um determinado FPID, o processo de propagação da ECID foi bem-sucedido.Para obter mais informações sobre esse recurso, consulte a documentação.