Generación de ID de dispositivos de origen

Las aplicaciones de Adobe Experience Cloud han generado cookies tradicionalmente para almacenar los ID de dispositivo mediante distintas tecnologías, entre las que se incluyen:

  1. Cookies de terceros
  2. Cookies de origen establecidas por un servidor de Adobe mediante la configuración CNAME de un nombre de dominio
  3. Cookies de origen establecidas por JavaScript

Los cambios recientes en el explorador restringen la duración de estos tipos de cookies. Las cookies de origen son más eficaces cuando se establecen utilizando un servidor de propiedad del cliente que utiliza un registro A/AAAA de DNS en lugar de un CNAME de DNS. La funcionalidad de ID de dispositivo de origen (FPID) permite a los clientes que implementan el SDK web de Adobe Experience Platform utilizar ID de dispositivo en cookies de servidores que utilizan registros A/AAAA de DNS. Estos ID se pueden enviar al Adobe y utilizar como semillas para generar ID de Experience Cloud (ECID), que sigue siendo el identificador principal en las aplicaciones de Adobe Experience Cloud.

A continuación se muestra un ejemplo rápido de cómo funciona la funcionalidad:

ID de dispositivos de origen (FPID) e ID de Experience Cloud (ECID)

  1. El navegador de un usuario final solicita una página web desde el servidor web de un cliente o CDN.
  2. El cliente genera un ID de dispositivo (FPID) en su servidor web o CDN (el servidor web debe estar vinculado al registro A/AAAA del DNS del nombre de dominio).
  3. El cliente establece una cookie de origen para almacenar el FPID en el explorador del usuario final.
  4. La implementación del SDK web de Adobe Experience Platform del cliente realiza una solicitud a Platform Edge Network, incluido el FPID en el mapa de identidad.
  5. Experience Platform Edge Network recibe el FPID y lo utiliza para generar un ID de Experience Cloud (ECID).
  6. La respuesta del SDK web de la plataforma devuelve el ECID al explorador del usuario final.
  7. El SDK web de Platform utiliza JavaScript para almacenar el ECID como AMCV_ en el explorador del usuario final.
  8. En el caso de que AMCV_ caduca, el proceso se repite. Siempre que esté disponible el mismo ID de dispositivo de origen, se creará una AMCV_ La cookie se crea con el mismo valor de ECID que antes.

Para este tutorial, se utiliza un ejemplo específico con el lenguaje de secuencias de comandos PHP para mostrar cómo:

  • Generar una UUIDv4
  • Escribir el valor de UUIDv4 en una cookie
  • Incluya el valor de la cookie en el mapa de identidad
  • Validación de la generación ECID

Puede encontrar más documentación relacionada con los ID de dispositivos de origen en la documentación del producto.

Generar una UUIDv4

PHP no tiene una biblioteca nativa para la generación UUID, por lo que estos ejemplos de código son más extensos de lo que probablemente se necesitaría si se utilizara otro lenguaje de programación. PHP se eligió para este ejemplo porque es un lenguaje del lado del servidor ampliamente compatible.

Cuando se llama a la siguiente función, genera una versión 4 UUID aleatoria:

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

?>

El siguiente código realiza una solicitud a la función anterior para generar un UUID. Luego establece los indicadores de cookies que decide su organización. Si ya se ha generado una cookie, se amplía la caducidad.

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

?>
NOTA

La cookie que contiene el ID del dispositivo de origen puede tener cualquier nombre.

El paso final es usar PHP para hacer eco del valor de la cookie en el mapa de identidad.

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

El símbolo del área de nombres de identidad utilizado en el mapa de identidad debe llamarse FPID.

FPID es un área de nombres de identidad reservada que no está visible en las listas de interfaz de áreas de nombres de identidad.

Validación de la generación ECID

Valide la implementación confirmando que se genera el mismo ECID a partir de su ID de dispositivo de origen:

  1. Genere una cookie FPID.
  2. Envíe una solicitud a Platform Edge Network utilizando Platform Web SDK.
  3. Una cookie con el formato AMCV_<IMSORGID@AdobeOrg> se genera. Esta cookie contiene el ECID.
  4. Tenga en cuenta el valor de la cookie que se genera y luego elimine todas las cookies de su sitio, excepto el FPID cookie.
  5. Envíe otra solicitud a Platform Edge Network.
  6. Confirme el valor en la variable AMCV_<IMSORGID@AdobeOrg> la cookie es la misma ECID como en la variable AMCV_ que se eliminó. Si el valor de la cookie es el mismo para un FPID determinado, el proceso de inicialización del ECID se ha realizado correctamente.

Para obtener más información sobre esta función, consulte la documentación.

En esta página