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

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

광고 로그 연동

효과적인 광고 모델링 및 지표 추적을 위해 광고 로그 연동이 필요합니다. A2에서의 로그는 SSP 응답 데이터의 ext.ad_log 필드값을 기반으로 추적됩니다. 이를 기반으로 아래와 같은 로그 연동이 필요합니다.

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

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

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

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