SDK de Singular Website con soporte para banners (GTM)

Documento

Singular Website SDK le permite atribuir las actividades del sitio web a los puntos de contacto de marketing y realizar un seguimiento de los eventos de usuario dentro de su sitio web. También es un componente clave en la solución de atribución entre dispositivos de Singular, que permite analizar los recorridos de los usuarios y calcular el LTV y el ROAS entre plataformas.

Para obtener más información, consulte nuestras preguntas frecuentes sobre atribución entre dispositivos y atribución web.

Compatibilidad con navegadores:

Chrome: 15+ Edge: 15+ Internet Explorer: 10+
Safari 5.1+ Firefox 6+ Opera: 15+

Esta guía cubre la implementación de Website SDK con soporte Singular Web-to-App Banner utilizando el método de implementación de Google Tag Manager.

Si no utiliza Google Tag Manager, puede seguir nuestra guía Cómo habilitar Singular Banners (Guía para desarrolladores) para añadir banners directamente a su implementación nativa.

Si no utiliza Singular Banners puede seguir nuestras guías estándar que se encuentran aquí:

Singular Website SDK es una función para empresas. Si está interesado en utilizar esta función, póngase en contacto con su Customer Success Manager.

Importante

La función Singular Banners requiere configuraciones especiales que son incompatibles con las plantillas integradas de Google Tag Manager (GTM). Debido a esta limitación, las plantillas de Singular GTM para todos los tipos de etiquetas no se pueden utilizar con esta implementación.

Si ya ha implementado Singular WebSDK utilizando las plantillas Singular GTM, deberá realizar la transición a las plantillas HTML personalizadas. Esta transición garantiza la compatibilidad con la plataforma Singular y proporciona una mayor flexibilidad y control sobre su integración.

Requisitos previos

Antes de integrar Singular Website SDK, asegúrese de que se cumplen estos requisitos previos:

  • Se ha configuradoGoogle Tag Manager en su sitio.
  • Ha configurado los disparadores de Google Tag Manager según sea necesario para los eventos que desea enviar a Singular (su evento de conversión y cualquier evento personalizado).
  • Ha configurado las variables de Google Tag Manager necesarias para los eventos que desea enviar a Singular. Por ejemplo, si desea enviar eventos de transacción e incluir los ingresos de la transacción, debe configurar variables para la suma de la transacción y la divisa.

Etiqueta 1 - Añadir la biblioteca SDK

La biblioteca JavaScript de Singular debe cargarse o inyectarse en el sitio antes de que se inicialice el SDK de Singular o se active cualquier función de Singular. Para garantizar esto, la biblioteca se inyectará utilizando la opción de etiqueta HTML personalizada en Google Tag Manager (GTM).

Para mantener una funcionalidad adecuada, la biblioteca debe incluirse en todas las páginas del sitio. Utilizaremos el activador Window Loaded (Ventana cargada) de GTM para controlar el momento de la inyección de la biblioteca y garantizar que se cargue después de que el contenido de la página se haya cargado por completo.

  • Cree una etiqueta HTML personalizada para cargar la biblioteca SDK y agregar permiso para obtener datos de sugerencias del cliente.
  • Nombre la etiqueta"Singular - SDK Loader".
  • Inserte el siguiente código en la ventana HTML
    <script>
    (function() {
      // Check if singularSdk is already loaded
    
    
      if (window.singularSdk) {
        return; // SDK already loaded, no need to load again
    
    
      }
    
      // Inject the meta tag for client hints delegation
    
    
      var metaTag = document.createElement('meta');
      metaTag.setAttribute('http-equiv', 'delegate-ch');
      metaTag.setAttribute('content', 'sec-ch-ua-model https://sdk-api-v1.singular.net; sec-ch-ua-platform-version https://sdk-api-v1.singular.net; sec-ch-ua-full-version-list https://sdk-api-v1.singular.net');
      document.head.appendChild(metaTag);
      
      // Create and load the Singular SDK script
    
    
      var script = document.createElement('script');
      script.src = 'https://web-sdk-cdn.singular.net/singular-sdk/latest/singular-sdk.js';
      script.async = true;
    
      // Once the script is loaded, push to dataLayer
    
    
      script.addEventListener('load', function() {
        window.dataLayer = window.dataLayer || [];  // Ensure dataLayer is initialized
    
    
        window.dataLayer.push({
          event: 'singularSDKLibraryLoaded'
        });
      });
    
      // Append the script tag to the head of the document
    
    
      document.head.appendChild(script);
    })();
    </script>
    
  • En Configuración avanzada, establezca la prioridad de disparo de la etiqueta en 99.
  • En la sección Triggering, añada un Firing Trigger para"Window Loaded".
  • Guarde la etiqueta

