Ir al contenido

Inserta Banners automáticamente con la segmentación web

Para las ubicaciones web, puedes configurar opcionalmente la segmentación web en la configuración de la ubicación para especificar dónde debe aparecer el Banner en la página. Cuando la segmentación web está configurada, el SDK Web de Braze inserta los Banners automáticamente en la ubicación especificada, en lugar de hacerlo mediante una llamada explícita a insertBanner(). Para obtener más información, consulta Segmentación web para Banners. Para obtener información general sobre los Banners y sus ubicaciones, consulta Acerca de los Banners y Administrar ubicaciones.

Requisitos previos

Como la inserción mediante segmentación web añade HTML a tu página, requiere la misma adhesión voluntaria que insertBanner:

braze.initialize("YOUR-API-KEY", {
  baseUrl: "YOUR-ENDPOINT",
  allowUserSuppliedJavascript: true, // required for Web Targeting auto-insert
});

Sin allowUserSuppliedJavascript: true, la inserción automática no hace nada y el SDK registra un error.

Desencadenar la inserción mediante segmentación web

Cuando se llama, el método insertWebTargetingBanners() intenta usar la información de segmentación web de cada Banner, si existe, para encontrar el lugar previsto para ese Banner en la página e insertarlo allí automáticamente. Llama a este método poco después de inicializar el SDK y después de cada sincronización de Banners completada a través del SDK Web.

Si el SDK Web no encuentra el lugar de inserción de destino para un Banner con información de segmentación web, reintenta insertarlo continuamente. Esto permite que la segmentación web se dirija a partes de tu página que quizá solo aparezcan después de la carga inicial. Puedes deshabilitar este comportamiento de reintento al inicializar el SDK con el parámetro enableWebTargetingBannerRetryLoop del método initialize().

braze.initialize("YOUR-API-KEY", {
  baseUrl: "YOUR-ENDPOINT",
  allowUserSuppliedJavascript: true,
  enableWebTargetingBannerRetryLoop: false, // don't retry if the target isn't in the DOM yet
});

Habilitar la inserción mediante segmentación web al actualizar los Banners

Si lo deseas, puedes llamar a automaticallyInsertWebTargetingBanners() después de inicializar el SDK. Al invocar este método se establece una suscripción que realiza de inmediato la inserción mediante segmentación web para los Banners presentes después de que el SDK Web complete una sincronización de Banners. Esto evita tener que llamar a insertWebTargetingBanners(), aunque puedes usar solo ese método si quieres un control más preciso sobre cuándo se produce la inserción. Este método no inserta ningún Banner cuando se llama.

Aplicaciones de una sola página (SPA)

Ten en cuenta los siguientes detalles si tu sitio web usa una arquitectura de aplicación de una sola página (SPA) o sistemas similares (como React Router o Vue) para gestionar el enrutamiento y la navegación, o si tu sitio web elimina manualmente los Banners insertados:

  • Si un Banner se inserta en el DOM con segmentación web pero luego se elimina debido a una nueva renderización al cambiar de ruta, el SDK Web no intenta volver a insertarlo automáticamente en la nueva página. Del mismo modo, si el Banner permanece después de la nueva renderización pero está limitado por URL a la ruta anterior, el SDK Web no lo elimina automáticamente del DOM.
  • Llama a insertWebTargetingBanners() después de cada renderización de ruta del lado del cliente para invocar toda la lógica de seguimiento que orquesta el SDK. Solo vuelve a insertar los Banners cuyo estado ha cambiado, así que puedes llamarlo sin problema en cada navegación.

Solución de problemas

Motivos habituales por los que un Banner no se inserta automáticamente, registrados mediante el registrador del SDK (enableLogging: true):

Síntoma Causa probable
No se inserta nada en ningún sitio y el SDK registra “allowUserSuppliedJavascript is required” Se llamó a initialize() sin allowUserSuppliedJavascript: true.
El SDK registra “target element not found for selector” El selector CSS todavía no coincide con ningún elemento. Si el elemento se renderiza más tarde, esto se resuelve solo mediante el bucle de reintentos; de lo contrario, revisa el selector configurado para la ubicación.
El SDK registra “cannot insert inside” un elemento La información de segmentación web del Banner lo habría insertado en un elemento no compatible, como video o img. Consulta Segmentación web para Banners.
Un Banner se inserta una vez, pero no se actualiza al cambiar de ruta Consulta Consideraciones para SPA: llama a insertWebTargetingBanners() después de cada renderización de ruta del lado del cliente.
Un Banner desaparece después de una nueva renderización del framework Consulta Consideraciones para SPA.

Próximos pasos

New Stuff!