Singular Website SDK | |
다운로드 | Singular Website SDK version 1.3.5 |
브라우저 호환성 |
|
소개
Singular Website SDK를 사용하면 웹 사이트의 활동을 마케팅 터치포인트에 어트리뷰트하고 웹 사이트 내의 사용자 이벤트를 추적할 수 있습니다. 또한 Singular의 크로스 디바이스 어트리뷰션 솔루션의 핵심 구성 요소로서 사용자 여정을 분석하고 플랫폼 간 LTV 및 ROAS를 계산할 수 있습니다. Singular Website SDK는 본 문서에서 설명하는 기본 JavaScript 버전 외에도 Google 태그 관리자 템플릿으로도 제공됩니다.
사이트에 SDK 스크립트 추가
다음 중 하나의 방법을 선택해서 고객사의 웹사이트나 웹앱에 SDK를 추가할 수 있습니다.
Singular CDN 상의 스크립트와 링크
이 방법으로 Singular가 CDN을 통해 호스트하는 JavaScript를 링크할 수 있습니다.
트래킹하려는 모든 페이지의 <head> 태그 내에 다음 코드를 추가하세요.
<head>
<!-- Using the latest SDK version -->
<script src="https://web-sdk-cdn.singular.net/singular-sdk/latest/singular-sdk.js">
</script>
</head>
주의: 위 코드는 가장 최신 SDK 버전으로 링크합니다. 특정 SDK 버전의 사용을 원하는 경우 다음 코드를 사용하세요:
<head>
<!-- Using a fixed SDK version -->
<script src="https://web-sdk-cdn.singular.net/singular-sdk/1.3.5/singular-sdk.js">
</script>
</head>
NPM으로 설정
- 프로젝트의 루트 디렉터리에서 `npm i singular-sdk`를 실행하거나, package.json 파일의 디펜던시에 `"singular-sdk": "^1.3.5"`를 추가한 후 `npm install`을 실행하세요.
- SDK를 사용하려는 스크립트 내에 다음 코드를 추가합니다.
import {singularSdk, SingularConfig} from "singular-sdk";
SDK 초기화
SDK 초기화 코드는 페이지가 로딩될 때마다 호출돼야 합니다. 이는 모든 Singular 어트리뷰션 기능을 사용하기 위한 전제 조건으로 다음 활동을 수행합니다.
- Singular에 새 페이지 방문(page visit)을 전송합니다.
- 유저가 새로운 광고 데이터를 통해 방문하거나 세션 타임아웃이 지난 이후에 방문한 경우 새로운 유저 세션을 생성합니다.
페이지 방문과 유저 세션은 유저 리텐션 계산 및 리인게이지먼트 어트리뷰션 활성화에 사용됩니다.
1. SingularConfig 오브젝트 생성
SDK를 초기화하기 전 SingularConfig를 먼저 생성해야 합니다. 이 오브젝트는 다음 내용을 포함합니다.
- API Key, API Secret, Product Id
- SDK 환경 설정을 선택적으로 지정 가능
기본적인 SingularConfig 오브젝트를 생성하려면 다음 코드를 사용하세요.
const config = new SingularConfig(apiKey, secretKey, productId);
기본 설정 외에도 Singular에서 제공하는 다양한 기능을 선택적으로 추가할 수 있습니다.
이 경우 SingularConfig 오브젝트의 ".with" 메서드를 사용할 수 있습니다. 다음 예시와 같은 형태입니다.
// Singular에 유저 ID를 전달하도록 SDK 설정
const config = new SingularConfig(apiKey, secretKey, productId)
.withCustomUserId(userId);
SingularConfig 메서드 참조
".with" 메서드에서 설정 가능한 다양한 옵션을 아래 표에서 확인하세요.
메서드 | 정의 | 비고 |
.withCustomUserId(customId) | Singular에 유저 ID 전송 | 유저 ID 설정 |
.withProductName(productName) | 프로덕트 디스플레이 네임 (선택 사항) | |
.withLogLevel(logLevel) | 로그 레벨 설정: 0 - None(기본값); 1 - Warn; 2 - Info; 3 - Debug. | |
.withSessionTimeoutInMinutes (timeout) | 세션 타임아웃을 분 단위로 설정 (기본값: 30분) |
|
.withAutoPersistentSingularDeviceId (domain) | 자동 크로스-서브도메인 트래킹 활성화 | 쿠키를 사용한 자동 저장(Auto-Persist) |
.withPersistentSingularDeviceId (singularDeviceId) | 수동 크로스-서브도메인 트래킹 활성화 | Singular 디바이스 ID 수동 설정 |
.withInitFinishedCallback(callback) | SDK 초기화가 완료된 경우 콜백 호출 | 초기화가 완료되면 콜백 호출 |
2. Singular 초기화
SingularConfig 오브젝트를 생성한 후 init 메서드를 사용해서 Singular를 초기화하고 SingularConfig 오브젝트를 전달할 수 있습니다.
코드의 어느 지점에서라도 init 메서드를 호출할 수 있지만 반드시 이벤트를 전달하기 전에 호출해야 합니다. 트래킹할 각 페이지의 로딩 중에 호출하는 것을 권장합니다.
init 메서드 |
|
---|---|
정의 | SingularConfig 오브젝트에 설정된 구성으로 SDK 초기화 |
메서드 | init(config) |
사용예 |
|
중요: 단일 페이지 애플리케이션(SPA, Single Page Applications)에서는 다른 페이지로 라우팅할 때마다 singularSdk.pageVisit()를 호출해야 합니다. 또한 singularSdk.init를 통해 page visit이 전달되므로 첫 페이지에서는 singularSdk.pageVisit()을 따로 호출하지 않아야 합니다.
초기화가 완료될 때 콜백 함수 호출
초기화가 완료된 시점에 콜백 함수 호출을 설정하려면 SingularConfig 객체의 .withInitFinishedCallback(callback) 메서드를 사용하세요.
withInitFinishedCallback 메서드 | |
---|---|
정의 | 초기화 프로세스가 완료되면 호출되도록 콜백 설정 |
메서드 | withInitFinishedCallback(callback) |
사용예 |
|
선택 사항: 유저 ID 설정
Singular SDK를 사용하여 앱에서 Singular로 유저 ID를 전달할 수 있습니다. 유저 ID는 유저네임, 이메일 주소, 랜덤 생성 문자열 등 유저를 식별하는 어떤 값이라도 가능합니다.
Singular로 전달한 유저 ID는 유저레벨 데이터를 추출하거나 고객사가 내부 BI 포스트백을 설정한 경우 포스트백 내의 데이터 형태로 전달될 수 있습니다.
Singular에 유저 ID를 보내려면 다음 두 가지 방법 중 하나를 사용하세요.
권장 사항: 웹사이트가 열리는 시점에 유저 ID를 알 수 있다면 SDK를 초기화하기 전에 SingularConfig 오브젝트에 유저 ID를 설정하세요. 이를 통해 최초의 page visit 부터 유저 ID를 확인할 수 있습니다.
const config = new SingularConfig("apikey","secret",“productId”)
.withCustomUserId("custom_user_id");
singularSdk.init(config);
또는 실행 중 언제든지 login 메서드를 호출할 수도 있습니다. 유저 ID를 확인 가능한 시점에 바로 호출하기를 권장합니다.
주의:
- 유저 ID는 logout 메서드를 호출하거나 유저가 로컬 저장소를 삭제하기 전까지 유지됩니다.
- 웹사이트를 닫거나 새로고침하는 것으로는 유저 ID 설정이 해제되지 않습니다.
- Incognito처럼 프라이빗 모드로 브라우징하는 경우 브라우저가 닫히면 자동으로 로컬 저장소가 삭제되므로 유저 ID가 저장되지 않습니다.
login 메서드 |
|
---|---|
정의 | Singular에 유저 ID 전송 |
메서드 | login(customUserId) |
사용예 |
|
logout 메서드 |
|
정의 | Singular로 전송된 유저 ID를 해제 |
메서드 | logout() |
사용예 |
|
선택 사항: 이벤트 및 매출 트래킹
이벤트 트래킹
캠페인 성과를 분석하고 KPI를 측정하기 위해 Singular를 통해 앱 내의 이벤트 데이터를 수집할 수 있습니다. 예를 들어 고객사는 유저 로그인, 회원 가입, 튜토리얼 완료 등과 같은 데이터를 수집하기를 원할 수 있습니다.
이 경우 event 메서드를 사용해서 Singular에 이벤트를 전송할 수 있습니다.
주의:
- 서드 파티 파트너 및 외부 분석 솔루션과의 호환성을 위해 이벤트 이름과 속성에는 영어를 사용하세요.
- 이벤트 이름은 32자 이하의 ASCII 캐릭터로 제한됩니다. ASCII 캐릭터가 아닌 문자열은 UTF-8로 변환되었을 때 32 byte 미만이어야 합니다.
- 속성과 값은 500자 이하의 ASCII 캐릭터로 제한됩니다.
event 메서드 |
|
---|---|
정의 | 트래킹을 위해 추가 정보를 포함 혹은 비포함하여 이벤트를 Singular로 전송. |
메서드 | singularSdk.event(eventName, args)
주의: 'args'는 JavaScript의 맵 오브젝트입니다. 추가 아규먼트 없이 이벤트를 보내려면 이벤트 이름만을 포함하여 event 메서드를 호출하세요.
|
사용예 |
|
매출 트래킹
캠페인 성과 및 캠페인 ROI를 분석하기 위해 Singular를 통해 웹사이트에서 획득한 매출 데이터를 수집할 수 있습니다. 수집하는 경우 Singular의 리포트, 로그 익스포트, 포스트백을 통해 해당 데이터를 확인할 수 있습니다.
매출 이벤트 전송에는 revenue 메서드를 사용할 수 있습니다. 커스텀 이벤트 이름으로 매출 이벤트를 전달하면 Singular 리포트에서 여러 가지 매출 이벤트 유형을 분류해서 볼 수 있습니다.
주의: 매출을 여러 다른 통화 단위로 보내더라도 데이터 확인 시에는 Singular 계정에 설정한 고객사의 통화 단위로 자동으로 변환되어 표시됩니다.
revenue 메서드 |
|
---|---|
정의 | 추가 정보를 포함하여 Singular에 매출 이벤트 전송 |
메서드 | singularSdk.revenue(eventName, currency, amount, args)
주의:
|
사용예 |
|
선택 사항: 크로스-서브도메인 트래킹
기본적으로 Singular Website SDK는 Singular 디바이스 ID(SDID)를 생성하고 브라우저 스토리지에 저장합니다. 해당 스토리지는 서브도메인간 공유되지 않으므로 SDK는 각 서브도메인마다 새로운 ID를 생성하게 됩니다.
서브도메인 사이에 Singular 디바이스 ID를 저장하고자 한다면 다음 중 하나의 옵션을 사용하세요.
메서드 A: 쿠키를 사용한 자동 저장(Auto-Persist)
커스텀 퍼스트 파티 쿠키를 사용해서 Singular SDK가 Singular 디바이스 ID를 저장하도록 할 수 있습니다. 트래킹할 메인 도메인에 다음 메서드를 설정하세요.
withAutoPersistentSingularDeviceId 메서드 | |
---|---|
정의 | Singular 디바이스 ID를 자동 저장할 메인 도메인을 포함한 설정 옵션으로 SDK를 초기화 |
메서드 | withAutoPersistentSingularDeviceId(domain) |
사용예 |
|
메서드 B (고급 사항): Singular 디바이스 ID 수동 설정
Singular SDK가 디바이스 ID를 자동으로 저장하기를 원하지 않는다면 수동으로 각 도메인간 ID가 저장되도록 할 수 있습니다. 예를 들어 Singular에서 ID값(유효한 uuid4 형식)을 생성한 후, 탑레벨 도메인 쿠키나 서버 사이드 쿠키 등을 사용해서 다른 쪽으로 직접 ID 값을 넘기는 방식입니다.
주의: 초기화 메서드를 호출하거나 InitFinishedCallback를 사용한 이후 시점에 singularSdk.getSingularDeviceId() 메서드를 사용해서 Singular 디바이스 ID를 읽을 수 있습니다.
withPersistentSingularDeviceId 메서드 | |
---|---|
정의 | 저장하고자 하는 Singular 디바이스 ID를 포함한 설정 옵션으로 SDK 초기화 |
메서드 | withPersistentSingularDeviceId(singularDeviceId) |
사용예 |
|
커스텀 유저 ID 디바이스 매핑
중요 사항: 이 기능은 고급 사양이므로 구현 전 Singular의 솔루션 엔지니어와 상의하세요.
Singular는 추가적인 웹 트래킹 데이터를 서버 투 서버 연동을 통해 받을 수 있습니다. 본 기능을 사용하려면 커스텀 유저 ID를 Singular의 웹 트래킹 식별자와 매핑해야 합니다.
주의: 이 메서드를 Singular SDK 초기화 직후 혹은 커스텀 유저 ID를 사용할 수 있는 가장 빠른 시점에 호출하세요.
setDeviceCustomUserId 메서드 | |
---|---|
정의 | 로그인과 동일하게 커스텀 유저 ID를 설정하고 Singular의 웹 트래킹 ID와 매핑 |
메서드 | singularSdk.setDeviceCustomUserId(userId) |
사용예 |
|