CNAME y Target

Instrucciones para trabajar con Adobe Client Care a fin de implementar el soporte de CNAME (nombre canónico) en Adobe Target. Utilice CNAME para gestionar los problemas de bloqueo de anuncios o las políticas de cookies relacionadas con ITP (Prevención inteligente del seguimiento). Con CNAME, las llamadas se realizan a un dominio propiedad del cliente en lugar de a un dominio propiedad de Adobe.

Solicitar soporte de CNAME en Target

  1. Determine la lista de nombres de host que necesita para su certificado SSL (consulte las preguntas frecuentes a continuación).

  2. Rellene este formulario e inclúyalo cuando abra un ticket de Adobe Atención al cliente solicitando soporte de CNAME:

    • Adobe Target código de cliente:

    • Nombres de host de certificado SSL (ejemplo: target.example.com target.example.org):

    • Se recomienda encarecidamente al comprador de certificados SSL (Adobe, consulte las preguntas frecuentes): Adobe/cliente

    • Si el cliente está comprando el certificado, también conocido como "Traer su propio certificado" (BYOC), rellene estos detalles adicionales:

      • Organización del certificado (ejemplo: Empresa de ejemplo Inc):
      • Unidad organizativa del certificado (opcional, ejemplo: Marketing):
      • País del certificado (ejemplo: EE. UU.):
      • Estado o región del certificado (ejemplo: California):
      • Ciudad del certificado (ejemplo: San José):
  3. Para cada solicitud de nombre de host, Adobe creará la implementación y regresará con un nombre de registro CNAME que podrá crear, el cual contendrá una cadena aleatoria con el sufijo tt.omtrdc.net

    Por ejemplo, si ha realizado una solicitud para target.example.com, le enviaremos un CNAME en forma de abcdefgh.tt.omtrdc.net. Su registro CNAME de DNS debe tener un aspecto similar al siguiente:

    code language-none
    target.example.com.  IN  CNAME  abcdefgh.tt.omtrdc.net.
    
    note important
    IMPORTANT
    La entidad emisora de certificados de Adobe, DigiCert, no puede emitir un certificado hasta que se complete este paso. Por lo tanto, Adobe no puede cumplir con su solicitud de implementación CNAME hasta que se complete este paso.
  4. Si Adobe compra el certificado, Adobe trabaja con DigiCert para adquirir e implementar el certificado en los servidores de producción de Adobe.

    Si el cliente está comprando el certificado (BYOC), Adobe Atención al cliente le enviará la solicitud de firma de certificado (CSR). Utilice el CSR cuando compre el certificado a través de la autoridad de certificación que elija. Una vez emitido el certificado, envíe una copia del mismo y de los certificados intermedios a Adobe Client Care para su implementación.

    Adobe Client Care le notifica cuando su implementación está lista.

  5. Actualice serverDomain (documentación) al nuevo nombre de host CNAME y establezca overrideMboxEdgeServer en false (documentación) en su configuración de at.js.

Preguntas frecuentes

La siguiente información responde a las preguntas más frecuentes sobre cómo solicitar e implementar la compatibilidad con CNAME en Target:

¿Puedo proporcionar mi propio certificado (Traer su propio certificado o BYOC)?

Puede proporcionar su propio certificado. Sin embargo, Adobe recomienda encarecidamente no seguir esta práctica. La administración del ciclo de vida del certificado SSL es más fácil tanto para Adobe como para usted, si Adobe compra y controla el certificado. La duración de los certificados SSL solo se reducirá en el tiempo (consulte la siguiente sección sobre la duración de los certificados). Por lo tanto, Adobe Client Care debe ponerse en contacto con usted cada vez que desee obtener un nuevo certificado de manera oportuna. Esto resultará ser un desafío cuando la duración del certificado se reduzca a solo 47 días. La implementación de Target se pone en peligro cuando caduca el certificado porque los exploradores rechazan las conexiones.

IMPORTANT
Si solicita una implementación CNAME de Target que traiga su propio certificado, usted es responsable de proporcionar certificados renovados a Adobe Client Care cada vez que caduque. Si permite que el certificado CNAME caduque antes de que Adobe pueda implementar un certificado renovado, se producirá una interrupción en la implementación de Target específica.

¿Cuánto falta para que caduque mi nuevo certificado SSL?

La duración de todos los certificados se reducirá como parte de una iniciativa principal de las autoridades certificadoras. Para DigiCert, el proveedor de certificados de Adobe, se aplicará la siguiente programación:

