Qué es una implementacion en Reverse Proxy



Contexto

Eulerian recopila datos de comportamiento para alimentar soluciones de marketing orientadas a la toma de decisiones, destinadas a los equipos de Adquisición y Analítica de empresas B2C y B2B.
Históricamente, los actores del sector del marketing y la publicidad recopilan datos de comportamiento mediante un SDK web (también llamado tag JavaScript), que envía peticiones de recopilación desde el navegador del usuario. Esto se conoce como seguimiento "client-side".
Con el auge de los bloqueadores de anuncios y las restricciones técnicas vinculadas a la privacidad, la cookie de terceros utilizada por muchos actores de la industria desaparecerá en septiembre de 2024, lo que afectará negativamente tanto a la calidad como a la cantidad de datos disponibles.
Actualmente, los bloqueadores de anuncios y los plugins de privacidad ya pueden interceptar las peticiones enviadas por una solución de analítica e impedir que lleguen a sus servidores (los de la solución de analítica).
Desde 2006, Eulerian realiza una recopilación totalmente First Party y no se ve afectada por la desaparición anunciada de las cookies de terceros. Sin embargo, una implementación con Reverse Proxy permite a un cliente de Eulerian optimizar la calidad de la recopilación de datos de comportamiento, especialmente en un contexto First Party cada vez más restringido por Apple en sus sistemas operativos (como iOS) y su navegador (Safari).
Con un Reverse Proxy, puedes canalizar las peticiones de recopilación a través de tu propio dominio ( my-site.fr ) y asegurarte de que se envían de forma transparente y eficiente a tu plataforma Eulerian.

¿Qué es un Reverse Proxy?

Un Reverse Proxy es una solución instalada, desplegada y mantenida por el equipo IT del cliente de Eulerian, directamente en su infraestructura técnica.
Técnicamente, se trata de un servidor que actúa como intermediario entre el navegador del usuario y un servidor web.
Cuando un usuario navega por tu sitio < my-site.fr > y se generan peticiones hacia un servidor de Eulerian, estas son interceptadas por el Reverse Proxy, que las reenvía primero a otro servidor backend (el tuyo) y luego las transfiere al servidor de Eulerian.
Antes de enviarlas, el Reverse Proxy actúa como pasarela, recogiendo peticiones realizadas a una dirección específica de tu dominio ( my-site.fr/collection ) y transfiriéndolas a otro dominio ( client.eulerian.net ).
Una vez que el servidor adecuado recibe y procesa estas peticiones, responde al proxy inverso, que a su vez transmite la respuesta al usuario.

¿Por qué usar un Reverse Proxy?

Un Reverse Proxy ofrece varias ventajas:

Garantizar una recopilación de datos precisa

En el caso de tráfico que utiliza bloqueadores de anuncios o plugins de privacidad, las peticiones a los servidores de Eulerian pueden ser interceptadas y la duración del identificador First Party puede verse limitada.
El uso de un Reverse Proxy garantiza que puedes sortear estas limitaciones y mantener una recopilación de datos de calidad y a largo plazo.

Control sobre el tráfico web

Un Reverse Proxy también te permite ejercer un control más detallado sobre la comunicación entre tu sitio web y nuestras aplicaciones y servicios.

Enlace con el navegador de origen

Al implementar un Reverse Proxy, y a diferencia de una solución completamente server-side, Eulerian puede seguir interactuando con el navegador del cliente y con el entorno client-side de tu sitio.
Esto te permite mantener lo mejor de ambos mundos y no perder funcionalidades existentes necesarias para ciertos casos de uso, como el intercambio de datos con herramientas de personalización (tests A/B).
En resumen, puedes optimizar tu configuración actual implementando un seguimiento avanzado en el que capturas los datos analíticos en tu propio dominio y los transfieres a Eulerian.

Ejemplo de tag

