작성자
Ira Holubovska
구매하기 전 고객은 온·오프라인의 다양한 채널을 통해 브랜드와 상호작용합니다. 이로 인해 마케터와 분석 전문가는 이러한 상호작용을 한곳에서 추적하기 어려울 수 있습니다. Google Analytics나 Matomo 서버 측 추적과 같은 표준 도구는 오프라인 이벤트를 추적하지 못하는 경우가 많습니다. 이 문제를 해결하기 위해 일반적으로 고객 데이터 플랫폼(CDP)을 사용합니다.
CDP를 사용하는 한 가지 방법은 기성 도구를 구매하는 것이지만 비용이 많이 들 수 있습니다. 또 다른 방법은 자체 CDP를 구축하는 것입니다. 이번 블로그 글에서는 서버 Google Tag Manager와 데이터베이스를 사용하여 간단한 버전의 CDP를 구축하는 방법을 보여드리겠습니다.
이러한 설정을 통해 모든 고객 정보를 한곳에 통합할 수 있어 고객을 더 쉽게 이해하고 효과적으로 다가갈 수 있습니다. 추적이 처음이든 숙련된 전문가이든, 이 가이드는 고객 데이터 관리 방식을 크게 개선하는 CDP를 구축하는 데 도움이 될 것입니다.
서버 Google Tag Manager 컨테이너는 온라인이든 오프라인이든 모든 사용자 상호작용에 대한 요청을 수신합니다. GA4 또는 Data Client와 같은 표준 클라이언트를 사용하여 웹 GTM에서 온라인 이벤트를 수신할 수 있습니다. 오프라인 이벤트를 가져오려면 웹훅을 사용할 수 있습니다. 글 후반부에서 sGTM 내에서 웹훅 데이터를 전송하고 디버깅하는 방법을 보여드리겠습니다.
sGTM은 어떤 유형의 데이터를 수신하든 해당 데이터를 데이터베이스에 저장합니다. sGTM과 연동할 수 있는 데이터베이스로는 Firebase, Supabase(Firestore보다 훨씬 저렴함) 또는 Data Store 등이 있습니다. 여기서는 Stape의 기본 내장 기능이며 Stape 유료 고객(Pro 플랜 이상)에게 무료로 제공되는 Stape Data Store를 사용하겠습니다.
sGTM 및 저장소 외에도 고유 사용자 식별자를 활용하여 단일 사용자의 데이터를 동일한 문서에 저장할 수 있도록 지원합니다.
1. 데이터 소스 (CRM, SDK, CMS, 모바일 앱, 웹사이트 등).
2. 서버 GTM 컨테이너.
3. 데이터베이스 (이 가이드에서는 Data Store를 사용합니다. Stape에서 제작한 Supabase writer 태그가 지원되는 Firestore나 Supabase를 활용할 수도 있습니다).
4. 데이터베이스에서 데이터를 읽고 쓰기 위해 다음 sGTM 템플릿을 사용할 수 있습니다.
5. 고유 사용자 식별자. 이 가이드에서는 고유 User ID 또는 Stape WordPress 플러그인이 생성하는 WordPress 사용자 ID를 사용합니다.
데이터 소스(CRM)에서 CDP로 사용자 데이터가 전달되는 흐름은 다음과 같습니다.

