배너를 지원하는 단일 웹사이트 SDK(GTM)

문서

Singular 웹사이트 SDK를 사용하면 웹사이트 활동을 마케팅 터치포인트에 어트리뷰션하고 웹사이트 내 사용자 이벤트를 추적할 수 있습니다. 또한 Singular의 크로스 디바이스 어트리뷰션 솔루션의 핵심 구성 요소로, 사용자 여정을 분석하고 크로스 플랫폼 LTV 및 ROAS를 계산할 수 있습니다.

자세한 내용은 크로스 디바이스 어트리뷰션 FAQ와 웹 어트리뷰션 FAQ를 참조하세요.

브라우저 호환성:

Chrome: 15+ Edge: 15+ 인터넷 익스플로러 10+
Safari: 5.1+ Firefox: 6+ 오페라: 15+

이 가이드에서는 Google 태그 관리자 구현 방법을 사용하여 웹 사이트 SDK에 Singular 웹-투-앱 배너를 지원하는 구현 방법을 다룹니다.

Google 태그 매니저를 사용하지 않는 경우, Singular 배너 활성화 방법(개발자 가이드)을 따라 네이티브 구현에 직접 배너를 추가할 수 있습니다.

Singular 배너를 사용하지 않는 경우 여기에 있는 표준 가이드를 따를 수 있습니다:

Singular 웹사이트 SDK는 엔터프라이즈 기능입니다. 이 기능을 사용하는 데 관심이 있는 경우 고객 성공 매니저에게 문의하세요.

중요

Singular 배너 기능을 사용하려면 연동 Google 태그 관리자(GTM) 템플릿과 호환되지 않는 특수 구성이 필요합니다. 이러한 제한으로 인해 모든 태그 유형에 대한 Singular GTM 템플릿을 이 구현에 사용할 수 없습니다.

이미 GTM Singular 템플릿을 사용하여 Singular WebSDK를 구현한 경우 사용자 지정 HTML 템플릿으로 전환해야 합니다. 이 전환을 통해 Singular 플랫폼과의 호환성을 보장하고 연동에 대한 유연성과 제어력을 높일 수 있습니다.

전제 조건

Singular 웹사이트 SDK를 연동하기 전에 다음 사전 요구 사항이 충족되는지 확인하세요:

  • 사이트에Google 태그 관리자가 구성되어 있습니다.
  • Singular로 보내려는 이벤트(전환 이벤트 및 모든 사용자 지정 이벤트)에 대해 필요에 따라 Google 태그 관리자 트리거를 설정했습니다.
  • Singular로 보내려는 이벤트에 대해 필요에 따라 Google 태그 관리자 변수를 설정했습니다. 예를 들어, 거래 이벤트를 전송하고 거래 구매을 포함하려면 거래 금액과 통화에 대한 변수를 설정해야 합니다.

태그 1 - SDK 라이브러리 추가하기

Singular SDK가 초기화되거나 Singular 함수가 트리거되기 전에 사이트에 Singular 자바스크립트 라이브러리를 로드하거나 삽입해야 합니다. 이를 보장하기 위해 라이브러리는 Google 태그 관리자(GTM)의 사용자 지정 HTML 태그 옵션을 사용하여 삽입됩니다.

적절한 기능을 유지하려면 사이트의 모든 페이지에 라이브러리가 포함되어야 합니다. GTM의 창 로드됨 트리거를 사용하여 라이브러리 삽입 타이밍을 제어하여 페이지 콘텐츠가 완전히 로드된 후에 라이브러리가 로드되도록 할 것입니다.

  • 사용자 지정 HTML 태그를 만들어 SDK 라이브러리를 로드하고 클라이언트 힌트 데이터를 가져올 수 있는 권한을 추가합니다.
  • 태그 이름을"Singular - SDK 로더" 지정합니다.
  • 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>
    
  • 고급 설정에서 태그 실행 우선 순위를 99로설정합니다.
  • 트리거링 섹션에서"창 로드됨"에 대한 발동 트리거를 추가합니다.
  • 태그 저장

태그 2 - SDK 초기화 태그

Singular SDK 초기화 코드는 페이지가 로드될 때마다 실행되어야 하지만 Singular - SDK 로더 태그가 실행된 후에만 실행되어야 합니다. 이를 보장하기 위해 Singular - SDK 로더 태그에서 생성된 데이터 레이어 이벤트를 트리거로 사용합니다.

모든 Singular 어트리뷰션 기능의 전제 조건은 Singular SDK 초기화입니다. 이는 두 가지 중요한 목적을 수행합니다:

  • 사용자가 새 광고 데이터를 가지고 사이트에 들어올 때 또는 세션 시간 초과가 경과했을 때 새 사용자 세션을 생성합니다.
  • Singular에 '페이지 방문' 이벤트를 전송합니다.

이러한 "페이지 방문" 이벤트와 사용자 세션은 사용자 리텐션을 계산하고 리인게이지먼트 어트리뷰션을 활성화하는 데 필수적입니다.

GTM 사용자 정의 변수 구성하기

GTM 사용자 정의 변수 구성하기

