로그 연동 및 데이터 마이그레이션 가이드

광고 로그 연동 및 퍼스트 파티 데이터 마이그레이션을 위한 방법을 소개합니다.

광고 로그 연동

효과적인 광고 모델링과 지표 추적을 위해 광고 로그 연동이 필요합니다. 광고 로그 연동은 웹 기반과 API 기반 두 가지 방식으로 진행할 수 있으며, 각각의 방법에 따라 광고 요청과 노출, 클릭, 전환 등의 로그를 수집하고 분석할 수 있습니다. 아래에서 각 방식을 설명합니다.

웹 SDK를 활용한 방법

웹 기반 리테일 미디어의 경우, 아래 절차를 따라 광고 요청 및 로그 연동(노출 및 클릭)까지 자동으로 진행할 수 있습니다:

  1. 어드민 로그인지면 메뉴로 이동합니다.
  2. 지면 목록에서 원하는 지면을 선택하고, 지면 태그 가져오기 버튼을 클릭합니다.
  3. 해당 페이지 (아래 캡처 화면 참고)에서 제공된 footer tag를 복사하여 웹 앱의 HTML 소스 하단에 붙여 넣습니다.
  4. 제공된 <div id="a2plct1"></div> 코드를 광고를 표시할 위치에 삽입합니다. 이때, a2plct1 부분은 필요에 맞게 변경하여 사용하세요.

이 설정이 완료되면 광고의 노출 및 클릭에 대한 로그 연동이 자동으로 진행됩니다. 각 로그가 전송되는 조건은 다음과 같습니다:

  • 송출 로그 (광고 요청): 송출 로그는 광고가 유저에게 보여질 준비가 되었을 때, 즉 광고가 화면에 나타날 가능성이 높아졌을 때 기록됩니다. 구체적으로는 사용자가 광고 근처에 다가와서 화면 상으로 광고가 나타나기 직전, 광고 높이의 약 4배 정도 가까이 왔을 때 광고 송출 로그가 전송됩니다.
  • 노출 로그 (vimp): 노출 로그는 광고가 실제로 사용자의 화면에 나타나고, 눈에 보이기 시작한 시점을 기록합니다. 단순히 광고가 화면에 보이는 것뿐만 아니라, 1초 이상 광고의 50% 이상이 화면에 노출될 때 노출 로그가 기록됩니다. 송출 로그와 비교하면, 송출 로그는 광고가 화면에 나타날 가능성이 높은 상황에서 기록되지만, 노출 로그는 광고가 실제로 화면에 보일 때 기록됩니다.
  • 클릭 로그: 광고가 사용자의 클릭을 받았을 때 클릭 로그가 전송됩니다. 사용자가 광고에 관심을 가지고 클릭한 순간을 추적하여 광고 성과를 분석하는 데 활용됩니다.

이와 같은 로그 연동을 통해 광고의 성과를 더 정확히 파악하고, 광고의 효율을 높이기 위한 개선 작업을 효과적으로 수행할 수 있습니다.

API를 활용한 방법

API를 활용한 광고 로그 연동 방식은, 광고 노출과 전환, 클릭과 같은 다양한 액션에 대해 직접 로그를 연동할 수 있는 방법입니다. A2 시스템에서는 SSP 응답 데이터의 ext.ad_log 필드를 기반으로 로그를 추적하며, 광고 효과 분석을 위해 필요에 따라 노출 로그도 연동할 수 있습니다.

  1. 클릭 로그
  • 유저가 광고를 클릭했을 때 보내주는 데이터입니다.
  • 예시
curl --location 'http://localhost/app/v0/log' \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "ad_log",
        "action": "clk",
        "ad_log": "YTU2ZDY2ZjctNDM4ZS00OTVjLWJiYTAtMjI4Mzk2MjQ0ZWVkfDA2NDI4NjYwLWY2NDMtNGVmNS05MzgzLTZjZmE1OGYxOGI2OXxjNTZkYzNiZi05MzVkLTRlZTYtYjFlZC1mMzFiZmMwMmJlOTF8YjM4M2M4YWYtZWUzZi00MDljLTlmOWYtODgxYTI4YWZjYmVjfDk3NGIwOGI4LTc1MjYtNDFkMC04MTg5LWQ4MTVkNTFlZGNlZnw"
    }'
  1. 전환 로그
  • 유저가 광고를 보고 난 후 원하는 활동(전환)이 이루어졌을 때 보내는 로그입니다.
  • 이때 전환은 다음과 같은 활동을 의미할 수 있고 아래 예시에 한정되지 않습니다.
    • 상품 구매
    • 상품 장바구니
    • 앱 설치
    • 서비스 가입
    • 다운로드
    • 링크 클릭
    • 일정 시간 동안 컨텐츠 소비
  • 예시