데이터 수신 방법은 sGTM으로 데이터를 전송하는 방식에 따라 달라집니다. 데이터를 수신하는 세 가지 방법은 다음과 같습니다.
이 부분이 가장 까다롭고 중요한 단계입니다. 적절한 CDP를 구축하려면 사용자와 브랜드 간 상호작용에 대한 정확한 데이터가 필요합니다. CDP에는 최신 정보와 중복되지 않은 명확한 데이터가 포함되어야 합니다. 이러한 사용자 프로필 시스템을 구축하려면 적절한 User ID가 필요합니다.
식별된 사용자의 경우 여러 시스템에서 교차 사용할 수 있는 이메일이나 내부 ID를 사용할 수 있습니다. 식별되지 않은 사용자의 경우 다음 항목의 해시로 구성된 Stape User ID를 사용할 수 있습니다.
브랜드에서 여러 도메인을 운영하는 경우 User ID 파워업에서 Cross-domain ID 옵션을 활성화할 수도 있습니다. 이 옵션은 동일한 신호에서 호스트 이름을 제외하고 추가 ID(X-Stape-Cross-Domain-Id)를 생성하므로, 동일한 미식별 사용자가 서버 컨테이너에 연결된 모든 도메인에서 하나의 ID를 부여받게 됩니다. 이는 CDP에서 프로필이 중복 생성되는 것을 방지하는 데 도움이 됩니다.
개인정보 보호 규정 준수를 위해 User ID의 고유성을 더욱 높이고자 한다면 종속 변수를 추가할 수 있습니다. 일, 월, 주, 연도 등이 될 수 있으며, ID의 고유성을 어느 정도로 설정할지에 따라 달라집니다.
요청 및 데이터베이스의 사용자 프로필을 병합하고 스티칭하기 위해 reStore 변수 또는 Stape Store Writer 태그와 Stape Store Lookup 을 사용합니다. 해당 템플릿의 사본은 Stape GitHub에서도 확인할 수 있습니다.
Writer 태그와 lookup 변수는 이름 그대로 직관적입니다. 이 두 템플릿을 사용하면 Data Store에서 데이터를 읽고 쓸 수 있습니다.
restore 변수는 먼저 데이터베이스에 사용자가 존재하는지 확인합니다. 우선 이 변수는 이벤트에서 모든 사용자 식별자(이메일, 전화번호 또는 클라이언트 ID)를 가져옵니다. 그런 다음 저장소에 쿼리를 전송하여 해당 식별자 중 하나를 가진 고객을 조회합니다. 데이터베이스에 해당 고객에 대한 정보가 있으면 해당 고객에 대한 데이터를 반환합니다.

변수가 Store로부터 응답을 받으면, 이를 수신된 요청과 병합합니다. 예를 들어 city 필드가 없는 경우 Store의 해당 필드가 사용됩니다. 수신된 요청에 city 필드가 있지만 Store에 없거나 값이 다른 경우, 해당 필드에 대한 요청의 데이터가 저장소에 기록됩니다. 고객이 저장소에서 부분적으로 발견되면 이 변수는 새 엔티티를 생성합니다.

sGTM에서 데이터가 처리되고 sGTM 형식으로 구성되면, Meta, TikTok, Google Ads 또는 Google Analytics 등 원하는 벤더로 데이터를 전송하는 데 사용할 수 있습니다. 요청을 통해 전송되는 사용자 데이터에 유의하십시오.
sGTM에서의 디버깅은 까다로우며, 오프라인 이벤트는 훨씬 더 복잡할 수 있습니다. 다음 항목들을 사용하는 방법을 살펴보겠습니다:
Data Store의 활용 방식을 보여드리기 위해 두 가지 사용 사례를 소개해 드리겠습니다. 이는 Stape 고객들이 가장 많이 사용하는 시나리오입니다.
1. User ID 설정. 사용자를 고객과 병합하는 데 도움이 되는 Stape User ID 파워업을 사용합니다.
a. Stape 계정에 로그인하고 파워업을 활성화하십시오. 활성화하려면 sGTM 컨테이너를 열고, 파워업 탭을 클릭한 후, User ID를 열고 토글 스위치를 켠 다음 저장하십시오.

b. Server GTM 컨테이너에서 서버의 요청 헤더로부터 User ID를 가져오는 변수를 생성하십시오.