Singular SDK를 초기화하고 데이터를 Singular로 전송할 수 있도록 하려면 SDK 키, SDK 시크릿, 제품 ID를 Singular컨피그 객체에 제공해야 합니다. 아래 코드 스니펫은 GTM 사용자 정의 변수에서 이러한 값을 검색하도록 설계되었습니다. 코드를 구현하기 전에 Google 태그 관리자에서 이러한 변수를 생성하고 올바른 값을 할당했는지 확인하세요.

SDK 키 및 SDK 시크릿 검색하기

  1. Singular 계정에 로그인합니다.
  2. 개발자 도구 > SDK 연동 > SDK 키로 이동합니다.
  3. 구성에 사용할 SDK 키와 SDK 시크릿을 복사합니다.

제품 ID 정의하기

  • 제품 ID는 Singular에서 귀하의 웹사이트를 나타냅니다. com.example와 같이 기본 웹 도메인의 역 DNS 표기를 사용하는 것이 좋습니다.
  • 이 값은 Singular 플랫폼 전체에서 웹사이트를 식별하며, Singular의 앱 페이지에 정의된 앱 번들 ID와 일치해야 합니다.

여러 하위 도메인이 있는 웹사이트의 경우

웹사이트가 여러 하위 도메인(예: www.example.com 및 shop.example.com)에 걸쳐 있는 경우 Singular 플랫폼에서 이러한 하위 도메인은 Singular 앱으로 취급됩니다. 이 경우 모든 하위 도메인에 com.example와 같은 연동 제품 ID를 사용합니다.

GTM 사용자 정의 변수 추가하기

Google 태그 관리자에서 사용자 정의 변수를 생성하여 이러한 값을 저장한 다음 필요할 때 코드 스니펫에서 참조해야 합니다:

변수를 생성하려면 다음과 같이 하세요:

  1. 변수를 생성하려면 다음과 같이 하세요.
  2. 사용자 정의 변수 섹션에서"신규"를 클릭합니다.
  3. 변수 이름을 지정하고 변수 구성 상자를 클릭합니다. 참고: 변수 이름은 코드 조각에서 값이 참조되는 방식입니다.
  4. 유틸리티에서"상수" 옵션을 선택합니다.
  5. 값 양식 필드에 변수에 해당하는 값을 추가합니다.
    udvariable.png

위의 프로세스에 따라 3개의 사용자 정의 변수를 만듭니다:"Singular SDK 키","Singular 비밀 키","Singular 제품 ID".
udvars.png

초기화 태그 빌드

초기화 태그 빌드

  • SDK 초기화를 처리할 사용자 지정 HTML 태그를 만듭니다.
  • 태그 이름을"Singular - SDK 초기화"로 지정합니다.
  • 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>
    

    위 코드는 초기화 시 Singular 배너를 활성화하는 기본 예시입니다. 필요에 따라 Singular 구성 개체 옵션을 업데이트하세요.

  • 고급 설정에서 태그 실행 우선순위를 98로 설정합니다.
  • 트리거링 섹션에서 사용자 지정 이벤트에 대한 발동 트리거를 추가합니다.
  • 트리거의 이름을 지정합니다:"singularSDKLoaded"
  • 트리거 이벤트 이름:"singularSDKLibraryLoaded" 지정합니다.
  • 태그 저장

GTM 프리뷰에서 테스트할 때 태그 순서는 다음과 같아야 합니다:

  1. 창 로드 이벤트에서: Singular - SDK 로더 태그가 실행됩니다.
    gtm-loaded.png
  2. Singular - 데이터 레이어에 SDK라이브러리 로딩 이벤트가 푸시됩니다.
  3. Singular - SDK 초기화 태그가 실행됩니다.
    gtm-init.png
  4. singularSDKInitialized 이벤트가 데이터 레이어로 푸시됩니다.
Singular 컨피그 옵션

SingularConfig 옵션

Singular에서 제공하는 다양한 기능을 활성화하기 위해 설정을 추가하고 싶을 수 있습니다. 설정을 추가하려면 SingularConfig 객체의 '.with' 메서드를 사용합니다. 예를 들어

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


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

SingularConfig 메서드 참조

다음은 사용 가능한 모든 '.with' 메서드입니다.

메서드 설명 자세히 알아보기
.withCustomUserId(customId) 사용자 ID를 Singular로 보내기 사용자 ID 설정
.withProductName(제품명) 제품의 선택적 표시 이름
.withLogLevel(로그 레벨) 로깅 수준 구성: 0 - 없음(기본값), 1 - 경고, 2 - 정보, 3 - 디버그.
.withSessionTimeoutInMinutes(시간 제한) 세션 타임아웃을 분 단위로 설정합니다(기본값: 30분).

.withAutoPersistentSingularDeviceId(도메인) 교차 하위 도메인 자동 추적 사용 쿠키를 사용한 자동 지속

.with퍼시스턴트Singular디바이스아이디(Singular디바이스아이디)

수동 교차 하위 도메인 추적 사용 Singular 디바이스 ID 수동 설정
.withInitFinishedCallback(콜백) SDK 초기화가 완료되면 콜백을 호출합니다. 초기화가 완료되면 콜백 함수 호출하기
Singular 페이지 애플리케이션(SPA) 지원