Etiqueta 2 - Etiqueta de Inicialización SDK

El código de inicialización de Singular SDK debe ejecutarse cada vez que se carga una página, pero sólo después de que se haya disparado la etiqueta Singular - SDK Loader. Para asegurar esto, utilizaremos el evento Data Layer creado por la etiqueta Singular - SDK Loader como disparador.

La inicialización de Singular SDK es un requisito previo para todas las funciones de atribución de Singular. Sirve para dos propósitos críticos:

  • Crear una nueva sesión de usuario cuando un usuario entra en el sitio con nuevos datos publicitarios o cuando ha transcurrido el tiempo de espera de la sesión.
  • Enviar un evento de "visita de página" a Singular.

Estos eventos de "visita de página" y sesiones de usuario son esenciales para calcular la retención de usuarios y permitir la atribución de reenganche.

Configurar las variables definidas por el usuario de GTM

Configuración de las variables definidas por el usuario de GTM

Para inicializar Singular SDK y permitir que envíe datos a Singular, debe proporcionar la clave SDK, el secreto SDK y el ID de producto al objeto SingularConfig. El siguiente fragmento de código está diseñado para recuperar estos valores de las variables definidas por el usuario de GTM. Asegúrese de crear estas variables en Google Tag Manager y de asignar los valores correctos antes de implementar el código.

Recuperación de la clave y el secreto del SDK

  1. Inicie sesión en su cuenta de Singular.
  2. Vaya a Herramientas para desarrolladores > Integración SDK > Claves SDK.
  3. Copie la SDK Key y el SDK Secret para utilizarlos en su configuración.

Definición del ID de producto

  • El ID de producto representa su sitio web en Singular. Recomendamos utilizar la notación DNS inversa de su dominio web principal, como com.ejemplo.
  • Este valor identificará su sitio Web en toda la plataforma Singular y debe coincidir con el ID del paquete de aplicaciones definido en la página de aplicaciones de Singular.

Para sitios web con varios subdominios

Si su sitio web abarca varios subdominios (por ejemplo, www.example.com y shop.example.com), éstos se tratarán como una única aplicación en la plataforma Singular. En este caso, utilice un ID de producto unificado como com.ejemplo para todos los subdominios.

Añadir variables definidas por el usuario GTM

En Google Tag Manager, debe crear variables definidas por el usuario para almacenar estos valores y, a continuación, hacer referencia a ellos en fragmentos de código cuando sea necesario:

Para crear las variables

  1. Haga clic en Variables
  2. Haga clic en"Nueva" en la sección Variables definidas por el usuario.
  3. Asigne un nombre a la variable y haga clic en el cuadro Configuración de la variable. Nota: el Nombre de la Variable es como el valor será referenciado en los fragmentos de código.
  4. Elija la opción"Constante" en Utilidades.
  5. En el campo de formulario Valor, añada el valor correspondiente para la variable.
    udvariable.png

Siguiendo el proceso anterior, cree 3 variables definidas por el usuario: "Singular SDK Key","Singular Secret Key","Singular Product ID".
udvars.png

Cree la etiqueta de inicialización

Crear la etiqueta de inicialización

  • Cree una etiqueta HTML personalizada para gestionar la inicialización del SDK.
  • Nombre la etiqueta"Singular - Inicialización del SDK".
  • Inserte el siguiente código en la ventana HTML
    <script>
    (function() {
      // Check if singularSdk is available before proceeding
    
    
      if (window.singularSdk) {
        var sdkKey = {{Singular SDK Key}};
        var secretKey = {{Singular Secret Key}};
        var productId = {{Singular Product ID}};
        
        // Create Singular Banners config object & enable web-to-app support
    
    
        var bannersOptions = new BannersOptions().withWebToAppSupport();
        
        // Create SDK config object with Singular Banners support
    
    
        var config = new SingularConfig(sdkKey, secretKey, productId)
          .withBannersSupport(bannersOptions);
          //Add additional option here
    
        try {
          // Initialize the SDK
    
    
          singularSdk.init(config);
          
          // Display the banner
    
    
          singularSdk.showBanner();
          
          // Push event to dataLayer after initialization
    
    
          window.dataLayer = window.dataLayer || [];
          window.dataLayer.push({
            event: 'singularSDKInitialized'
          });
          
        } catch (error) {
          console.error('Error initializing Singular SDK:', error);
        }
      } else {
        console.warn('Singular SDK not loaded or available.');
      }
    })();
    </script>
    

    El código anterior es un ejemplo básico para activar los banners de Singular en la inicialización. Actualice las opciones del objeto de configuración de Singular según sus necesidades.

  • En Configuración avanzada, establezca la prioridad de disparo de la etiqueta en 98.
  • En la sección Triggering, añada un Firing Trigger para un Custom Event.
  • Nombre el Trigger:"singularSDKLoaded"
  • Especifique el nombre del evento de activación:"singularSDKLibraryLoaded".
  • Guarde la etiqueta

