“Deep Dive on Technical Solution” 시리즈는 크리테오 솔루션의 작동 원리에 대한 이해를 돕고자 마련되었습니다. 크리테오의 매니지먼트 센터(Management Center)에서 고객분들이 더 많은 기능을 활용할 수 있게 되면서, 크리테오가 어떻게 작동하는 지를 이해하는 것이 앞으로 더 중요해질 것입니다. 이 시리즈를 통해 크리테오의 관련 지식을 넓히고 고객사의 비즈니스 목표를 달성하는 데 도움이 되기를 바랍니다.
태그란?
마케팅 및 광고 산업의 맥락에서 태그는 종종 픽셀이라고 불리며 방문자의 브라우징 행동을 수집하기 위해 웹사이트에 구현된 짧은 자바스크립트/HTML 코드입니다. 수집된 정보는 종종 각각의 마케팅 또는 광고 목표를 달성하기 위한 리포팅 또는 처리에 사용이 됩니다.
태그는 마케팅 또는 광고 캠페인을 운영함에 있어 필수적이나, 종종 태그의 중요성이 과소평가 되곤 합니다. 태그는 모든 솔루션의 기반이므로 실제로 작동하는 방식을 이해하는 것이 매우 중요합니다.
크리테오 OneTag
크리테오에서 광고 캠페인을 운영하려면 태그를 구현해야 합니다. 그리고 크리테오는 OneTag라는 고유한 태깅 솔루션을 가지고 있습니다. 위에서 언급했듯이 태그의 적절한 구현은 캠페인의 실적에 직접적인 영향을 미치므로 매우 중요합니다. 따라서 크리테오 OneTag를 더 잘 이해할 수 있도록 OneTag 구조의 세부 사항을 설명드리고자 합니다.
크리테오 OneTag는 다른 태그와 마찬가지로 자바스크립트의 일부이며 두 가지 중요한 부분으로 구성이 됩니다.
- 로더
- 트래커
로더 부분은 모든 태그에서 공동적으로 필요한 자바스크립트 라이브러리이며 트래커가 제대로 작동하기 위해 필요합니다. 반면에 트래커 부분은 다양한 페이지 유형에 따라 필요한 매개 변수를 전달하는 역할을 합니다. 로더와 트래커 부분에 대한 이해를 돕기 위해 로더 부분은 봉투로, 트래커 부분은 편지지로 볼 수 있습니다. 편지를 보낼 때 편지지(내용) 없이 보낼 수는 있지만 그렇다면 아무런 의미가 없을 것입니다. 편지지 또한 적절한 편지봉투 없이는 편지를 보내는데 무리가 있습니다. 즉, 태그가 제대로 작동을 하려면 로더와 트래커 부분은 상호 의존적이라고 보시면 됩니다.
아래 예제는 로더 부분의 코드입니다. 보이는 것과 같이 매우 간단합니다. 단순히 자바스크립트 라이브러리를 호출하는 데 사용되기 때문입니다.
트래커 부분의 경우 약간 복잡해지긴 하지만 쉽게 말씀드리면 이벤트 개체의 목록일 뿐입니다. 그리고 이벤트 객체는 크리테오에 전달하는 실제 매개 변수입니다. 트래커 부분에서는 또 두 가지 유형의 이벤트로 더 세분화할 수 있으며 다음과 같습니다.
- 공통 이벤트
- 페이지 별 이벤트
이름에서 알 수 있듯이 공통 이벤트는 페이지 유형에 관계없이 모든 태그에 공통적으로 필요한 이벤트입니다. 그러나, 페이지 별 이벤트는 웹사이트의 다른 페이지 유형에 따라 업데이트해야 하는 이벤트이며 아래 코드 예제는 가장 일반적인 상품 상세 페이지 유형의 트래커 부분입니다.
위 예제 코드를 보시면 이미 알 수도 있지만 일반적인 이벤트는 처음 세 가지 이벤트이며 다음과 같습니다.
- setAccount
- setEmail
- setSiteType
공통 이벤트는 각 이벤트 객체가 특정 목적을 수행하기 때문에 태그가 구현된 모든 페이지에 필요합니다. “setAccount” 이벤트는 해당 태그가 어떠한 광고주로부터 오는지 이해하기 위해 필요합니다. 따라서 이벤트 값은 크리테오가 자주 얘기하는 “파트너 아이디”여야 합니다. 값은 정적으로 설정이 되며 이후에는 업데이트를 하면 안 됩니다. 만약 이 값을 잘못 입력하면, 이벤트 손실이 발생할 수 있으므로 올바른 값으로 잘 설정이 되어야 합니다.
다음 “setEmail” 이벤트는 “setAccount” 이벤트처럼 필수는 아니지만 모든 클라이언트에게 강력히 권장되는 이벤트입니다. 이 이벤트는 크리테오가 브라우저 또는 디바이스 수준 뿐만 아니라 사용자 수준에서 웹사이트 방문자를 더 잘 타겟팅 할 수 있도록 도와주며, 캠페인의 성과에 영향을 미치기 때문입니다. 또한, 이메일을 전달하는 것은 고객이 크리테오의 퍼스트파티 데이터에 연결하고, 쿠키가 없는 잠재 고객을 활성화할 수 있도록 해줍니다. 그리고, 세계 최대의 오픈 쇼핑객 데이터 세트인 크리테오 쇼퍼 그래프를 최대한 활용하기 위해 권장되는 설정이기도 합니다. 크리테오의 퍼스트파티 데이터 및 퍼스트파티 미디어 네트워크에 대한 자세한 설명은 크리테오의 최고 제품 책임자(Chief Product Officer)인 토드 파슨즈(Todd Parsons)의 블로그를 참고 부탁드립니다.
“setSiteType” 이벤트는 웹사이트 방문자가 어떤 데스크톱, 태블릿 또는 모바일 디바이스를 사용하고 있는지 이해하기 위해 필요한 이벤트입니다. 웹사이트 방문자가 데스크톱을 사용하는 경우 “d”값을 전달하고 태블릿 및 모바일에 대해서는 “t” 및 “m”을 각각 전달해야 합니다. 클라이언트는 자신의 로직을 기반으로 값을 전달할 수 있지만 크리테오는 유저 에이전트(user-agent)를 기반으로 구별하기 위해 아래 샘플 코드로 안내하고 있습니다.
위의 트래커 예제에서 마지막 줄은 페이지 별 이벤트입니다. 이 예에서 크리테오가 호출하는 것은 “viewItem” 이벤트이지만 OneTag에는 총 5개의 서로 다른 페이지별 이벤트를 제공합니다.
- viewHome (홈페이지 태그)
- viewList (리스팅 태그)
- viewItem (상품 태그)
- viewBasket (장바구니 태그)
- trackTransaction (세일즈 태그)
“viewHome”을 제외한 모든 페이지 별 이벤트에는 전달할 매개 변수가 있습니다. 방문자를 정확하게 타겟팅하려면 이러한 매개 변수를 정확하게 전달해야 합니다. 이 글에서는 통합 가이드에서 이미 자세히 설명된 페이지 별 매개 변수에 대한 자세한 내용은 설명하지 않겠습니다. 하지만, 모든 유형의 태그는 태그가 존재하는 목적이 있기 때문에 사용 가능한 모든 페이지 유형에 모든 태그를 구현하는 것은 매우 중요합니다. 예를 들어 “viewHome”이벤트는 단순히 홈페이지를 보는 것과 같이 기여도가 가장 낮은 방문자를 타겟팅 하는 것이지만, “viewBasket”이벤트는 실제로 구매에 가장 가까운 기여도가 높은 방문자를 위한 것입니다. 이 부분 또한, 지원 센터 문서의 “크리테오 OneTag가 사이트 페이지를 학습하는 방법” 섹션에 잘 설명되어 있으므로 필요한 경우 페이지를 참조 부탁드립니다.
페이지 별 이벤트에 대한 설명으로 OneTag의 코드 구조 설명은 끝이 났지만, 로더와 트래커 간의 자세한 상호 작용은 아직 설명하지 않았습니다. 다음 섹션에서는 이벤트가 크리테오로 전송되는 방식에 대한 전반적인 흐름을 설명하면서 로더와 트래커가 어떻게 상호 작용하고 있는지 말씀드리도록 하겠습니다.
OneTag는 어떻게 작동하는가?
위에서 로더와 트래커의 용도를 설명하고 각각 봉투와 편지지로 표현했습니다. 이제 봉인된 편지를 웹사이트에서 크리테오로 보내야 하며 이는 위젯 콜(widget call)을 통해 이루어집니다. 태그 코드가 웹사이트에 로드되면, 트래커 부분에 정의된 이벤트가 URL 형식으로 만들어지고 크리테오로 데이터를 전송하게 됩니다. 위젯 콜의 예는 다음과 같습니다.
보시다시피 요청된 도메인은 크리테오가 소유한 sslwidget.criteo.com입니다. 그리고 트래커 부분에 정의된 이벤트는 URL의 파라미터(URL 디코딩 형식)로 전달됩니다. 대부분의 시나리오에서 OneTag는 페이지 로드 시 구현되므로 이 위젯 콜도 페이지가 로드될 때 동시에 이뤄지게 됩니다. 아래의 전체 프로세스는 OneTag를 사용하여 페이지를 로드하는 동안 실제로 일어나는 일입니다.
- 사용자가 웹사이트를 방문하고 페이지가 로드됨
- 로더는 먼저 criteo.net에 호출되어 관련 자바스크립트를 반환함
- 다음으로 트래커가 호출되어 위젯 콜의 URL을 생성하고 criteo.com에 요청이 일어남
- 웹사이트에 쿠키가 삭제되고 업데이트됨
물론 이 이후에도 더 많은 프로세스가 진행이 되지만, 이 글에서는 OneTag의 이해 및 광고에 주는 영향을 목적으로 쓰였으므로 더 깊게 들어가지는 않겠습니다.
OneTag가 광고에 주는 영향은?
올바른 태그 설치가 매우 중요하며 캠페인 실적에 직접적인 영향을 미친다는 부분은 이미 설명을 드렸습니다. 그러나, 퍼포먼스에 영향을 미치는 이유에 대해서는 자세히 설명하지 않았습니다. 이 섹션에서는 태그가 크리테오의 광고에 어떤 영향을 미치는지 좀 더 자세히 설명드리도록 하겠습니다.
오디언스 규모
OneTag의 주요 목적은 방문자를 추적하는 것이었기 때문에 당연히 오디언스 규모에 영향을 주게 됩니다. 모든 페이지에 구현된 태그는 더 큰 오디언스를 구축할 수 있도록 하며, 더 큰 오디언스는 크리테오가 클릭하고 구매할 가능성이 있는 방문자를 선택하고 타겟팅 할 수 있는 옵션이 많이 생기는 것임을 의미합니다. 따라서 캠페인의 성과가 더 높아질 가능성이 커지게 됩니다.
오디언스 품질
OneTag는 또한 다양한 페이지 유형에 대해 다양한 매개 변수를 수집합니다. 정확한 정보를 전달하면 크리테오가 보다 정확한 방문자의 의도 데이터를 파악할 수 있습니다. 큰 오디언스 규모가 있지만, 오디언스의 의도 데이터의 품질이 좋지 않으면 당연히 정확한 리타겟팅을 할 수 없고 그로 인해 성과는 저하될 수밖에 없습니다. 크리테오의 머신러닝 알고리즘이 아무리 우수하더라도 잘못된 데이터가 들어가게 되면 잘못된 결과가 나올 수 밖에 없습니다.
오디언스 세분화
일부 사용 사례에서는 특정 방문자 그룹을 대상으로 타겟팅 해야 할 필요가 있습니다. 크리테오는 고객이 일부 추가 데이터를 태그에 전달할 수 있도록 하여 오디언스를 세분화할 수 있습니다. 이러한 방식으로 크리테오는 해당 세그먼트만을 기준으로 타겟팅하고 최적화를 하게 됩니다.
상품 추천
상품에 대한 방문자의 기여는 크리테오로 전송되며, 이를 통해 크리테오는 방문자의 관심사와 구매 패턴을 파악할 수 있습니다. 크리테오 쇼퍼 그래프의 방대한 양의 데이터를 통해 추천 엔진은 방문자가 가장 관심을 가지고 구매할 가능성이 높을 제품을 순서대로 추천합니다.
리포팅
크리테오는 또한 태그의 데이터를 사용하여 고객에게 필요한 데이터를 리포팅합니다. 태그가 정확하게 구현되지 않으면 리포팅 데이터가 손상되어 부정확한 정보들 전달하게 되며, 잘못된 결정을 내리게 됩니다.
결론
마케팅 및 광고 산업에서 활용되는 태그는 이 글에서 설명한 대로 매우 중요한 의미를 갖고 있습니다. 그러나 고객의 어려움이나 캠페인 활성화의 시급성으로 인해 이러한 중요성이 무시되는 상황이 많이 발생하는것 또한 사실입니다. 만약 OneTag가 누락된 페이지가 있다면 이를 다시 한 번 확인하여 OneTag를 구현하시기를 권장하며, 이메일 주소 등 특정 파라미터가 전달되지 않고 있다면 장기적인 캠페인 성과를 위해 꼭 재설정 하시기를 추천 드립니다.