En resumen: Integra AppsFlyer en sitios web utilizando el SDK web para atribuir y medir visitas, eventos, conversiones e ingresos.
Guía de integración y del usuario del SDK web
- La etiqueta JavaScript del SDK web:
- forma parte de la solución de atribución basada en las personas (PBA) para analizar las trayectorias de los usuarios en múltiples plataformas.
- reporta las visitas y las acciones de los usuarios en tu sitio web a la plataforma de AppsFlyer.
- es un módulo de pluginpara el sitio webque no requiereprogramación. Es independiente del sistema operativo y del navegador del visitante del sitio web.
- tiene un tamaño de 40-60 Kb.
- Implementa el SDK web junto con el SDK móvil de AppsFlyer para registrar y asignar la actividad del usuario en tu aplicación móvil y tus entornos web.
- Los eventos que ocurren fuera del sitio web se pueden registrar mediante la API de eventos de servidor a servidor web (Web S2S).
Integración del SDK web en el sitio web
Instalación e integración
Consideraciones y acciones requeridas
Lista de verificación de la integración |
---|
Para garantizar que se registren las visitas y los eventos, el SDK web debe instalarse en todas las páginas del sitio web. |
Inserta el fragmento de código de modo que se cargue lo antes posible dentro de la página. Para ello, inserta el código cerca de la parte superior de la etiqueta de encabezado. |
Si vas a integrar el SDK mediante Google Tag Manager (GTM):
|
Puedes implementar el SDK web con o sin Smart Banners. Sigue las instrucciones pertinentes en las secciones que se indican a continuación. |
Requisitos obligatorios para la integración
Valida la integración mediante la herramienta de prueba. |
Antes de empezar:
- Verifica con el marketer que haya creado el paquete de marca.
- Para obtener orientación adicional, consulta la Guía de onboarding de PBA.
- Ten en cuenta lo siguiente: Si ya tienes el SDK web independiente de Smart Banners, elimínalo y reemplázalo con el SDK web tanto para los Smart Banners como para la atribución basada en personas; no agregues solo el SDK web independiente para PBA.
Haz lo siguiente:
- Obtén la clave de desarrollador web del SDK web. Nota: Esta no es la misma clave que utilizan las aplicaciones móviles.
-
Para obtener la clave de desarrollador web:
- En AppsFlyer, en el menú superior, selecciona la pestaña Mis aplicaciones.
- Haz clic en Ver paquetes de marca.
- Copia la clave de desarrollador web requerida (WEB_DEV_KEY).
-
Para obtener la clave de desarrollador web:
- Si implementas Smart Banners, obtén la clave del Smart Banner.
-
Para obtener la clave del Smart Banner:
- En AppsFlyer, desde el menú lateral, ve a Captación > De la web a la aplicación > Smart Banners.
- Copia la clave del Smart Banner requerida.
-
Para obtener la clave del Smart Banner:
- Obtén los permisos para agregar scripts a etiquetas de encabezado en el sitio web.
- Si utilizas Google Tag Manager, deberá estar integrado en el sitio web.
A continuación, integra el SDK web utilizando una de las siguientes opciones.
Fragmento de código JavaScript
Integra el SDK web utilizando uno de los siguientes métodos.
Para instalar el SDK web sin Smart Banners:
- Repite el procedimiento que sigue en todas las páginas de tu sitio web.
- En el fragmento de código que se indica a continuación, reemplaza
WEB_DEV_KEY
con la clave especificada en los requisitos previos. - Pega el fragmento de código en la etiqueta de encabezado de tu sitio web. Pégalo cerca de la parte superior de la etiqueta de encabezado.
<script>
!function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){
(t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))},
t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1,
o.src="https://websdk.appsflyer.com?"+(c.length>0?"st="+c.split(",").sort().join(",")+"&":"")+(i.length>0?"af_id="+i:""),
p.parentNode.insertBefore(o,p)}(window,document,"script",0,"AF","pba",{pba: {webAppId: "WEB_DEV_KEY"}})
</script>
Para implementar el SDK web con Smart Banners:
- Repite el procedimiento que sigue en todas las páginas de tu sitio web.
- En el fragmento de código que se indica a continuación, reemplaza
WEB_DEV_KEY
yYOUR_BANNER_KEY
con las claves especificadas en los requisitos previos. - Pega este fragmento de código en la etiqueta de encabezado del sitio web. Pégalo cerca de la parte superior de la etiqueta de encabezado.
<script>
!function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){
(t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))},
t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1,
o.src="https://websdk.appsflyer.com?"+(c.length>0?"st="+c.split(",").sort().join(",")+"&":"")+(i.length>0?"af_id="+i:""),
p.parentNode.insertBefore(o,p)}(window,document,"script",0,"AF", "pba,banners",{pba: {webAppId: "WEB_DEV_KEY"}, banners: {key: "YOUR_BANNER_KEY"}});
AF('banners', 'showBanner');
</script>
Para implementar el SDK web con Google Tag Manager (GTM):
- Ve a Google Tag Manager.
- Crea una nueva etiqueta para el SDK web de AppsFlyer.
- Selecciona el tipo de etiqueta Custom HTML (HTML personalizado).
- Dale a la etiqueta un nombre significativo.
- Realiza una de las siguientes acciones:
- Si vas a integrar el SDK web sin Smart Banners:
- Pega el fragmento de código que sigue en la ventana Tag Configuration (Configuración de etiquetas).
- En el fragmento de código, reemplaza
WEB_DEV_KEY
utilizando la clave mencionada en los requisitos previos.
<!-- AppsFlyer web SDK --> <script> !function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){ (t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))}, t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1, o.src="https://websdk.appsflyer.com?"+(c.length>0?"st="+c.split(",").sort().join(",")+"&":"")+(i.length>0?"af_id="+i:""), p.parentNode.insertBefore(o,p)}(window,document,"script",0,"AF","pba",{pba: {webAppId: "WEB_DEV_KEY"}}) </script>
- Si vas a integrar el SDK web con Smart Banners:
- Pega el fragmento de código que sigue en la ventana Tag Configuration (Configuración de etiquetas).
- En el fragmento de código, reemplaza
WEB_DEV_KEY
yYOUR_BANNER_KEY
utilizando las claves mencionadas en los requisitos previos.
<!-- AppsFlyer web SDK -->
<script> !function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){ (t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))}, t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1, o.src="https://websdk.appsflyer.com?"+(c.length>0?"st="+c.split(",").sort().join(",")+"&":"")+(i.length>0?"af_id="+i:""), p.parentNode.insertBefore(o,p)}(window,document,"script",0,"AF", "pba,banners",{pba: {webAppId: "WEB_DEV_KEY"}, banners: {key: "YOUR_BANNER_KEY"}}); AF('banners', 'showBanner'); </script>
- Si vas a integrar el SDK web sin Smart Banners:
- Haz clic en Save (Guardar).
- Realiza una de las siguientes acciones:
- Para agregar el activador a todas las páginas:
-
Para agregar el activador a páginas específicas:
- Haz clic en Save Tag (Guardar etiqueta).
- En la ventana principal de GTM, selecciona Triggers (Activadores). Haz clic en New (Nuevo).
- Haz clic en el icono de lápiz.
- Elige el tipo de activador Page View (Vista de página).
- Selecciona Some Page Views (Algunas vistas de página).
- Configura la página y las condiciones de activación según sea necesario.
- Haz clic en Save (Guardar).
- Asocia el activador a la etiqueta AppsFlyer Web SDK. Para ello:
- Crear una propiedad en Adobe Experience Cloud
- Agregar el SDK web a la propiedad de Adobe Launch
- Agregar la etiqueta de Adobe Launch al sitio web
- Publicar el entorno de Adobe Launch
Crear una propiedad en Adobe Experience Cloud
- Ve a Adobe Experience Cloud > Launch.
- En Adobe Experience Cloud Launch, haz clic en Go to Launch (Ir a Launch).
- Haz clic en New Property (Nueva propiedad).
- Dale un nombre a la propiedad.
- En Plataform (Plataforma), selecciona Web.
- Ingresa el dominio de tu sitio web.
- Haz clic en Save (Guardar).
Agregar el SDK web a la propiedad de Adobe Launch
- En la página My web property (Mi propiedad web), selecciona la pestaña Rules (Reglas).
- Dale un nombre a la regla. Se recomienda el uso de Load web SDK (Cargar SDK web).
- En la sección YES (SÍ), en EVENTS (EVENTOS), haz clic en +Add (+Agregar).
- En Event Type (Tipo de evento), selecciona Core - DOM Ready (Central - Listo para DOM).
- Haz clic en Keep Changes (Mantener cambios).
- En la sección THEN (ENTONCES), en Actions (Acciones), haz clic en +Add (+Agregar).
- En Action Type (Tipo de acción) > Custom Code (Código personalizado).
- Selecciona JavaScript > Open Editor (Abrir editor) y pega el fragmento de código del SDK web sin las etiquetas <script>.
- Haz clic en Keep Changes (Mantener cambios) para cerrar el editor de códigos.
- Haz clic en Save (Guardar).
Agregar la etiqueta de Adobe Launch al sitio web
- En la página My web property (Mi propiedad web), selecciona la pestaña Environments (Entornos).
- Busca la fila con el entorno que deseas publicar (desarrollo o producción).
- En el encabezado INSTALL (INSTALAR), haz clic en el ícono de la caja en la fila correspondiente; normalmente se trata de un entorno de producción.
- Consulta la sección sobre la publicación del entorno Adobe Launch.
- En el cuadro de diálogo Web Install Instructions (Instrucciones de instalación web):
- Copia el fragmento de código del script.
- Cierra el cuadro de diálogo.
- Pega el fragmento de código en la etiqueta <head> de tu sitio web.
Publicar el entorno de Adobe Launch
- En la página My web property (Mi propiedad web), ve a la pestaña Publishing (Publicación).
- En la sección Development (Desarrollo), haz clic en Add New Library (Agregar biblioteca nueva).
- Asigna un nombre a la biblioteca y elige un entorno.
- En RESOURCE CHANGES (CAMBIOS DE RECURSOS), haz clic en Add a Resource (Agregar un recurso).
- Haz clic en Rules (Reglas) > Load web SDK (Cargar SDK web) > Latest (Más reciente) > Select & Create a New Revision (Seleccionar y crear una nueva revisión).
- Haz clic en Save (Guardar).
- En la sección Development (Desarrollo):
- Junto a la biblioteca recién creada, haz clic en el menú de acciones (3 puntos) y selecciona Build for Development (Crear para desarrollo).
- Haz clic de nuevo en el menú de acciones y selecciona Submit for Approval (Enviar para aprobación).
- En la sección Submitted (Enviado):
- Haz clic en el menú de acciones y selecciona Build for Staging (Crear para escenario).
- Haz clic de nuevo en el menú de acciones y selecciona Approve for Publishing (Aprobar para publicar).
- En la sección Approved (Aprobado):
- Haz clic en el menú de acciones > selecciona Build & Publish to Production (Crear y publicar para producción).
- El proceso ya está completo.
Cuando el sitio web se carga en un dispositivo móvil, la creatividad activa se muestra en el banner. Para mostrar el banner en páginas específicas o según las acciones del usuario, consulta las Reglas de Adobe Launch.
Comprobar que el SDK esté funcionando
Una vez instalado, comprueba que el navegador del visitante llame al SDK web de AppsFlyer y que se envíen mensajes. Esto se hace examinando la conexión de red de mensajes reportada en el navegador.
Para comprobar que el SDK se carga y funciona:
- Ve al sitio web.
- Abre las herramientas para desarrolladores del navegador.
- Ve a la pestaña (A) Network (Red).
- Actualiza la página.
- Filtra por (B) wa.appsflyer.
- Selecciona el mensaje de events (C).
- En la pestaña Headers (Encabezados) (D), asegúrate de que:
- La Request URL (URL de solicitud) es wa.appsflyer.com/events.
- site_id query parameter=
WEB_DEV_KEY
. - (E) El Status code (Código de estado) es 200.
- Verifica que el valor de site_id sea igual al valor de
WEB_DEV_KEY
en la configuración del paquete de marca:- En AppsFlyer, en el menú lateral, selecciona Configuración > Paquetes de marca.
- Haz clic en la Clave de desarrollador web; al hacerlo, se copia la clave.
- Pega la clave en cualquier ubicación (nueva pestaña del navegador, bloc de notas) para mostrar la clave.
- Verifica que el site_id y
WEB_DEV_KEY
coincidan.
- Asegúrate de que el SDK se cargue solo una vez. La carga múltiple del SDK puede hacer que el SDK deje de funcionar.
Aceptación/exclusión voluntaria del envío de eventos
El SDK web envía datos de los eventos de los visitantes a AppsFlyer. Puedes controlar, detener o iniciar el envío de eventos como se describe en esta sección.
Ten en cuenta lo siguiente:
- Configuración del estado inicial del SDK: determina si el SDK envía eventos al cargar inicialmente la página web o si el SDK debe esperar hasta que des un comando explícito para comenzar a enviar eventos. La configuración está incluida en el fragmento web.
-
Control explícito: úsalo para detener o iniciar el envío de eventos. Por ejemplo, si implementas banners de aceptación/exclusión voluntaria de datos (también conocidos como banners de consentimiento de cookies), integra los comandos explícitos en los controles de tu banner para iniciar y detener el envío de eventos. El control explícito tiene prioridad sobre la configuración del estado inicial del SDK y utiliza cookies propias persistentes que tienen las siguientes características:
- Se establecen en el dominio del sitio web.
- Caducan después de un período establecido por el SDK web o según lo determine el navegador. Después de que caduquen las cookies, el SDK web vuelve a la configuración del estado inicial.
- La cookie del SDK web no interfiere y siempre está sujeta a la configuración de cookies específica del navegador.
Configuración del estado inicial del SDK
Configuración | Se requiere fragmento |
---|---|
[Predeterminado] Enviar eventos |
Haz el siguiente cambio en el fragmento del SDK web. Si es necesario, agrega el parámetro measurementStatus: Establece measurementStatus=true
|
No enviar eventos
|
Haz el siguiente cambio en el fragmento del SDK web. Si es necesario, agrega el parámetro measurementStatus: Establece measurementStatus=false |
Control explícito
Opción | Comando |
---|---|
Iniciar el envío de eventos (optar por la aceptación) | window.AF_SDK.PLUGINS.PBA.enableMeasurement() |
Detener el envío de eventos (optar por la exclusión) | window.AF_SDK.PLUGINS.PBA.disableMeasurement() |
Implementar una política de política de seguridad de contenido (CSP)
Algunos webmasters requieren que Javascript esté protegido por su CSP. Puedes utilizar una serie de mecanismos CSP para hacerlo, incluyendo cualquiera de los siguientes:
- CSP usando self
- CSP usando nonce: Agrega el comando nonce a la etiqueta del script utilizando un valor nonce aleatorio generado por ti.
<script nonce="random value generated by you"> !function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){ .... </script>
Descartar parámetros de consulta
Si los parámetros de consulta contienen datos que no deseas que AppsFlyer registre, puedes indicar a la plataforma AppsFlyer que descarte algunos o todos los parámetros de consulta. Al hacerlo, no estarán disponibles en el raw data ni en los reportes.
Puedes implementar los métodos descritos en relación con URL, referentes y header_referer.
Opciones de descarte de consultas
Método | Descripción |
---|---|
Descartar todos los parámetros de consulta | Adjunta af_url=true a la URL. |
Descartar parámetros de consulta especificados |
Al establecer una máscara de parámetro de consulta, especifica qué parámetros se descartan. Establece la máscara de descarte usando Ejemplo: URL con máscara:
URL después del descarte:
|
Principios de registro de eventos.
Conversión y eventos estándar
- Los eventos de usuario son registrados por el SDK, que envía el evento a la plataforma AppsFlyer.
- Utilizando la lista de eventos de conversión establecida por el marketer, AppsFlyer divide los eventos en eventos estándar y de conversión.
- Los datos de los eventos de conversión están disponibles en los paneles de control de la PBA.
- Los datos de los eventos estándar y de conversión están disponibles en los reportes de raw data.
Eventos de conversión
- Los eventos de conversión brindan insights sobre tus esfuerzos comerciales y de marketing. Los eventos de conversión incluyen compras, descargas, registros y suscripciones.
- La PBA atribuye los eventos de conversión a la fuente de medios que llevó al usuario a visitar el sitio web.
- Al identificar la fuente de medios atribuida, puedes medir y diferenciar la calidad de los usuarios aportados por diferentes fuentes de medios.
- Los eventos de conversión se utilizan para registrar los ingresos y calcular el ROI.
- Utilízalos para comparar el presupuesto de los anuncios de fuentes de medios específicas con los ingresos generados por los usuarios que provienen de estas fuentes de medios.
Eventos estándar
- Los eventos estándar se utilizan para validar la trayectoria del usuario y los embudos que generan conversiones.
- Utilízalos para medir la actividad de los usuarios y resaltar las fuentes de medios que atraen a los usuarios comprometidos.
- Registra la actividad de los usuarios para marcarlos para campañas de reengagement.
Registro de eventos
Activa el SDK web para registrar eventos cuando se cumplan ciertas condiciones, por ejemplo, cuando se carga una página de aterrizaje o cuando los usuarios interactúan con los elementos del sitio web. Consulta los ejemplos de registro de eventos.
Identificación de usuarios mediante el ID de usuario del cliente (CUID)
- Los usuarios web se identifican en AppsFlyer mediante el CUID único que les asignas. Normalmente, el CUID lo administran los servidores backend.
- Utiliza el mismo valor CUID que utilizas en el entorno móvil. Hacerlo te permitirá tener una visión holística de la actividad de los usuarios en múltiples plataformas. La función en el SDK móvil es setCustomerUserId function (iOS, Android, Unity).
-
Para establecer el CUID en el SDK web:
- Establece el CUID tan pronto como tengas acceso a él. La mayoría de las veces, esto significa que debes esperar a que el usuario se identifique iniciando sesión o registrándose.
-
Activa la llamada de JavaScript a setCustomerUserId() como se muestra en el siguiente ejemplo.
Nota: Envía el CUID como una cadena incluso si es un número. Para ello, ponlo entre comillas.
- Si implementas S2S web, ten en cuenta que es posible que debas notificar a la PBA cuando asocies un CUID con un ID de visitante web en tu backend.
- Los CUID no deben contener información personal directamente identificable,como un número de teléfono o una dirección de correo electrónico.
// Associate all current user web events to distinct ID 663274
AF('pba', 'setCustomerUserId' , '663274')
Parámetros de eventos del SDK web
Nombre de parámetro | Obligatorio | Descripción |
---|---|---|
eventType | Sí |
Tipo de evento Formato: cadena Completa siempre este parámetro con EVENT. Ejemplo: eventType: "EVENT" |
eventName | Sí |
Nombre del evento Formato: cadena Ejemplo: Compra, Suscripción |
No |
Este parámetro está obsoleto y se eliminará del sistema en una fecha que se anunciará. En su lugar, utiliza el parámetro eventValue. |
|
|
No |
Este parámetro está obsoleto y se eliminará del sistema en una fecha que se anunciará. En su lugar, utiliza el parámetro eventValue. |
eventRevenue | No |
Ingresos asignados a un evento de conversión Formato: Flotante |
eventRevenueCurrency | No |
Divisa de ingresos
Formato: cadena |
eventValue | No |
Mapa de parámetros del evento que describen el evento. Utiliza este parámetro para enviar eventos in-app enriquecidos, como el SKU del producto y el precio del artículo.
Formato: JSON
Ejemplo: Para enviar SKU ABC123, de color azul y un precio unitario de $3,99
Limitación: 1000 caracteres. si excedes el límite, se truncará. |
Escenarios de registro de eventos
Evento de ejemplo
// purchase event of shoes with associated revenue
AF('pba', 'event', {eventType: 'EVENT', eventName: 'purchase', eventRevenue: 12, eventValue: {"key1": 123, "key2": "name"}});
Los eventos que envías dependen de la naturaleza de tu aplicación web. Por ejemplo, una aplicación de tienda en línea requiere un conjunto de eventos diferentes a los de un medio de comunicación. Mira los escenarios siguientes para tener una idea de los eventos que debes enviar y cuándo.
Tienda en línea
Supongamos que administras una tienda en línea. Algunos eventos estándar que quizás quieras registrar serían:
- Buscar: evento estándar
- Agregar al carrito: evento estándar
- Quitar del carrito: evento estándar
- Comprar: evento de conversión
Medio informativo
Supongamos que estás administrando un medio informativo. Algunos eventos que quizás quieras registrar serían:
- Registro: evento de conversión
- Compra de suscripción: evento de conversión
Garantizar el envío de los eventos
Esta parte está destinada a desarrolladores web.
Prueba la integración del SDK web para la PBA: consulta los eventos de prueba en tiempo real.
Para garantizar que los eventos se envíen a AppsFlyer:
- Abre el sitio web.
- Abre las herramientas para desarrolladores del navegador.
- Cambia a la pestaña Network (Red).
- Activa el evento.
- Filtra por mensaje.
- Busca una solicitud de red que comience con el destino wa.appsflyer.com (observa la captura de pantalla a continuación).
- Asegúrate de que:
- El código de estado es 200.
- La carga útil de solicitud se alinea con los parámetros del evento.
Ejemplos
Registro de eventos
El código proporcionado es solo para fines ilustrativos. No utilices este código tal como está.
- Supuestos: la página ya ha cargado el SDK web en el momento en que se envía el evento.
- Los escenarios de ejemplo contienen el código para registrar eventos cuando:
- se carga una página de aterrizaje.
- los usuarios interactúan con el sitio web.
Registro de eventos cuando se carga una página de aterrizaje
- Tienes una página de suscripción para boletines informativos y deseas registrar las suscripciones.
- También puedes configurar una página de agradecimiento y redirigir a los usuarios a ella después de suscribirse.
<html>
<head>
<!-- Assume that the server returns a response with details about the newly subscribed user -->
<!-- Alternatively, you can extract data from localStorage or cookies,
in case data was set in either of them during the subscription process
-->
<script>window.onload = function(){
AF('pba', 'event', {eventType: 'EVENT', eventValue: {'category': 'holiday_promotion', eventValue: {'label' : 'newspaper'},
eventName: 'subscription',}); } </script> </head> <body> <h1>Thank You for Subscribing to Our Newsletter</h1> </body> </html>
- El código anterior contiene una página HTML básica. La página web debe cargar el SDK web para poder enviar eventos.
- Una vez que se carga la página, después de que el usuario es redirigido a ella, el método de carga de ventana llama al método AF() para enviar el evento de suscripción a AppsFlyer.
Registro de eventos cuando los usuarios interactúan con el sitio web
- Tienes un sitio web de eCommerce y deseas registrar los eventos de checkout.
- Cuando el usuario hace clic en el botón de checkout, el SDK web envía un evento a AppsFlyer.
<html>
<head>
<!-- Assume that data about products in the shopping cart
is stored in localStorage -->
<script>
window.onload = function () {
document.getElementById('checkout').addEventListener('click', function () {
AF('pba', 'event', {eventType: 'EVENT', eventValue: {'category' : 'holiday_promotion'}, eventName: 'checkout'});
});
}
</script>
</head>
<body>
<h1>Shopping Cart</h1>
<h2>Shirt</h2>
<p>
<ul>
<li>Color: Blue</li>
<li>Quantity: 2</li>
<li>Price: $20</li>
</ul>
</p>
<h2>Pants</h2>
<p>
<ul>
<li>Color: Black</li>
<li>Quantity: 3</li>
<li>Price: $15</li>
</ul>
</p>
<button id='checkout'>Checkout</button>
</body>
</html>
El código anterior muestra una página HTML básica. La página web debe cargar el SDK web para poder enviar eventos.
- Una vez que la página se carga, vincula un listener de clics al botón Checkout.
- Cuando el usuario hace clic en el botón Checkout, la función de devolución de llamada:
- recupera datos de localStorage.
- llama al método AF() y le pasa datos.
- El método AF() envía el evento a AppsFlyer.
Registro de eventos cuando se carga una página de aterrizaje
- Tienes una página de suscripción para boletines informativos y deseas registrar las suscripciones realizadas correctamente.
- Configuras una página de agradecimiento a la que se redirige a los usuarios después de suscribirse correctamente.
- Configurar una página de agradecimiento
<html> <head> <script> // Google Tag Manager loads the Web SDK <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-XXXX'); </script> <script> // Assume that the server returns a response with details about the newly subscribed user function getResponseFromServer() { return JSON.stringify({ action: 'subscribe', category: 'site actions', label: userEmail }) } //Alternatively, you can extract data from localStorage or cookies, //in case data was set in either of them during the subscription process localStorage.setItem('data', JSON.stringify({ action: 'subscribe', category: 'site actions', label: 'user@email.com' })); </script> </head> <body> <h1>Thank You for Subscribing to Our Newsletter</h1> </body> </html>
El código anterior carga GTM, que a su vez carga el SDK web. A partir de entonces, otras dos acciones tienen lugar en el script. Una es una función que obtiene una respuesta del servidor con los detalles del usuario. La otra establece los datos en el almacenamiento local. GTM tiene acceso tanto a la función como a localStorage. Puedes llamar a la función y acceder a localStorage usando GTM.
- Agregar una nueva etiqueta para atribuir suscripciones después de que se cargue la página de agradecimiento
- Dale a la etiqueta un nombre distintivo y selecciona la opción de tipo de etiqueta Custom HTML (HTML personalizado).
- Pon el siguiente código en Custom HTML (HTML personalizado).
<script> AF('pba', 'event', {eventType: 'EVENT',
eventValue: {'category' : 'holiday_promotion'}
, eventName: 'subscription'}); </script> - Expande el control Advanced Settings (Configuración avanzada) y luego el control Tag Sequencing (Secuenciación de etiquetas) debajo del área de texto y asegúrate de que esté configurado para activar la conversión después de ejecutar la etiqueta.
- Para activar la etiqueta de conversión, configura un activador. En el ejemplo, el activador se dispara al cargar la página de agradecimiento.
Registro de eventos cuando los usuarios interactúan con el sitio web
- Tienes un sitio web de eCommerce y deseas registrar los eventos de checkout.
- Después de que el usuario hace clic en el botón de checkout, el SDK web envía un evento a AppsFlyer.
- Configurar una página de checkout
<html> <head> <script> // Google Tag Manager loads the Web SDK <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-XXXX'); </script> </head> <body> <h1>Shopping Cart</h1> <h2>Shirt</h2> <p> <ul> <li>Color: Blue</li> <li>Quantity: 2</li> <li>Price: $20</li> </ul> </p> <h2>Pants</h2> <p> <ul> <li>Color: Black</li> <li>Quantity: 3</li> <li>Price: $15</li> </ul> </p> <button id='checkout'>Checkout</button> </body> </html>
El código anterior carga el SDK web usando GTM. El resto es simplemente HTML que imita una página de carrito de compras. Observa el botón Checkout que tiene el ID de checkout. Es necesario al configurar GTM para manejar un clic en ese botón.
- En GTM, haz clic en Variables, haz clic en Configure (Configurar) y marca Click Element (Elemento de clic) en la lista de Built-In Variables (Variables incorporadas).
- Crea una nueva variable, dale un nombre significativo y elige el tipo de All elements (Todos los elementos).
- En la configuración del activador, elige Some Clicks (Algunos clics), y elige un Click Element (Elemento de clic) que coincida con el Selector CSS de #checkout.
- Crea una nueva etiqueta para la acción de checkout, elige el tipo Custom HTML (HTML personalizado) y configura el activador en el activador de checkout.
<script> AF('pba', 'event', {eventType: 'EVENT',
eventValue: {'category' : 'holiday_promotion'}
, eventName: 'checkout'}); </script>
- Asegúrate de que la etiqueta de funciones del SDK web esté cargada antes de que se active el evento.
- No envíes caracteres especiales en los valores de los eventos, como símbolos de moneda en el valor de los ingresos.
- Las cadenas de valores deben tener menos de 50 caracteres.
Configuración del ID de usuario del cliente después del registro
El código proporcionado en estos ejemplos es solo de referencia. No utilices este código tal como está. Si no estás seguro de cómo utilizar este código, consulta a tu desarrollador web.
Supuesto: La página carga el SDK web antes de enviar el evento; no cargues el SDK nuevamente.
Escenario de usuario:
- Un usuario se registra en tu sitio web.
- El código del sitio web recopila los datos del usuario y los envía a tu servidor.
- El servidor genera un CUID único para el usuario.
- En la página de agradecimiento después del registro, consultas al servidor el nuevo CUID.
- Mediante la respuesta del servidor, configuras el CUID de AppsFlyer mediante el método setCustomerUserId() del SDK web.
Configurar una página de registro:
<html>
<head>
<!-- The Web SDK script loads first -->
<script>
!function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){
(t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))},
t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1,
o.src="https://websdk.appsflyer.com?"+(c.length>0?"st="+c.split(",").sort().join(",")+"&":"")+(i.length>0?"af_id="+i:""),
p.parentNode.insertBefore(o,p)}(window,document,"script",0,"AF","pba",{pba: {webAppId: "WEB_DEV_KEY"}})
</script>
<script>
};
// This function stores the user email sent to the server after the user reaches the thank you page
// The response from the server is a unique CUID that should be set using the web SDK setCustomerUserId method
function storeUserEmail (){
var userEmail = document.getElementById('email').value;
localStorage.setItem('user_email', userEmail);
}
</script>
</head>
<body>
<h1>Sign Up</h1>
<form onsubmit="storeUserEmail()" action="/signup" method="post">
<div><label>Name</label>
<input type="text" name="name" id="name"></div>
<br />
<div> <label>Email</label>
<input type="email" name="email" id="email"></div>
<br />
<input type="submit" id="submit">
</form>
</body>
</html>
El código anterior es un formulario de registro sencillo. Cuando se envía el formulario, el correo electrónico se almacena en localStorage. Cuando el usuario llega a la página de agradecimiento, la dirección de correo electrónico del usuario se envía al servidor para generar el CUID único para la dirección de correo electrónico.
Configurar una página de agradecimiento para los usuarios que se registren:
<html>
<head>
<script>
!function(t,e,n,s,a,c,i,o,p){t.AppsFlyerSdkObject=a,t.AF=t.AF||function(){
(t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))},
t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1,
o.src="https://websdk.appsflyer.com?"+(c.length>0?"st="+c.split(",").sort().join(",")+"&":"")+(i.length>0?"af_id="+i:""),
p.parentNode.insertBefore(o,p)}(window,document,"script",0,"AF","pba",{pba: {webAppId: "WEB_DEV_KEY"}})
</script>
<script>
// Using the fetch API to send the user email to the server
// and get the unique user id in return
window.onload = function () {
var userEmail = localStorage.getItem('user_email');
fetch('users/' + userEmail).then(function (res) {
res.text().then(function (id) {
console.log(id);
AF('pba', 'setCustomerUserId', id);
});
});
} </script>
</head>
<body>
<h1>Thank You for Signing Up!</h1>
</body>
</html>
El código utiliza la API Fetch. Envía al servidor la dirección de correo electrónico ingresada por el usuario. Suponiendo que el servidor crea un usuario con un CUID único al registrarse, enviar la dirección de correo electrónico al servidor tiene como objetivo recibir un CUID único. El servidor responde con un CUID único y este CUID único es el valor que se transmite con el método setCustomerUserId.
-
Configura una página de registro:
<html> <head> <script>
// Google Tag Manager loads the Web SDK (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-5VJ6C7R');
// This function stores the user email to be sent to the server after the user reaches the thank you page // the response from the server is a unique CUID that should be used in the web SDK setCustomerUserId method function storeUserEmail (){ var userEmail = document.getElementById('email').value; localStorage.setItem('user_email', userEmail); } </script> </head> <body> <h1>Sign Up</h1> <form onsubmit="storeUserEmail()" action="/signup" method="post"> <div><label>Name</label> <input type="text" name="name" id="name"></div> <br /> <div> <label>Email</label> <input type="email" name="email" id="email"></div> <br /> <input type="submit" id="submit"> </form> </body> </html>El código anterior es un formulario de registro sencillo. Cuando se envía el formulario, la dirección de correo electrónico se almacena en localStorage. Cuando el usuario llega a la página de agradecimiento, la dirección de correo electrónico del usuario se envía al servidor para obtener el CUID único para ese correo electrónico.
-
Configura una página de agradecimiento para los usuarios que se registren:
(t.AF.q=t.AF.q||[]).push([Date.now()].concat(Array.prototype.slice.call(arguments)))}, t.AF.id=t.AF.id||i,t.AF.plugins={},o=e.createElement(n),p=e.getElementsByTagName(n)[0],o.async=1, o.src="https://websdk.appsflyer.com?"+(c.length>0?"st="+c.split(",").sort().join(",")+"&":"")+(i.length>0?"af_id="+i:""), p.parentNode.insertBefore(o,p)}(window,document,"script",0,"AF","pba",{pba: {webAppId: "WEB_DEV_KEY"}}) </script> <script> // using the fetch api to send the user email to the server // and get the unique user id in return window.onload = function () { var userEmail = localStorage.getItem('user_email'); fetch('users/' + userEmail).then(function (res) { res.text().then(function (id) { console.log(id); AF('pba', 'setCustomerUserId', id); }); }); } </script> </head> <body> <h1>Thank You for Signing Up!</h1> </body> </html>
El código anterior es una página de agradecimiento que tiene un activador GTM que envía al servidor la dirección de correo electrónico proporcionada por el usuario en el formulario de registro.
Suponiendo que, al momento del registro, el servidor crea un usuario con un CUID único.
El correo electrónico se envía al servidor con el propósito de recibir un CUID único.
El servidor responde con un CUID único que se envía mediante el método setCustomerUserId().
Continúa con este procedimiento para crear el activador y la pestaña. - Agrega una nueva etiqueta para atribuir las suscripciones después de que se cargue la página de agradecimiento.
- Dale a la etiqueta un nombre distintivo y selecciona la opción de tipo de etiqueta Custom HTML (HTML personalizado).
<script> var userEmail = localStorage.getItem('user_email'); fetch('users/' + userEmail).then(function (res) { res.text().then(function (id) { console.log(id); AF('pba', 'setCustomerUserId', id); }); }); </script>
- Expande el control Advanced Settings (Configuración avanzada) y luego el control Tag Sequencing (Secuenciación de etiquetas) debajo del área de texto y asegúrate de que esté configurado para activar la conversión después de ejecutar la etiqueta.
- Establece un activador para que la etiqueta de conversión indique cuándo se debe activar la etiqueta de conversión (en el siguiente ejemplo, se activa al cargar la página de agradecimiento).
La función setCustomerUserId se puede enviar en cualquier etapa del flujo del usuario, por ejemplo, después de iniciar sesión y registrarse. AppsFlyer utiliza el CUID más reciente enviado para actualizar al usuario observado actual para puntos de contacto y eventos pasados o futuros.
Utiliza el mismo valor CUID que utilizas en la función setCustomerUserId en la aplicación móvil (consulta el setCustomerUserId móvil para: iOS, Android, Unity)
Información adicional
Cookies del SDK web
Las cookies enumeradas en la siguiente tabla son configuradas o utilizadas por el SDK web en tu sitio web.
En la tabla se utilizan las siguientes abreviaturas:
- AMP: páginas móviles aceleradas
- CDN: red de entrega de contenido
- 3PC: cookies de terceros
Nombre de cookie | Dominio | Vida útil | Cuando se utiliza | Detalles |
---|---|---|---|---|
afUserid | El dominio de tu sitio web | 395 días | no AMP | Identificar a un usuario en el contexto de los eventos de carga web y navegación |
AF_SYNC | El dominio de tu sitio web | 1 semana | no AMP |
|
af_id | appsflyer.com | 395 días | no AMP cuando se permite 3PC | Identificar a un usuario en el contexto de los eventos de inicio de la aplicación y de navegación |
af_id | onelink.me | 395 días | no AMP cuando se permite 3PC | Enlazar engagements de banners, engagements de OneLink o ambos a eventos de inicio de aplicaciones. |
amp-afUserid | AMP CDN o el dominio de tu sitio web | 1 año | Para el servicio de páginas por AMP |
Notas de la versión del SDK web
Fecha | Versión | Notas |
---|---|---|
01-07-2021 | 1.0 | Descartar parámetros de consulta |
01-06-2021 | 1.0 | Implementar una política de seguridad de contenido (CSP) |
31-08-2020 | 1.0 | Se agregó la funcionalidad de aceptación y exclusión opcional |
16-04-2020 | 1.0 | La función CustomerUserId() reemplaza el evento IDENTIFY para enviar el CUID único |
30-07-2020 | 1.0 |
|
Entrada en desuso
- Un aviso de entrada en desuso proporciona un aviso de nuestra intención de dejar de admitir una función o método. La función o el método continúa funcionando hasta su fecha de vencimiento.
- Considera los avisos de entrada en desuso como una oportunidad para realizar cambios en tu código.
Fecha de desuso |
Fecha de vencimiento | Detalles |
---|---|---|
16-04-2020 | Pendiente de anuncio |
Método en desuso: envío del ID de usuario del cliente (CUID) en el parámetro de evento customUserId con eventType establecido en "IDENTIFY" Método actual: envío del CUID utilizando la función setCustomerUserId() . |