curl --location 'http://localhost/app/v0/log' \
    --header 'Content-Type: application/json' \
    --data '{    
    	"type": "ad_log",    
        "action": "conv",    
        "ad_log": "YTU2ZDY2ZjctNDM4ZS00OTVjLWJiYTAtMjI4Mzk2MjQ0ZWVkfDA2NDI4NjYwLWY2NDMtNGVmNS05MzgzLTZjZmE1OGYxOGI2OXxjNTZkYzNiZi05MzVkLTRlZTYtYjFlZC1mMzFiZmMwMmJlOTF8YjM4M2M4YWYtZWUzZi00MDljLTlmOWYtODgxYTI4YWZjYmVjfDk3NGIwOGI4LTc1MjYtNDFkMC04MTg5LWQ4MTVkNTFlZGNlZnw"
    }'
  1. (Optional) 노출 로그
  • A2에서는 노출 로그가 반드시 필요하지는 않으나 정확한 지표 측정을 위해 노출 로그 연동을 권장합니다.
  • 노출 로그는 유저에게 광고가 실제로 노출되었을 때 보내는 것을 의미합니다.
    • 이때 광고의 노출 여부는 광고의 50% 이상이 1초 이상 유저의 화면에 노출을 기준으로 측정하기를 권장합니다.
    • 시스템 상의 제약이나 현실적인 여러 이유로 인해 위 기준을 충족하지 못할 경우 최소한 동일한 기준으로 노출 여부를 측정하기를 권장합니다.
  • 예시
curl --location 'http://localhost/app/v0/log' \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "ad_log",
        "action": "vimp",
        "ad_log": "YTU2ZDY2ZjctNDM4ZS00OTVjLWJiYTAtMjI4Mzk2MjQ0ZWVkfDA2NDI4NjYwLWY2NDMtNGVmNS05MzgzLTZjZmE1OGYxOGI2OXxjNTZkYzNiZi05MzVkLTRlZTYtYjFlZC1mMzFiZmMwMmJlOTF8YjM4M2M4YWYtZWUzZi00MDljLTlmOWYtODgxYTI4YWZjYmVjfDk3NGIwOGI4LTc1MjYtNDFkMC04MTg5LWQ4MTVkNTFlZGNlZnw"
    }'

데이터 마이그레이션

A2가 on-premise로 제공되기 때문에 퍼스트파티 데이터를 충분히 활용할 수 있습니다. 이번 섹션에서는 퍼스트 파티 데이터를 연동하는 방법에 대하여 설명합니다.

  1. 유저 데이터

유저 데이터는 서비스 사용자의 성별, 연령, 관심사, 활동 지역을 의미합니다. 데이터 연동에 필요한 각 필드에 대한 설명은 다음과 같습니다. 이때 서비스에서 모든 데이터를 가지고 있지 않을 경우 모든 필드의 연동이 필요하지는 않습니다.

  • 데이터 필드
    • id: 사용자 식별자. SSP에서 호출하는 값과 동일하여야 합니다.
    • gender: 사용자의 성별. 남성은 M, 여성은 F, 그 외의 경우엔 O를 사용합니다.
    • yob: 사용자의 출생연도.
    • keywords: 사용자의 관심사. 특정 카테고리로 한정되지 않습니다.
    • geo: 사용자의 활동지역.
  • 사용자 업데이트 예시
curl -X PUT 'http://localhost/app/v0/log' \
    --header 'Content-Type: application/json' \
    --data '{    
        "type": "user_log",
    	"id": "<userid>",    
        "gender": "M",    
        "yob": 1998,    
        "keywords": ["IT", "marketing", "game"],    
        "geo": "Seoul"
    }'
  • 사용자 삭제 예시
curl -X DELETE 'http://localhost/app/v0/log' \
    --header 'Content-Type: application/json' \
    --data '{    
        "type": "user_log",
    	"id": "<userid>"
    }'
  1. 서비스 로그 연동

기존 서비스에서 사용자의 서비스 활동 로그가 있을 경우 A2는 해당 데이터를 활용해 광고 타겟팅을 더 정밀하게 할 수 있습니다. 이를 위한 데이터 연동 방법을 설명합니다.

  • 활동 타입
    • 서비스마다 사용자의 활동은 다양하게 정의되고 중요하게 생각하는 활동이 다릅니다. 예를 들어 커머스 서비스일 경우엔 상품의 구매나 장바구니에 넣는 활동이 중요하고, 컨텐츠 제공 서비스일 경우엔 사용자의 컨텐츠 클릭이 중요합니다. 이에 A2에는 아래와 같은 타입이 정의되어 있으며, 이 리스트는 계속 추가될 예정입니다.
      • clk: 클릭
      • srch: 검색
      • vw: 페이지뷰
      • prch: 구매
      • crt: 장바구니 추가
  • 데이터 필드
    • user_id: 사용자 식별자. SSP에서 호출하는 값과 동일하여야 합니다.
    • action_type: 활동 타입. 자세한 사항은 위 참조.
    • item_id: 사용자의 활동이 이루어진 항목을 의미합니다. 예를 들어 구매가 이루어진 아이템 id, 검색이 이루어진 키워드, 클릭이 이루어진 컨텐츠 id 등 다양하게 활용할 수 있습니다.
    • timestamp: 사용자의 활동이 이루어진 시간. 해당 필드가 없을 경우 로그가 인입된 시간을 사용하므로 과거 로그를 연동할 때만 필요합니다.
  • 예시
curl --location 'http://localhost/app/v0/log' \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "action_log",
        "user_id": "<userid>",
        "action_type": "clk",
        "item_id": "content-1234",
        "timestamp": "2024-07-07T12:23:34.105203Z"
    }'

이 가이드가 광고 로그 연동 및 데이터 마이그레이션 작업에 도움이 되길 바랍니다. 더 궁금한 사항이 있거나 추가 지원이 필요하시면 언제든지 문의해 주세요. 감사합니다.