2. 구매 이벤트 발생 시 데이터베이스에 데이터 기록. 이벤트 데이터에 Stape User ID를 추가해야 합니다.
a. sGTM 템플릿 갤러리에 Stape store writer 태그를 추가하고(GitHub에서 다운로드한 후 sGTM 태그 템플릿 섹션으로 가져오기) 구매 이벤트 발생 시 이벤트 데이터를 기록하는 태그를 생성하십시오. 저는 모든 이벤트 데이터를 기록하고 저장소 레코드에 Stape User ID를 추가하고 있습니다. 이는 pageview 이벤트에서 사용자를 병합하는 데 필요합니다.

b. 태그가 정상적으로 작동했다면 아래 스크린샷과 유사한 레코드가 데이터베이스에 표시됩니다.

3. Data Store에 저장된 데이터로 페이지뷰 이벤트 데이터를 보강하십시오.
a. 페이지뷰 이벤트의 사용자와 데이터베이스에 저장된 사용자를 병합하기 위해, 스토어에서 데이터를 가져올 수 있는 Stape User ID와 Stape Store Lookup 변수를 다시 사용합니다. Stape Store Lookup 변수를 sGTM 변수 템플릿 갤러리에 추가하십시오. GitHub에서 템플릿을 다운로드하려면 sGTM 템플릿 섹션으로 이동하십시오. 변수 섹션에서 New를 클릭한 다음 Import를 클릭하십시오.

b. 복원하려는 매개변수(ad document path 및 path name)에 대해 Stape Store Lookup 변수를 생성하십시오.

c. 페이지뷰 태그에 Lookup 변수를 추가하십시오.

4. 설정을 테스트하십시오. sGTM 컨테이너에서 트리거된 태그에 보강된 사용자 데이터가 표시되어야 합니다.

이 활용 사례에서는 오프라인 이벤트 데이터를 광고 네트워크로 전송하고자 합니다. 광고주 플랫폼에 전환 데이터를 전송할 때 중요한 요소는 클릭 ID를 전송하는 것입니다. 클릭 ID는 사용자가 광고 링크를 클릭할 때 URL 또는 쿠키에 추가되는 식별자입니다. 클릭 ID를 활용하면 광고 네트워크가 전환을 광고 캠페인에 쉽게 귀속시킬 수 있습니다.
모든 웹 이벤트에서 Click ID를 사용할 수 있지만, CRM이나 CMS의 전환 데이터를 광고 네트워크로 전송하려는 경우 대부분의 상황에서는 Click ID를 사용할 수 없습니다.
이 옵션을 구성하기 위해 Stape restore variable을 사용하여 페이지뷰 시 Data Store에 데이터를 기록하고 구매 이벤트 시 데이터를 복원하겠습니다. 그 외에도 Facebook으로 전송되는 이벤트를 보강하기 위해 sGTM 컨테이너에서의 변환이 필요합니다. 또 다른 중요한 요소는 페이지뷰 이벤트의 사용자와 오프라인 구매 웹훅의 사용자를 일치시키는 것입니다. 이를 위해서는 웹 페이지뷰 이벤트와 오프라인 구매 전반에서 동일하게 유지되는 사용자 식별자를 사용해야 합니다.
표준 CMS에서는 쿠키에 이러한 유형의 식별자가 포함되어 있는 경우가 많으므로 이를 쉽게 구현할 수 있습니다. 고객 웹사이트의 경우 개발자에게 이러한 매개변수를 추가하도록 요청해야 합니다. 저의 설정은 WordPress 사이트에서 진행되었습니다. Stape WordPress 플러그인은 웹 이벤트에서 고유한 사용자 ID를 전송하고 이를 웹훅에 추가합니다. 이 사용자 ID를 사용하면 데이터베이스에서 페이지뷰의 사용자와 구매 웹훅의 사용자를 매칭할 수 있습니다.
1. sGTM 내에서 오프라인 데이터 소스로부터 구매 웹훅 수신
a. CRM에서 웹훅을 전송합니다. 이를 위해 Stape WordPress app을 사용하겠습니다. Webhooks 탭으로 이동하여 Server GTM 컨테이너 URL을 추가하십시오. 이는 서버 GTM 컨테이너에 사용하는 도메인입니다. 퍼스트 파티 쿠키 설정을 지원하므로 웹사이트 도메인 내에 커스텀 도메인을 설정하는 것을 권장합니다. 체크박스를 선택하는 것을 잊지 마십시오.

