Conversion API 설정
사전 준비 사항
Ads API Access - New Applications
- Conversion API의 기본 요구 사항은 Developer Account와 Ads API Access를 보유하고 있는 것입니다. 자세한 절차는 Ads API Getting Started 가이드에 설명되어 있습니다. 아래 사항을 참고하세요:
- Developer Account를 신청할 때, 즉시 승인을 받으려면 구독 plans 중 하나를 함께 신청하세요.
- Note: 모범 사례로, 공식 회사 X 핸들을 사용해 개발자 계정을 생성하고 Ads API 접근 권한을 신청할 것을 강력히 권장합니다. 개발자 계정이 개인 개발자 핸들과 연계되어 있으면, 필요 시에도 해당 자격 증명을 이전할 방법이 없습니다. 지속적인 관리를 위해 회사 계정으로 운영하고, 필요에 따라 Multi-user login을 활용하는 것이 가장 좋습니다. 그렇지 않은 경우에도 최소한 계정은 기본값이 아닌 설정(헤더 이미지, 아바타, 프로필 설명, 프로필 URL)으로 구성되어야 하며, 2단계 인증을 사용해야 합니다.
- Ads API Application을 위해 올바른 App ID를 준비했는지 확인하세요. App ID는 Developer Console의 Projects & Apps 섹션에서 확인할 수 있습니다. 예시: 16489123
- X 담당자에게 연락하여 Ads API 접근 권한을 요청하세요.
Ads API Access - Existing Applications
- 이미 현재 사용 중인 Ads API App이 있는 경우, 해당 App과 기존 액세스 토큰을 모두 Conversion API에 사용할 수 있습니다.
액세스 토큰
- Ads API 애플리케이션을 소유한 사용자 핸들의 User Access Token은 개발자 콘솔에서 바로 생성하고 조회할 수 있습니다. 이는 본인의 X 핸들에 사용하도록 되어 있기 때문에 “personal access token”이라고 부릅니다. 인증 및 개발자 콘솔에 대한 전반적인 정보는 여기에서 확인할 수 있습니다.
- Ads API 애플리케이션을 소유한 핸들이 아닌 다른 사용자 핸들의 User Access Token은 3-legged OAuth 플로우로 생성해야 합니다. 3-legged OAuth를 사용해 Access Token을 생성하는 방법은 다음과 같습니다.
- Conversion API에서 사용되는 모든 사용자 토큰은 AD_MANAGER 또는 ACCOUNT_ADMIN 액세스 레벨을 가진 사용자에 대한 것이어야 하며, 이는 authenticated_user_access 엔드포인트를 통해 확인할 수 있습니다.
- 참고: 위와 같이 생성된 토큰 자체는 사용 목적으로 AD_MANAGER 또는 ACCOUNT_ADMIN 액세스 레벨이 없는 사용자와도 공유할 수 있습니다.
단계
Conversion API 이벤트 생성
옵션 1: Ads Manager에서 기존 전환 이벤트 사용
conversion_id를 중복 제거 키로 사용해야 합니다. 자세한 내용은 d. 이벤트 테스트 및 중복 제거 섹션을 참조하세요.
옵션 2: Ads Manager에서 새 전환 이벤트 생성:
- ads.x.com으로 이동합니다.
- 왼쪽 상단의 Tools 섹션으로 이동한 후 Events Manager를 클릭합니다.
- 왼쪽 사이드바에 X Pixel Event Source가 아직 없다면, 오른쪽 상단에서 Add event source를 선택해 Add an event source를 진행합니다.
- X Pixel Event Source의 ID가 바로 Pixel ID입니다.
- X Pixel Event Source 안에서 오른쪽에 있는 Add events를 선택합니다.
- Conversion API로 설치(Install with Conversion API)를 선택합니다.
- 이 이벤트에 대해 API에서 사용될 Pixel ID와 Event ID를 확인할 수 있습니다.
- 이 이벤트의 ID가 Event ID입니다.
- Save를 클릭하면 전환 이벤트가 생성되며 사용할 준비가 완료됩니다.
전환 이벤트용 식별자 준비
twclid), 이메일 주소, 전화번호와 같은 식별자 중 최소 하나를 전달해야 합니다. IP 주소나 User Agent를 사용하는 경우, 정확한 전환 매칭을 위해 두 번째 식별자를 함께 전송해야 합니다.
더 많은 식별자를 전달할수록 전환 매칭 비율이 높아집니다.
1. X 클릭 ID 식별자 준비
twclid에서 Click ID를 파싱해야 합니다.
기본 JavaScript 코드 예시:
-
URL 쿼리 매개변수에
twclid값이 포함되어 있을 경우 항상 해당 값을 파싱합니다. - 관련 양식 필드나 전환 이벤트 정보와 함께 해당 데이터를 저장합니다.
2. 이메일 식별자 준비
3. 전화번호 식별자 준비
4. IP 주소 식별자 준비
5. User Agent 식별자 준비
전환 이벤트 요청 구성
POST: version/measurement/conversions/:pixel_id
특정 광고 계정에 대한 전환 이벤트를 전송합니다. 응답 코드를 확인하여 요청이 성공했는지(HTTP 200 OK) 반드시 확인해야 합니다. 오류 코드가 반환되는 경우를 대비해 재시도 메커니즘과 기본 로깅을 구현하는 것이 권장됩니다.
엔드포인트의 URL 및 POST 본문 매개변수에 대한 자세한 내용은 API 참조 문서 섹션을 참조하세요.
예시 요청(가독성을 위해 서식을 정리함)
응답 예시
Rate Limit
- 각 이벤트마다 올바른 전환 데이터를 전송할 수 있도록 사용자 행동을 계측(로그 기록)하는 작업
- 관련 프라이버시 선택권을 행사한 사용자의 전환 이벤트를 필터링하기 위한 모든 필요한 로직 — 예를 들어, 광고주의 웹사이트에서 추적 또는 개인 정보 판매를 거부(opt-out)한 경우
- 이벤트를 포착하고 전환을 전송하기 위한 이벤트 트리거 및 페이지와의 통합
이벤트 테스트 및 중복 방지
이벤트 테스트
- Ads Manager에서 데이터 내보내기(웹사이트 전환 측정을 위한 Analytics 도움말 페이지)
- Ads API를 통해 데이터 내보내기(segmentation_type=CONVERSION_TAGS)
Pixel과 Conversion API 간 중복 처리
conversion\_id를 중복 제거 키로 사용할 수 있습니다. 중복 제거는 이벤트 수준에서만 수행됩니다. 다시 말해, Pixel과 CAPI 요청 간 중복 제거를 하려면 광고주는 동일한 conversion\_id를 사용하는 것뿐 아니라 Pixel과 CAPI 요청 모두에서 동일한 이벤트를 사용해야 합니다. 중복 제거는 48시간 이내에 수신된 이벤트에만 적용될 수 있습니다.
전환 추적(개요)
요약
- 사이트 방문: 사용자가 광고주의 사이트 내 랜딩 페이지를 방문
- 구매: 사용자가 광고주의 사이트에서 상품 또는 서비스를 구매 완료
- 다운로드: 사용자가 광고주의 사이트에서 백서나 소프트웨어 패키지와 같은 파일을 다운로드
- 가입: 사용자가 광고주의 서비스, 뉴스레터 또는 이메일 수신에 가입
- 사용자 정의: 위 범주에 속하지 않는 사용자 정의 행동을 위한 포괄적인 범주
FAQ
전환 추적 태그는 어떻게 작동하나요?
전환 추적 태그는 어떻게 작동하나요?
먼저, 광고주는 X에서 제공하는 코드 스니펫인 전환 태그를 생성해 자신의 웹사이트에 설치합니다. 그러면 사용자가 지정된 행동을 완료할 때 전환을 측정할 준비가 완료됩니다.그다음 사용자는 X 클라이언트에서 광고주의 광고에 노출되고, 이를 통해 광고주의 웹사이트로 이동해 태깅된 행동을 수행하게 됩니다. 사용자가 태그 설정 시 광고주가 지정한 어트리뷰션 윈도(기간) 내에 그 행동을 완료하면, 태그는 해당 사용자가 이전에 X 광고와 상호작용했다는 점을 인식합니다. 이후 태그가 “발화(fire)”되어 X 서버로 알림을 전송하고, 이를 통해 해당 전환을 발생시킨 광고에 전환이 귀속됩니다.
캠페인 설정 과정에서, 특정 캠페인에 어떤 추적 픽셀이 연관되는지 선택할 수 있는 방법이 있나요?
캠페인 설정 과정에서, 특정 캠페인에 어떤 추적 픽셀이 연관되는지 선택할 수 있는 방법이 있나요?
아니요. 현재 제품은 특정 전환 태그를 특정 캠페인에 개별적으로 연결하는 방식으로 구성되어 있지 않습니다. 대신 태그가 한 번 설정되면, 시스템이 자동으로 어떤 광고가 해당 태그에서 전환을 유도했는지 추적합니다.
전환 태그에 대한 기본 어트리뷰션 윈도 설정은 어떻게 되나요?
전환 태그에 대한 기본 어트리뷰션 윈도 설정은 어떻게 되나요?
기본 노출(post-view) 기준 어트리뷰션 윈도: 1일기본 참여(post-engagement) 기준 어트리뷰션 윈도: 14일이 기본값은 전환 태그 설정 시 또는 태그 생성 이후 언제든지 변경할 수 있습니다. 참여 기준 어트리뷰션 윈도 옵션은 1, 7, 14, 30, 60, 90일입니다. 노출 기준 어트리뷰션 윈도 옵션은 없음, 1, 7, 14, 30, 60, 90일입니다.
전환을 효과적으로 유도하는 DR 크리에이티브와 전략에는 어떤 것들이 있나요?
전환을 효과적으로 유도하는 DR 크리에이티브와 전략에는 어떤 것들이 있나요?
각 광고주의 목표, 상황, 전략은 모두 다르지만, 전환 추적 알파 또는 베타에 참여한 광고주에게 효과가 있었던 몇 가지 아이디어는 다음과 같습니다.크리에이티브:
- 혜택 제공: 행동에 대한 관심을 더 끌어내기 위해 할인, 프로모션, 무료 배송과 같은 혜택을 Promoted Tweet과 함께 제공
- 경품 행사 및 콘테스트: 특히 유명 브랜드의 경우, 경품 행사와 콘테스트가 전환을 유도함
- Tweet 카피 실험: 대문자와 소문자 비교 테스트 (예: FREE vs free, NOW vs now)
- 마감 기한 제시: “12월 12일 종료”와 같이, 즉각적인 행동을 유도하기 위한 마감 기한 제시
- 매력적인 사진 추가: 시각적으로 매력적인 사진을 Tweet 크리에이티브에 추가하는 것이 전환 유도에 효과적인지 테스트해 볼 가치가 있습니다. 결과는 광고주의 제공 상품에 따라 다를 수 있습니다.
- @handle 타게팅과 관심사 카테고리 타게팅: Tweet 카피와 @handle을 Tweet이 도달하고자 하는 타깃 오디언스와 긴밀하게 일치시키는 것이 전환을 유도함
- 틈새지만 검색량이 높은 키워드 사용: 콘서트 관련 캠페인에서는 아티스트/뮤지션(예: 이름)과 관련된 키워드 사용이 효과적인 것으로 나타남
- Tailored audiences: TA 웹과 전환 추적을 함께 사용하는 광고주는 다른 타게팅을 사용하는 대조군보다 더 낮은 CPA를 기록함
Conversion API 문제 해결 및 지원
오류 처리 및 설명
errors가 하나도 없을 때에만 성공합니다. 개별 전환에 어떤 오류라도 발생하면, 엔드포인트는 해당 전환에 대해 적용 가능한 모든 errors 목록을 반환합니다.
X Ads API 오류 코드 개요
400번대 HTTP 코드가 발생하는 일반적인 경우는 다음과 같습니다
- 400 Bad Request (요청이 표준/형식에 맞지 않음)
- 401 Unauthorized (인증 관련 문제)
- 403 Forbidden (해당 개발자 계정과 연관된 API 접근 권한 문제)
- 404 Not Found (해당 엔드포인트에 대해 URL 또는 매개변수가 올바르지 않을 수 있음)
Conversion API 오류 코드
400 잘못된 요청 시나리오
JSON 오류 코드 예시
요청:
POST '/11/measurement/conversions/o6dkt' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603Z", "event_id":"o6dkt", "identifiers": [{"twclid": "23opevjt88psuo13lu8d020qkn"}]}]}' --header 'Content-Type: application/json
오류 메시지:
{"errors":[{"code":"INVALID_PARAMETER","message":"event_id (o6dkt) is not a single event tag (SET)","parameter":"event_id"}],"request":{"params":{"account_id":"18ce552mlaq"}}}
요청:
twurl_ads -X POST '/11/measurement/conversions/o6dkt' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603Z", "event_id":"o6dl3", "identifiers": [{"twclid": ""}]}]}' --header 'Content-Type: application/json'
오류 메시지:
{"errors":[{"code":"INVALID_PARAMETER","message":"At least one user identifier must be provided","parameter":""}],"request":{"params":{"account_id":"18ce552mlaq"}}}
요청:
twurl_ads -X POST '/11/measurement/conversions/o6dkt' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603Z", "event_id":"o6dl3", "identifiers": [{"hashed_email": "abc"}]}]}' --header 'Content-Type: application/json'
오류 메시지:
{"errors":[{"code":"INVALID_PARAMETER","message":"hashed_email (abc) is not a valid SHA-256 hash","parameter":"hashed_email"}],"request":{"params":{"account_id":"18ce552mlaq"}}}
요청:
twurl_ads -X POST '/11/measurement/conversions/o6dkt' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603", "event_id":"o6dl3", "identifiers": [{"twclid": "23opevjt88psuo13lu8d020qkn"}]}]}' --header 'Content-Type: application/json'
오류 메시지:
{"errors":[{"code":"INVALID_PARAMETER","message":"Expected Time in yyyy-MM-ddTHH:mm:ss.SSSZ, got \"2022-06-16T01:14:00.603\" for conversion_time","parameter":"conversion_time"}],"request":{"params":{"account_id":"18ce552mlaq"}}}
이유: 인증 자격 증명이 없거나 올바르지 않음
해결 방법: 다음 3가지 인증 방법 중 하나를 사용하여 Set Up 문서에 있는 인증 단계를 따르세요:
Ads API 애플리케이션을 소유한 핸들이 아닌 다른 사용자 핸들에 대한 User Access Token은 3-legged OAuth 플로우로 생성해야 합니다. 3-legged OAuth를 사용하여 Access Token을 생성하는 옵션은 다음과 같습니다.
Conversion API와 함께 사용되는 모든 사용자 토큰은 AD_MANAGER 또는 ACCOUNT_ADMIN 액세스 레벨을 가진 사용자에 대한 것이어야 하며, 이는 authenticated_user_access 엔드포인트를 통해 확인할 수 있습니다.
403 접근 금지
404 Not Found
JSON 오류 코드 예시
요청:
twurl_ads -X POST '/11/measurement/conversions/o8z6j' --data '{"conversions":[{"conversion_time": "2022-06-16T01:14:00.603Z", "event_id":"abc", "identifiers": [{"twclid": "23opevjt88psuo13lu8d020qkn"}]}]}' --header 'Content-Type: application/json'
오류 메시지:
{"errors":[{"code":"NOT_FOUND","message":"event_id (abc) does not belong to provided account","parameter":"event_id"},{"code":"INVALID_PARAMETER","message":"event_id (abc) is not a single event tag (SET)","parameter":"event_id"}],"request":{"params":{"account_id":"18ce55gze09"}}}
API 참조 문서 색인
웹 전환
웹 전환
POST version/measurement/conversions/:pixel_id
단일 이벤트 태그 ID에 대한 웹사이트 전환 이벤트를 전송합니다.
응답 코드를 확인하여 성공(HTTP 200 OK)인지 검사해야 합니다. 오류 코드가 반환될 경우를 대비해 재시도 메커니즘과 기본 로깅을 구현할 것을 권장합니다.
레이트 리밋은 계정당 15분 간격마다 요청 100,000건이며, 각 요청에는 최대 500개의 이벤트를 포함할 수 있습니다.
리소스 URL
https://ads-api.x.com/12/measurement/conversions/:pixel_id
Request URL Parameters
conversions object
identifiers object
contents 객체
응답 매개변수
요청 예시
요청 예제
GET accounts/:account_id/web_event_tags
현재 계정과 연결된 웹 이벤트 태그 일부 또는 전체에 대한 세부 정보를 조회합니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/web_event_tags
Parameters
예시 요청
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags?web_event_tag_ids=o3bk1
예시 응답
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/web_event_tags/:web_event_tag_id
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags/o3bk1
응답 예시
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/web_event_tags
매개변수
예시 요청
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags?click_window=7&name=web event tag&retargeting_enabled=false&type=SITE_VISIT&view_through_window=7
응답 예시
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/web_event_tags/:web_event_tag_id
매개변수
요청 예제
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags/o3bk1?type=DOWNLOAD
예시 응답
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/web_event_tags/:web_event_tag_id
Parameters
예시 요청
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/web_event_tags/o3bk1