Singular 페이지 애플리케이션(SPA) 지원

전체 페이지를 다시 로드하지 않고 페이지 콘텐츠가 동적으로 변경되는 Singular 페이지 애플리케이션(SPA)의 경우, Google 태그 관리자(GTM)의 기록 변경 트리거는 경로 변경을 감지하는 데 탁월한 옵션입니다. 세 번째 사용자 지정 HTML 태그를 구성하여 페이지Visit(), hideBanner(), showBanner()와 같은 적절한 Singular SDK 메서드가 초기 페이지 로드 시점이 아닌 경로 변경 시에만 호출되도록 합니다.

GTM 구성:

히스토리 변경 트리거 만들기

  • GTM에서 새 트리거를 만듭니다.
  • 트리거 유형을 선택합니다: 트리거 유형: 기록 변경

기록 변경을 위한 사용자 지정 HTML 태그를 만듭니다.

  • 태그 이름을"Singular - SPA 경로 변경"으로 지정합니다.
  • 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>
    
  • 태그에 히스토리 변경 트리거를 할당합니다.
  • 저장 및 테스트

Singular에 사용자 ID 보내기(선택 사항)

Singular SDK 메서드를 사용하여 내부 사용자 ID를 Singular로 보낼 수 있습니다.

참고: Singular의 크로스 디바이스 솔루션을 사용하는 경우 모든 플랫폼에서 사용자 ID를 수집해야 합니다.

  • 사용자 ID는 모든 식별자가 될 수 있으며 PII(개인 식별 정보)를 노출해서는 안 됩니다. 예를 들어, 사용자의 이메일 주소, 사용자 이름 또는 전화번호를 사용해서는 안 됩니다. Singular는 퍼스트 파티 데이터에만 고유한 해시값을 사용할 것을 권장합니다.
  • 또한 Singular에 전달되는 사용자 ID 값은 모든 플랫폼(웹/모바일/PC/콘솔/오프라인)에서 캡처한 내부 사용자 ID와 동일해야 합니다.
  • Singular는 사용자 수준 내보내기, ETL 및 내부 BI 포스트백(구성된 경우)에 사용자 ID를 포함합니다. 사용자 ID는 퍼스트 파티 데이터이며, Singular는 이를 다른 당사자와 공유하지 않습니다.
  • Singular SDK 메서드로 설정한 사용자 ID 값은 logout() 메서드를 사용하여 설정 해제하거나 브라우저 로컬 저장소가 삭제될 때까지 유지됩니다. 웹사이트를 닫거나 새로고침해도 사용자 ID는 설정이 해제되지 않습니다.
  • 비공개/시크릿 모드에서는 브라우저를 닫으면 로컬 저장소가 자동으로 삭제되므로 SDK가 사용자 ID를 유지할 수 없습니다.

사용자 ID를 설정하려면 login() 방법을 사용합니다. 설정을 해제하려면(예: 사용자가 계정에서 '로그아웃'하는 경우) logout() 메서드를 호출합니다.

참고: 여러 사용자가 하나의 디바이스를 사용하는 경우에는 로그인 및 로그아웃할 때마다 사용자 ID를 설정하고 설정 해제하는 로그아웃 플로우를 구현하는 것이 좋습니다.

웹사이트에서 Singular SDK를 초기화할 때 사용자 ID를 이미 알고 있는 경우 구성 개체에서 사용자 ID를 설정하세요. 이렇게 하면 Singular가 첫 번째 세션부터 사용자 ID를 가질 수 있습니다. 그러나 일반적으로 사용자가 등록하거나 로그인을 수행할 때까지 사용자 ID를 사용할 수 없습니다. 이 경우 등록 흐름이 완료된 후 login() 으로 호출하세요. 사용자가 인증 플로우를 수행할 때 데이터 레이어 이벤트를 푸시하는 것이 좋으며, 이 이벤트는 GTM 사용자 지정 이벤트 트리거와 함께 사용하여 Singular 로그인 기능을 실행하는 데 사용할 수 있습니다.

  • 인증을 처리할 사용자 지정 HTML 태그 만들기
  • 태그 이름을"Singular - 인증 태그"로 지정합니다.
  • 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>
    
  • 트리거링 섹션에서 사용자 지정 이벤트에 대한 발동 트리거를 추가합니다.
  • 트리거의 이름을 지정합니다:"singularAuthentication"
  • 사용자가 웹사이트에서 인증한 후 사용할 수 있는 데이터 레이어 이벤트 이름에 해당하는 트리거 이벤트 이름을 지정합니다.
  • 태그 저장

위의 코드 스니펫은 배너를 지원하기 위해 GTM 사용자 지정 HTML 태그를 사용하여 Singular 네이티브 자바스크립트 WebSDK를 구현하는 방법을 보여줍니다. 이벤트 전송 및 구매 추적과 같은 추가 사용자 정의는 네이티브 SDK 문서에서 자세한 기능 정의를 참조하세요. 그런 다음 필요에 따라 사용자 지정 HTML 태그를 추가로 빌드하여 구현을 확장할 수 있습니다.