Hasta el 15 de marzo de 2026, la duración máxima de un certificado TLS es de 398 días.
A partir del 15 de marzo de 2026, la duración máxima de un certificado TLS será de 200 días.
A partir del 15 de marzo de 2027, la duración máxima de un certificado TLS será de 100 días.
A partir del 15 de marzo de 2029, la duración máxima de un certificado TLS será de 47 días.
Para obtener más información, consulte el artículo de DigiCert sobre la reducción de la duración del certificado

¿Qué nombres de host debo elegir? ¿Cuántos nombres de host por dominio debo elegir?

Las implementaciones CNAME de Target solo requieren un nombre de host por dominio en el certificado SSL y en el DNS del cliente. Adobe recomienda un nombre de host por dominio. Algunos clientes requieren más nombres de host por dominio para sus propios fines (como probar en el ensayo), lo cual es compatible.

La mayoría de los clientes elige un nombre de host como target.example.com. Adobe recomienda seguir esta práctica, pero en última instancia la elección es suya. No solicite un nombre de host de un registro DNS existente. Al hacerlo, se genera un conflicto y se retrasa el tiempo de resolución de la solicitud CNAME Target.

Ya tengo una implementación CNAME para Adobe Analytics, ¿puedo usar el mismo certificado o nombre de host?

No, Target requiere un nombre de host y un certificado independientes.

¿Se ve afectada mi implementación actual de Target por ITP 2.x?

Apple Intelligent Tracking Prevention (ITP) versión 2.3 ha introducido su función de mitigación de ocultación CNAME, que puede detectar implementaciones CNAME de Adobe Target y reduce la caducidad de la cookie a siete días. Actualmente Target no cuenta con una solución alternativa para la mitigación de encubrimiento CNAME de ITP. Para obtener más información sobre ITP, consulte Prevención inteligente del seguimiento de Apple (ITP) 2.x.

¿Qué tipo de interrupciones de servicio puedo esperar cuando se implementa mi implementación CNAME?

No hay interrupciones en el servicio cuando se implementa el certificado (incluidas las renovaciones de certificados).

Sin embargo, después de cambiar el nombre de host en el código de implementación de Target (serverDomain en at.js) por el nuevo nombre de host CNAME (target.example.com), los exploradores web tratan a los visitantes que regresan como nuevos visitantes. Los datos de perfil de los visitantes que regresan se pierden porque no se puede obtener acceso a la cookie anterior con el nombre de host anterior (clientcode.tt.omtrdc.net). No se puede acceder a la cookie anterior debido a los modelos de seguridad del explorador. Esta interrupción se produce únicamente en la transición inicial al nuevo CNAME. Las renovaciones de certificados no tienen el mismo efecto porque el nombre de host no cambia.

¿Qué tipo de clave y algoritmo de firma de certificado se utiliza para mi implementación CNAME?

De forma predeterminada, todos los certificados son RSA SHA-256 y las claves son RSA de 2048 bits. Los tamaños de clave superiores a 2048 bits deben solicitarse explícitamente al Servicio de atención al cliente.

¿Cómo puedo validar que mi implementación CNAME está lista para el tráfico?

Utilice el siguiente conjunto de comandos (en el terminal de línea de comandos de macOS o Linux, utilizando bash y curl >=7.49):

  1. Copie y pegue esta función bash en su terminal, o pegue la función en su archivo de script de inicio bash (normalmente ~/.bash_profile o ~/.bashrc) para que la función esté disponible entre sesiones de terminal:
function adobeTargetCnameValidation {
  local hostname="$1"

  if [ -z "$hostname" ]; then
    echo "ERROR: no hostname specified"
    return 1
  fi

  local service="Adobe Target CNAME implementation"
  local edges="41 42 44 45 46 47 48"
  local edgeDomain="tt.omtrdc.net"
  local edgeFormat="mboxedge%d%s.$edgeDomain"
  local poolDomain="pool.data.adobedc.net"
  local shards=5
  local shardsFoundCount=0
  local shardsFound=""
  local shardsFoundOutput=""
  local curlRegex="subject:.*CN=|expire date:|issuer:"
  local curlValidation="SSL certificate verify ok"
  local curlResponseValidation='"OK"'
  local curlEndpoint="/uptime?mboxClient=uptime3"
  local url="https://$hostname$curlEndpoint"
  local sslShopperUrl="https://www.sslshopper.com/ssl-checker.html#hostname=$hostname"
  local success="✅"
  local failure="🚫"
  local info="🔎"
  local rule="="
  local horizontalRule="$(seq ${COLUMNS:-30} | xargs printf "$rule%.0s")"
  local miniRule="$(seq 5 | xargs printf "$rule%.0s")"
  local curlVersion="$(curl --version | head -1 | cut -d' ' -f2)"
  local curlVersionRequired=7.49
  local edgeCount="$(wc -w <<< "$edges" | tr -d ' ')"
  local cnameExists=""
  local endToEndTestSucceeded=""

  for region in IRL1 IND1 SIN OR SYD VA TYO; do
    local currShard="${region}-${poolDomain}"
    local curlResult="$(curl -vsm20 --connect-to "$hostname:443:$currShard:443" "$url" 2>&1)"

    if grep -q "$curlValidation" <<< "$curlResult"; then
      shardsFound+=" $currShard"

      if grep -q "$curlResponseValidation" <<< "$curlResult"; then
        shardsFoundCount=$((shardsFoundCount+1))
        shardsFoundOutput+="\n\n$miniRule $success $hostname [edge shard: $currShard] $miniRule\n"
      else
        shardsFoundOutput+="\n\n$miniRule $failure $hostname [edge shard: $currShard] $miniRule\n"
      fi

      shardsFoundOutput+="$(grep -E "$curlRegex" <<< "$curlResult" | sort)"

      if ! grep -q "$curlResponseValidation" <<< "$curlResult"; then
        shardsFoundOutput+="\nERROR: unexpected HTTP response from this shard using $url"
      fi
    fi
  done

  echo
  echo "$horizontalRule"
  echo
  echo "$service validation for hostname $hostname:"

  local dnsOutput="$(dig -t CNAME +short "$hostname" 2>&1)"
  if grep -qFi ".$edgeDomain" <<< "$dnsOutput"; then
    echo "$success $hostname passes DNS CNAME validation"
    cnameExists=true
  else
    echo -n "$failure $hostname FAILED DNS CNAME validation -- "
    if [ -n "$dnsOutput" ]; then
      echo -e "$dnsOutput is not in the subdomain $edgeDomain"
    else
      echo "required DNS CNAME record pointing to <target-client-code>.$edgeDomain not found"
    fi
  fi

  for region in IRL1 IND1 SIN OR SYD VA TYO; do
    local curlResult="$(curl -vsm20 --connect-to "$hostname:443:${region}-pool.data.adobedc.net:443" "https://$hostname$curlEndpoint" 2>&1)"

    if grep -q "$curlValidation" <<< "$curlResult"; then
      if grep -q "$curlResponseValidation" <<< "$curlResult"; then
        echo -en "$success $hostname passes TLS and HTTP response validation for region $region"
        if [ -n "$cnameExists" ]; then
          echo
        else
          echo " -- the DNS CNAME is not pointing to the correct subdomain for ${service}s with Adobe-managed certificates" \
            "(bring-your-own-certificate implementations don't have this requirement), but this test passes as configured"
        fi
        endToEndTestSucceeded=true
      else
        echo -n "$failure $hostname FAILED HTTP response validation for region $region --" \
          "unexpected response from $url -- "
        if [ -n "$cnameExists" ]; then
          echo "DNS is NOT pointing to the correct shard, notify Adobe Client Care"
        else
          echo "the required DNS CNAME record is missing, see above"
        fi
      fi
    else
      echo -n "$failure $hostname FAILED TLS validation for region $region -- "
      if [ -n "$cnameExists" ]; then
        echo "DNS is likely NOT pointing to the correct shard or there's a validation issue with the certificate or" \
          "protocols, see curl output below and optionally SSL Shopper ($sslShopperUrl):"
        echo ""
        echo "$horizontalRule"
        echo "$curlResult" | sed 's/^/    /g'
        echo "$horizontalRule"
        echo ""
      else
        echo "the required DNS CNAME record is missing, see above"
      fi
    fi
  done

  if [ "$shardsFoundCount" -ge "$edgeCount" ]; then
    echo -n "$success $hostname passes shard validation for the following $shardsFoundCount edge shards:"
    echo -e "$shardsFoundOutput"
    echo

    if [ -n "$cnameExists" ] && [ -n "$endToEndTestSucceeded" ]; then
      echo "$horizontalRule"
      echo ""
      echo "  For additional TLS/SSL validation, see SSL Shopper:"
      echo ""
      echo "    $info  $sslShopperUrl"
      echo ""
      echo "  To check DNS propagation around the world, see whatsmydns.net:"
      echo ""
      echo "    $info  DNS A records:     https://whatsmydns.net/#A/$hostname"
      echo "    $info  DNS CNAME record:  https://whatsmydns.net/#CNAME/$hostname"
    fi
  else
    echo -n "$failure $hostname FAILED shard validation -- shards found: $shardsFoundCount," \
      "expected: $edgeCount"
    echo ""
  fi

  echo
  echo "$horizontalRule"
  echo
}
  1. Pegue este comando (reemplazando target.example.com con su nombre de host):

    code language-none
    adobeTargetCnameValidation target.example.com
    

    Si la implementación está lista, verá el resultado como se muestra a continuación. Lo importante es que todas las líneas de estado de validación muestren en lugar de 🚫. Cada partición CNAME perimetral Target debe mostrar CN=target.example.com, que coincide con el nombre de host principal del certificado solicitado (los nombres de host SAN adicionales del certificado no se imprimen en esta salida).