<script type="text/javascript">
(function (p, a) {
var s = window,
v = document,
e = s.location.hostname,
i = (e || a).length,
y = 5381,
k = "script",
o = v.createElement(k);
for (; i; ) {
i -= 1;
y = (y * 33) ^ e.charCodeAt(i);
}
y = "_EA_" + (y >>>= 0);
(function (e, a, s, y) {
s[a] =
s[a] ||
function () {
(s[y] = s[y] || []).push(arguments);
s[y].eah = e;
};
})(e, a, s, y);
i = (new Date() / 1e7) | 0;
o.ea = y;
y = i % 26;
o.async = 1;
o.src =
"//" +
e +
p +
"/" +
String.fromCharCode(97 + y, 122 - y, 65 + y) +
(i % 1e3) +
".js?2;1";
s = v.getElementsByTagName(k)[0];
s.parentNode.insertBefore(o, s);
})("/collection", "EA_push");
</script>
En este ejemplo, si consideramos que la URL de tu sitio es https://www.my-site.fr y que has especificado /collection como URI, entonces todas las llamadas de la solución se enviarán a: https://www.my-site.fr/collection
Tu proxy debe interceptar las llamadas que lleguen a esta URI y redirigirlas al dominio de recopilación.

Ejemplo de configuración NGINX

location ~ ^/<COLLECT_PATH>/(.*)$ {
access_log /var/log/nginx/proxy.log;
proxy_pass https://<DOMAINE_COLLECTE>/$1$is_args$args;
proxy_set_header X-Eulerian "p;1;$remote_addr;$http_host;/<COLLECT_PATH>";
proxy_set_header Upgrade-Insecure-Requests "";
proxy_http_version 1.1;
# avoid 504 gateway timeout
proxy_temp_file_write_size 64k;
proxy_connect_timeout 5s;
proxy_send_timeout 5s;
proxy_read_timeout 5s;
send_timeout 5s;
proxy_cache off;
proxy_redirect off;
proxy_ssl_verify off;
proxy_buffering on;
proxy_request_buffering on;
proxy_store off;
proxy_ssl_server_name on;
proxy_buffer_size 64k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_ignore_headers X-Accel-Redirect X-Accel-Expires X-Accel-Limit-Rate X-Accel-Buffering X-Accel-Charset;
}
Usando el ejemplo anterior:
  • uri: /collection
  • dominio de recopilación: client.eulerian.net
La configuración NGINX sería:
location ~ ^/collection/(.*)$ {
access_log /var/log/nginx/proxy.log;
proxy_pass <https://client.eulerian.net/$1$is_args$args;>
proxy_set_header X-Eulerian "p;1;$remote_addr;$http_host;/collection";
proxy_set_header Upgrade-Insecure-Requests "";
proxy_http_version 1.1;
# avoid 504 gateway timeout
proxy_temp_file_write_size 64k;
proxy_connect_timeout 5s;
proxy_send_timeout 5s;
proxy_read_timeout 5s;
send_timeout 5s;
proxy_cache off;
proxy_redirect off;
proxy_ssl_verify off;
proxy_buffering on;
proxy_request_buffering on;
proxy_store off;
proxy_ssl_server_name on;
proxy_buffer_size 64k;
proxy_buffers 16 32k;
proxy_busy_buffers_size 64k;
proxy_ignore_headers X-Accel-Redirect X-Accel-Expires X-Accel-Limit-Rate X-Accel-Buffering X-Accel-Charset;
}

Configuración para medir la post-impresión

Si deseas medir las impresiones y el impacto de la post-impresión, es necesario asegurarte de que el proxy configurado pueda manejar los volúmenes asociados.
Si prefieres que el proxy no gestione estas solicitudes, entonces es posible crear una delegación de dominio para que Eulerian pueda trackear las impresiones desde su propia infraestructura. Para ello, es absolutamente necesario que tengamos autorización para colocar cookies en el dominio.
Siguiendo el ejemplo del sitio https://www.my-site.fr, que tiene un proxy declarado en la URI /collect, el operador del sitio puede crear un subdominio de recopilación, por ejemplo https://elr-imp.my-site.fr, que estará vinculado mediante un registro CNAME a la infraestructura de recopilación.
Los píxeles utilizarán el subdominio https://elr-imp.my-site.fr para colocar cookies en el dominio .my-site.fr. Una vez que el usuario acceda al dominio https://www.my-site.fr, el proxy podrá proporcionar de nuevo las cookies de forma estándar, ya que se habrán colocado correctamente en el dominio .my-site.fr.