b. sGTM 클라이언트 템플릿에 Data client를 추가하고 CRM에서 전송하는 웹훅을 가져오도록 구성하십시오. 이렇게 하려면 Data Client 템플릿을 생성하고 Webhook 경로를 추가하십시오.

c. sGTM으로 수신되는 웹훅을 디버깅하기 위해 Stape에서 sGTM Preview Header config 파워업을 구성하십시오. sGTM 미리보기로 이동하여 오른쪽 상단의 점 세 개를 클릭하고 'Send requests manually'를 클릭하십시오. X-Gtm-Server-Preview HTTP 헤더를 복사하여 sGTM Preview Header config 파워업에 붙여넣으십시오.


d. sGTM 디버거를 열고 웹훅이 수신되는지 테스트하십시오. 웹훅이 트리거되면 sGTM 내에 수신 요청이 표시되고 데이터 클라이언트가 해당 요청을 처리했음을 확인할 수 있습니다.

2. 페이지뷰 이벤트의 fbc, fbp 및 client ID 매개변수를 데이터베이스에 기록하십시오.
이 단계에서는 reStore 변수를 사용하여 fbc 및 fbp 매개변수를 데이터베이스에 기록하는 방법을 설명합니다. 이를 위해 Facebook 페이지뷰 태그를 사용하여 페이지뷰 이벤트를 트리거하고, restore 변수를 사용하여 스토어에 데이터를 기록하는 변환을 사용합니다.
a. 이 링크를 사용하여 sGTM 변수에 restore 변수를 추가하십시오. GitHub에서 다운로드한 후 sGTM에서 새 변수 템플릿을 생성하고 가져오기를 클릭해야 합니다.
b. restore 변수를 구성하십시오. WordPress User ID와 식별자를 사용하고 fbp, fbc 및 WordPress User ID를 스토어에 기록해야 합니다.

c. restore 변수를 사용하여 Facebook 페이지뷰 이벤트의 이벤트 데이터를 보강하는 변환을 생성하고, 이 변환을 FB 페이지뷰 태그에 추가하십시오.

d. 설정을 테스트하십시오. 모두 올바르게 구성되었다면 Data Store에 데이터가 기록된 것을 확인할 수 있습니다.

e. 웹훅이 수신될 때마다 트리거되는 Facebook purchase 이벤트를 설정하십시오. Data Store의 데이터로 이 이벤트를 보강하려면 변환과 함께 FB pageview 이벤트의 변환에 사용했던 것과 동일한 restore 변수를 사용해야 합니다. 이렇게 하면 purchase 이벤트에서 필요한 매개변수가 추출됩니다. 하지만 Facebook이 인식할 수 있는 형식으로 데이터를 전송하려면 restore 변수에서 필요한 객체를 추출하는 object extractor 변수를 사용해야 합니다.



f. 설정을 테스트하십시오. 모든 것이 올바르게 작동하면 Facebook으로 또는 purchase 오프라인 이벤트에서 fbc 및 fbp 매개변수가 성공적으로 전송된 것을 확인할 수 있습니다.


Data Store를 활용하면 고객 데이터베이스나 CDP를 구축할 수 있습니다. 고객으로부터 얻을 수 있는 모든 정보를 손쉽게 수집하고 저장하는 방법을 제공하므로, 더 나은 분석 양식을 구성하거나 유료 캠페인 성과를 개선하는 데 도움이 됩니다. 고객 데이터를 보강하고 강화하면 고객의 행동과 선호도에 대한 인사이트를 얻을 수 있으며, 이는 마케팅 전략을 개선하는 데 도움이 됩니다.
서버 측 트래킹을 사용해 보시겠습니까?
무료로 체험하기
댓글