$ adobeTargetCnameValidation target.example.com

==========================================================

Adobe Target CNAME implementation validation for hostname target.example.com:
✅ target.example.com passes DNS CNAME validation
✅ target.example.com passes TLS and HTTP response validation for region IRL1
✅ target.example.com passes TLS and HTTP response validation for region IND1
✅ target.example.com passes TLS and HTTP response validation for region SIN
✅ target.example.com passes TLS and HTTP response validation for region OR
✅ target.example.com passes TLS and HTTP response validation for region SYD
✅ target.example.com passes TLS and HTTP response validation for region VA
✅ target.example.com passes TLS and HTTP response validation for region TYO
✅ target.example.com passes shard validation for the following 7 edge shards:

===== ✅ target.example.com [edge shard: IRL1-pool.data.adobedc.net] =====
*  expire date: Feb 20 23:59:59 2026 GMT
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com

===== ✅ target.example.com [edge shard: IND1-pool.data.adobedc.net] =====
*  expire date: Feb 20 23:59:59 2026 GMT
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com

===== ✅ target.example.com [edge shard: SIN-pool.data.adobedc.net] =====
*  expire date: Feb 20 23:59:59 2026 GMT
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com

===== ✅ target.example.com [edge shard: OR-pool.data.adobedc.net] =====
*  expire date: Feb 20 23:59:59 2026 GMT
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com

===== ✅ target.example.com [edge shard: SYD-pool.data.adobedc.net] =====
*  expire date: Feb 20 23:59:59 2026 GMT
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com

===== ✅ target.example.com [edge shard: VA-pool.data.adobedc.net] =====
*  expire date: Feb 20 23:59:59 2026 GMT
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com

===== ✅ target.example.com [edge shard: TYO-pool.data.adobedc.net] =====
*  expire date: Feb 20 23:59:59 2026 GMT
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G2 TLS RSA SHA256 2020 CA1
*  subject: C=US; ST=California; L=San Jose; O=Adobe Systems Incorporated; CN=target.example.com

==========================================================

For additional TLS/SSL validation, see SSL Shopper:

    🔎  https://www.sslshopper.com/ssl-checker.html#hostname=target.example.com

To check DNS propagation around the world, see whatsmydns.net:

    🔎  DNS A records:     https://whatsmydns.net/#A/target.example.com
    🔎  DNS CNAME record:  https://whatsmydns.net/#CNAME/target.example.com
NOTE
Si este comando de validación falla en la validación de DNS pero ya ha realizado los cambios de DNS necesarios, es posible que tenga que esperar a que las actualizaciones de DNS se propaguen completamente. Los registros DNS tienen un TTL (tiempo de vida) asociado que dicta el tiempo de caducidad de la caché para las respuestas DNS de esos registros. Como resultado, es posible que tenga que esperar al menos el tiempo que sus TTL. Puede usar el comando dig target.example.com o G Suite Toolbox para buscar los TTL específicos. Para comprobar la propagación de DNS por todo el mundo, vea whatsmydns.net.

¿Cómo utilizo un vínculo de no participación con CNAME?

Si utiliza CNAME, el vínculo de no participación debe contener el parámetro "client=clientcode", por ejemplo:
https://my.cname.domain/optout?client=clientcode.

Reemplace clientcode por su código de cliente y luego agregue el texto o la imagen que se vinculará a la URL de exclusión.

Limitaciones conocidas

  • El modo de control de calidad no se fija cuando tiene CNAME y at.js 1.x porque se basa en una cookie de terceros. La solución consiste en agregar los parámetros de vista previa a cada dirección URL a la que vaya. El modo de control de calidad es fijo cuando tiene CNAME y at.js 2.x.
  • Al utilizar CNAME, es más probable que aumente el tamaño del encabezado de la cookie para Target llamadas. Adobe recomienda mantener el tamaño de la cookie por debajo de 8 KB.
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3