La secuencia de la etiqueta debe ser la siguiente cuando se prueba en la vista previa de GTM:

  1. En el Evento Window Loaded Se dispara la etiqueta Singular - SDK Loader.
    gtm-loaded.png
  2. El eventosingularSDKLibraryLoaded es empujado al datalayer.
  3. Se dispara la etiqueta Singular - SDK Initialization.
    gtm-init.png
  4. El eventosingularSDKInitialized se envía a la capa de datos.
Opciones de SingularConfig

Opciones de SingularConfig

Es probable que desee añadir opciones para activar diversas capacidades ofrecidas por Singular. Para ello, utilice los métodos ".with" del objeto SingularConfig. Por ejemplo

// Configure the SDK to pass the user ID to Singular


const config = new SingularConfig(sdkKey, sdkSecret, productId)
    .withCustomUserId(userId);

Referencia de métodos SingularConfig

Estos son todos los métodos ".with" disponibles.

Método Descripción Más información
.withIdDeUsuario(customId) Enviar el ID de usuario a Singular Establecer el ID de usuario
.withNombreProducto(nombreProducto) Un nombre opcional para el producto
.withLogLevel(logLevel) Configurar el nivel de registro: 0 - Ninguno (por defecto); 1 - Advertencia; 2 - Información; 3 - Depuración.
.withSessionTimeoutInMinutes (tiempo de espera) Establece el tiempo de espera de la sesión en minutos (por defecto: 30 minutos).

.withAutoPersistentSingularDeviceId (dominio) Habilitar el seguimiento automático entre subdominios Persistencia automática mediante cookies

.withPersistentSingularDeviceId (singularDeviceId)

Activar el seguimiento manual entre subdominios Establecer ID de dispositivo singular manualmente
.withInitFinishedCallback(callback) Invocar una función callback cuando finaliza la inicialización del SDK Invocar una función callback cuando la inicialización ha finalizado
Compatibilidad con aplicaciones de página única (SPA)

Compatibilidad con aplicaciones de página única (SPA)

Para aplicaciones de una sola página (SPA), en las que el contenido de la página cambia dinámicamente sin necesidad de recargar toda la página, el activador de cambios en el historial de Google Tag Manager (GTM) es una opción excelente para detectar cambios en la ruta. Configure una tercera etiqueta HTML personalizada para garantizar que los métodos apropiados de Singular SDK, como pageVisit(), hideBanner() y showBanner(), se invoquen sólo en los cambios de ruta y no en la carga inicial de la página.

Configuración de GTM:

Creación de un activador de cambio de historial

  • En GTM, cree un nuevo activador
  • Seleccione Tipo de activador: Cambio de historial

Cree una etiqueta HTML personalizada para los cambios de historial

  • Nombre la etiqueta"Singular - Cambio de Ruta SPA".
  • Inserte el siguiente código en la ventana HTML
    <script>
    (function () {
      try {
        // Ensure Singular SDK is loaded
    
    
        if (window.singularSdk) {
          // Check if this is the first page load
    
    
          if (!window.singularFirstLoad) {
            // Mark the first page as processed
    
    
            window.singularFirstLoad = true;
            console.log('First page load detected. Singular pageVisit skipped.');
          } else {
            // Call Singular's pageVisit for subsequent route changes
    
    
            singularSdk.pageVisit();
            console.log('Singular pageVisit triggered for SPA route change.');
          }
    
          // Hide the current banner
    
    
          singularSdk.hideBanner();
    
          // Delay to ensure route change completion
    
    
          var delay = 200; // Delay in milliseconds
    
    
          setTimeout(function () {
            // Show the new banner for the current route
    
    
            singularSdk.showBanner();
            console.log('Singular banner updated for new route.');
          }, delay);
        } else {
          console.warn('Singular SDK is not defined. Ensure the SDK is loaded before using this script.');
        }
      } catch (error) {
        console.error('Error during Singular SPA navigation:', error);
      }
    })();
    </script>
    
  • Asigne el activador de Cambio de Historial a la etiqueta.
  • Guardar y probar

Envío del ID de usuario a Singular (opcional)

