O Website SDK da Singular permite-lhe atribuir actividades do website a pontos de contacto de marketing e rastrear eventos de utilizadores no seu website. É também um componente chave na solução de atribuição entre dispositivos da Singular, tornando possível analisar as jornadas dos utilizadores e calcular o LTV e ROAS entre plataformas.
Para saber mais, consulte nossas Perguntas Frequentes sobre Atribuição entre Dispositivos e Perguntas Frequentes sobre Atribuição na Web.
Compatibilidade com navegadores:
Chrome: 15+ | Edge: 15+ | Internet Explorer: 10+ |
Safari: 5.1+ | Firefox: 6+ | Opera: 15+ |
Este guia abrange a implementação do Website SDK com suporte para Singular Web-to-App Banner utilizando o método de implementação do Google Tag Manager.
Se não estiver a utilizar o Google Tag Manager, pode seguir o nosso How to Enable Singular Banners (Developers Guide) para adicionar banners diretamente à sua implementação Native.
Se não estiver a utilizar Singular Banners, pode seguir os nossos guias padrão encontrados aqui:
O Singular Website SDK é um recurso Enterprise. Se você estiver interessado em usar este recurso, entre em contato com seu Gerente de Sucesso do Cliente.
Importante
O recurso Singular Banners requer configurações especiais que são incompatíveis com os modelos integrados do Google Tag Manager (GTM). Devido a essa limitação, os modelos do Singular GTM para todos os tipos de tags não podem ser usados com essa implementação.
Se já tiver implementado o Singular WebSDK usando os modelos Singular GTM, será necessário fazer a transição para modelos HTML personalizados. Essa transição garante a compatibilidade com a plataforma Singular e fornece maior flexibilidade e controle sobre sua integração.
Pré-requisitos
Antes de integrar o Singular Website SDK, certifique-se de que esses pré-requisitos sejam atendidos:
- O Google Tag Manager foi configurado no seu site.
- Você configurou os gatilhos do Google Tag Manager conforme necessário para os eventos que deseja enviar para o Singular (seu evento de conversão e quaisquer eventos personalizados).
- Você configurou as variáveis do Google Tag Manager conforme necessário para os eventos que deseja enviar para a Singular. Por exemplo, se você quiser enviar eventos de transação e incluir a receita da transação, precisará configurar variáveis para a soma e a moeda da transação.
Tag 1 - Adicionando a biblioteca SDK
A biblioteca JavaScript do Singular deve ser carregada ou injetada no site antes que o SDK do Singular seja inicializado ou qualquer função do Singular seja acionada. Para garantir isso, a biblioteca será injetada usando a opção de tag HTML personalizada no Google Tag Manager (GTM).
Para manter a funcionalidade adequada, a biblioteca deve ser incluída em todas as páginas do site. Usaremos o acionador Window Loaded no GTM para controlar o tempo de injeção da biblioteca, garantindo que ela seja carregada depois que o conteúdo da página estiver totalmente carregado.
- Crie uma tag HTML personalizada para carregar a biblioteca SDK e adicione permissão para buscar dados de dicas do cliente.
- Nomeie a tag como"Singular - Carregador de SDK"
- Insira o seguinte código na janela 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>
- Em Configurações avançadas, defina a prioridade de disparo da tag como 99
- Na secção Triggering, adicione um Firing Trigger para"Window Loaded"
- Salve a tag
Tag 2 - Tag de inicialização do SDK
O código de inicialização do Singular SDK deve ser executado sempre que uma página for carregada, mas somente após o disparo da tag Singular - SDK Loader. Para garantir isso, usaremos o evento Data Layer criado pela tag Singular - SDK Loader como gatilho.
A inicialização do Singular SDK é um pré-requisito para todas as funcionalidades de atribuição do Singular. Ele serve a dois propósitos críticos:
- Criar uma nova sessão de utilizador quando um utilizador entra no site com novos dados de publicidade ou quando o tempo limite da sessão tiver expirado.
- Enviar um evento de "visita à página" para o Singular.
Esses eventos de "visita à página" e sessões de usuário são essenciais para calcular a retenção de usuários e permitir a atribuição de reengajamento.
Configurar variáveis definidas pelo usuário do GTM
Para inicializar o SDK da Singular e permitir que ele envie dados para a Singular, é necessário fornecer a Chave do SDK, o Segredo do SDK e a ID do produto para o objeto SingularConfig. O trecho de código abaixo foi projetado para recuperar esses valores das variáveis definidas pelo usuário do GTM. Certifique-se de que cria estas variáveis no Google Tag Manager e atribui os valores corretos antes de implementar o código.
Recuperação da chave SDK e do segredo SDK
- Faça login na sua conta Singular.
- Navegue até Ferramentas do desenvolvedor > Integração do SDK > Chaves do SDK.
- Copie a chave SDK e o segredo SDK para usar na sua configuração.
Definindo o ID do produto
- O ID do produto representa o seu site no Singular. Recomendamos a utilização da notação DNS inversa do seu domínio Web principal, como com.example.
- Esse valor identificará seu site em toda a plataforma Singular e deve corresponder à ID do pacote de aplicativos definida na página Aplicativos no Singular.
Para sites com vários subdomínios
Se o seu site abranger vários subdomínios (por exemplo, www.example.com e shop.example.com), eles serão tratados como um único aplicativo na plataforma Singular. Nesse caso, use uma ID de produto unificada como com.example para todos os subdomínios.
Adicionar variáveis definidas pelo utilizador do GTM
No Google Tag Manager, deve criar variáveis definidas pelo utilizador para armazenar estes valores e, em seguida, referenciá-los em snippets de código quando necessário:
Para criar as variáveis:
- Clique em Variáveis
- Clique em"Novo" na secção Variáveis definidas pelo utilizador
- Dê um nome à variável e clique na caixa Configuração da variável. Nota: o Nome da variável é como o valor será referenciado nos trechos de código.
- Escolha a opção"Constante" em Utilitários.
- No campo do formulário Valor, adicione o valor correspondente para a variável.
Seguindo o processo acima, crie 3 variáveis definidas pelo utilizador:"Singular SDK Key","Singular Secret Key","Singular Product ID".
Criar a tag de inicialização
- Crie uma tag HTML personalizada para lidar com a inicialização do SDK
- Nomeie a tag como"Singular - Inicialização do SDK"
- Insira o seguinte código na janela 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>
O código acima é um exemplo básico para ativar os banners do Singular na inicialização. Atualize as opções do objeto de configuração Singular de acordo com suas necessidades.
- Em Configurações avançadas, defina a prioridade de disparo da tag como 98.
- Na secção Triggering, adicione um Firing Trigger para um Custom Event.
- Nomeie o acionador:"singularSDKLoaded"
- Especifique o nome do evento de acionamento:"singularSDKLibraryLoaded"
- Guardar a etiqueta
A sequência da tag deve ser a seguinte ao testar na visualização do GTM:
- No evento Window Loaded: A tag Singular - SDK Loader é disparada.
- O eventosingularSDKLibraryLoaded é enviado para a camada de dados.
- Singular - A tag de inicialização do SDK é disparada
- O eventosingularSDKInitialized é enviado para a camada de dados.
Opções de SingularConfig
Você provavelmente vai querer adicionar configurações para habilitar vários recursos oferecidos pelo Singular. Para adicionar configurações, você usará os métodos ".with" do objeto SingularConfig. Por exemplo:
// Configure the SDK to pass the user ID to Singular
const config = new SingularConfig(sdkKey, sdkSecret, productId)
.withCustomUserId(userId);
Referência do método SingularConfig
Aqui estão todos os métodos ".with" disponíveis.
Método | Descrição do método | Saiba mais |
.withCustomUserId(customId) | Enviar o ID do utilizador para a Singular | Definir o ID do utilizador |
.withProductName(productName) | Um nome de exibição opcional para o produto | |
.withLogLevel(logLevel) | Configurar o nível de registo: 0 - Nenhum (predefinição); 1 - Aviso; 2 - Informação; 3 - Depuração. | |
.withSessionTimeoutInMinutes (timeout) | Define o tempo limite da sessão em minutos (predefinição: 30 minutos) |
|
.withAutoPersistentSingularDeviceId (domínio) | Ativar o rastreio automático entre subdomínios | Persistência automática utilizando cookies |
.withPersistentSingularDeviceId (singularDeviceId) |
Ativar o rastreio manual entre subdomínios | Definir manualmente o ID de dispositivo singular |
.withInitFinishedCallback(callback) | Invoca uma chamada de retorno quando a inicialização do SDK estiver concluída | Invocação de uma função de retorno de chamada quando a inicialização estiver concluída |
Suporte a aplicativos de página única (SPAs)
Para aplicativos de página única (SPAs), em que o conteúdo da página é alterado dinamicamente sem uma recarga completa da página, o acionador Alteração de histórico no Gerenciador de tags do Google (GTM) é uma excelente opção para detetar alterações de rota. Configure uma terceira tag HTML personalizada para garantir que os métodos apropriados do Singular SDK, como pageVisit(), hideBanner() e showBanner(), sejam chamados apenas em alterações de rota e não no carregamento inicial da página.
Configuração do GTM:
Criar um acionador de alteração de histórico
- No GTM, crie um novo acionador
- Selecione Trigger Type (Tipo de acionador): Mudança de histórico
Crie uma tag HTML personalizada para alterações de histórico
- Nomeie a tag como"Singular - SPA Route Change"
- Insira o seguinte código na janela 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>
- Atribua o gatilho de Mudança de Histórico à tag.
- Salvar e testar
Enviando o ID de usuário para a Singular (opcional)
Você pode enviar sua ID de usuário interna para a Singular usando um método do SDK da Singular.
Observação: Se você usar a solução Cross-Device da Singular, deverá coletar a ID de usuário em todas as plataformas.
- A ID de usuário pode ser qualquer identificador e não deve expor PII (Informações de identificação pessoal). Por exemplo, não deve utilizar o endereço de correio eletrónico, o nome de utilizador ou o número de telefone de um utilizador. A Singular recomenda o uso de um valor com hash exclusivo apenas para seus dados primários.
- O valor da ID de usuário passado para a Singular também deve ser a mesma ID de usuário interna que você captura em todas as plataformas (Web/Mobile/PC/Console/Offline).
- A Singular incluirá o ID de utilizador nas exportações ao nível do utilizador, ETL e postbacks do BI interno (se configurado). O ID do usuário é um dado primário e a Singular não o compartilha com outras partes.
- O valor da ID de utilizador, quando definido com o método Singular SDK, persistirá até ser anulado utilizando o método logout() ou até que o armazenamento local do browser seja eliminado. Fechar ou atualizar o sítio Web não anula a definição do ID de utilizador.
- No modo privado/incógnito, o SDK não pode manter o ID de utilizador porque o browser elimina automaticamente o armazenamento local quando é fechado.
Para definir o ID de utilizador, utilize o método login(). Para o anular (por exemplo, se o Utilizador "sair" da conta), chame o método logout().
Nota: Se vários Utilizadores utilizarem um único dispositivo, recomendamos a implementação de um fluxo de fim de sessão para definir e anular a definição da ID de Utilizador para cada início e fim de sessão.
Se você já sabe a ID do usuário quando o Singular SDK é inicializado no site, defina a ID do usuário no objeto de configuração. Dessa forma, o Singular pode ter a ID de usuário desde a primeira sessão. No entanto, o ID de usuário normalmente não está disponível até que o usuário se registre ou faça um login. Nesse caso, chame login() após a conclusão do fluxo de registo. É recomendável enviar um evento de camada de dados quando um usuário executa um fluxo de autenticação que pode ser usado com um acionador de evento personalizado do GTM para disparar a função Login do Singular.
- Crie uma tag HTML personalizada para lidar com a autenticação
- Nomeie a tag como"Singular - Tag de autenticação"
- Insira o seguinte código na janela 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>
- Na secção Triggering, adicione um Firing Trigger para um evento personalizado.
- Nomeie o acionador:"singularAuthentication"
- Especifique o nome do evento do acionador correspondente ao nome do evento da camada de dados disponível após a autenticação de um utilizador no seu Web site.
- Salvar a tag
Os trechos de código acima demonstram como implementar o Singular Native JavaScript WebSDK usando Tags HTML personalizadas do GTM para oferecer suporte a Banners. Para personalização adicional, como envio de eventos e rastreamento de receita, consulte a documentação do SDK Nativo para obter definições de função detalhadas. Você pode criar outras tags HTML personalizadas conforme necessário para ampliar sua implementação.