Puede enviar su ID de usuario interno a Singular utilizando un método de Singular SDK.

Nota: Si utiliza la solución multidispositivo de Singular, debe recopilar el ID de usuario en todas las plataformas.

  • El ID de usuario puede ser cualquier identificador y no debe exponer PII (Personally Identifiable Information). Por ejemplo, no debe utilizar la dirección de correo electrónico, el nombre de usuario o el número de teléfono del usuario. Singular recomienda utilizar un valor hash único sólo para sus datos de origen.
  • El valor de ID de usuario que se pasa a Singular también debe ser el mismo ID de usuario interno que se captura en todas las plataformas (Web/Móvil/PC/Consola/Offline).
  • Singular incluirá el ID de usuario en las exportaciones a nivel de usuario, ETL y devoluciones internas de BI (si está configurado). El ID de usuario es un dato de origen y Singular no lo comparte con terceros.
  • El valor del ID de usuario, cuando se establece con el método Singular SDK, persistirá hasta que se desactive utilizando el método logout() o hasta que se elimine el almacenamiento local del navegador. Cerrar o actualizar el sitio web no elimina el ID de usuario.
  • En modo privado/incógnito, el SDK no puede mantener el ID de usuario porque el navegador borra automáticamente el almacenamiento local cuando se cierra.

Para establecer el ID de usuario, utilice el método login(). Para desestablecerlo (por ejemplo, si el Usuario "sale" de la cuenta), llame al método logout().

Nota: Si varios usuarios utilizan un único dispositivo, recomendamos implementar un flujo de cierre de sesión para establecer y desestablecer el ID de usuario para cada inicio y cierre de sesión.

Si ya conoce el ID de usuario cuando se inicializa Singular SDK en el sitio web, establezca el ID de usuario en el objeto config. De esta forma, Singular puede tener el ID de usuario desde la primera sesión. Sin embargo, el ID de usuario no suele estar disponible hasta que el usuario se registra o realiza un inicio de sesión. En ese caso, llame a login() una vez finalizado el flujo de registro. Se recomienda enviar un evento de capa de datos cuando un usuario realiza un flujo de autenticación que se puede utilizar con un activador de eventos personalizados GTM para activar la función de inicio de sesión de Singular.

  • Cree una etiqueta HTML personalizada para gestionar la autenticación
  • Nombre la etiqueta"Singular - Etiqueta de autenticación".
  • Inserte el siguiente código en la ventana HTML
    <script>
    (function() {
      // Ensure sessionStorage is available
    
    
      if (typeof sessionStorage === 'undefined') {
        console.warn('sessionStorage is not supported in this environment.');
        return;
      }
    
      // Check if the event has already been triggered in this session
    
    
      if (sessionStorage.getItem('sng_login_triggered')) {
        console.log('Singular SDK event already triggered this session.');
        return; // Exit if the event was triggered before in this session
    
    
      }
    
      // Check if singularSdk is available and initialized
    
    
      if (window.singularSdk && typeof singularSdk.login === 'function' && typeof singularSdk.event === 'function') {
        
        // Dynamically fetch UserID if available (replace with actual method if applicable)
    
    
        var userID = window.userID || "User123456789"; // Example fallback value for userID
    
    
    
        try {
          // After Authentication, Pass the UserID as the Singular Custom User ID Value
    
    
          singularSdk.login(userID);
    
          // Send the Registration_Completed event (or similar event)
    
    
          singularSdk.event("sng_login");
    
          // Set a flag in sessionStorage to indicate that the event was triggered
    
    
          sessionStorage.setItem('sng_login_triggered', 'true');
    
          console.log('Singular SDK event triggered successfully.');
        } catch (error) {
          console.error('Error triggering Singular SDK event:', error);
        }
      } else {
        console.warn('Singular SDK is not loaded or required methods are unavailable.');
      }
    })();
    </script>
    
  • En la sección Activación, añada una activación de disparo para un evento personalizado.
  • Nombre el Trigger"singularAutenticación"
  • Especifique el nombre del evento de activación correspondiente al nombre del evento de la capa de datos disponible después de que un usuario se autentique en su sitio web.
  • Guarde la etiqueta

Los fragmentos de código anteriores muestran cómo implementar Singular Native JavaScript WebSDK utilizando etiquetas HTML personalizadas de GTM para admitir banners. Para una mayor personalización, como el envío de eventos y el seguimiento de los ingresos, consulte la documentación del SDK nativo para obtener definiciones detalladas de las funciones. A continuación, puede crear etiquetas HTML personalizadas adicionales según sea necesario para ampliar su implementación.