Advertiser API
무엇을 홍보할 수 있나요?
- Promoted Ads는 더 많은 사용자에게 도달하거나 기존 팔로워의 참여를 이끌어내고자 하는 광고주가 구매하는 일반 형식의 광고입니다.
- Promoted Ads는 광고주가 X에서 노출 위치에 대해 비용을 지불하는 경우, Promoted 라벨로 명확하게 표시됩니다. 그 외 모든 면에서 Promoted Ads는 일반 광고와 동일하게 동작하며, 리포스트, 답글, 좋아요 등 다양한 상호작용이 가능합니다. 일반적인 게재 규칙을 따르며 POST statuses/update를 사용해 생성됩니다.
- “Promoted-only” Tweets는 POST accounts/:account_id/tweet를 통해 생성되며, Promoted Tweets 캠페인에 사용할 수 있지만 팔로워에게는 노출되지 않고 공개 타임라인에도 표시되지 않습니다. 특정 계정에 대한 promoted-only tweet 목록을 가져오려면 GET accounts/:account_id/scoped_timeline를 사용하십시오.
- Promoted Accounts는 사람들이 아직 팔로우하고 있지 않지만 관심을 가질 만한 계정을 추천하는 Who to Follow 기능의 일부입니다. Promoted Accounts는 이용자들이 좋아할 만한 더 다양한 계정을 발견하도록 돕습니다.
- 타임라인용 Promoted Accounts는 Promoted Tweet을 Promoted Account 캠페인과 연결하며, 사용자 타임라인에 노출됩니다.
캠페인 및 광고 그룹(라인 아이템)
분석
X Ads API는 광고 성과를 추적하고 최적화할 수 있는 일련의 분석 엔드포인트를 제공합니다. 자세한 내용은 Analytics 및 Analytics 모범 사례를 참고하세요. 과금(billing) 지표의 경우, 데이터는 이벤트 발생 후 최대 3일이 지나야 최종 확정될 수 있습니다. 그 이전 시점의 데이터는 잠정적인 것으로 간주해야 합니다. 최종 청구 가능 수치는 항상 잠정 수치 이하입니다. 청구 가능 수치는 스팸 및 관련 저품질 트래픽을 반영해 보정된 값입니다. 시간과 관련된 기타 고려 사항은 Timezones를 참고하세요.캠페인 생성 - 단계별 안내
-t 옵션으로 호출을 추적하면 되며, 이는 cURL의 -v 옵션과 거의 동일한 역할을 합니다.
이 예제에서는 키워드로 타겟팅하는 Promoted Ads 캠페인을 생성합니다.
- account id를 가져옵니다.
- funding instrument id를 조회합니다.
- 캠페인을 생성하고 해당 캠페인을 자금 수단과 연결합니다.
- 캠페인과 연결된 라인 아이템을 생성합니다.
- 라인 아이템과 연결된 타기팅 프로필을 생성합니다.
- 마지막으로 라인 아이템의 일시정지를 해제합니다.
목표 기반 캠페인
objective를 설정해야 합니다.
라인 아이템 작성(write) 엔드포인트에서 사용되고 조회(read) 엔드포인트에서 반환되는 파라미터는 objective입니다. 현재 이 필드는 다음과 같은 값을 가질 수 있습니다:
APP_ENGAGEMENTSAPP_INSTALLSFOLLOWERSENGAGEMENTSREACHVIDEO_VIEWSPREROLL_VIEWSWEBSITE_CLICKS
APP_ENGAGEMENTS의 경우 CPAC, APP_INSTALLS의 경우 CPAC 또는 CPI, WEBSITE_CLICKS의 경우 CPLC, FOLLOWERS의 경우 CPF, ENGAGEMENTS의 경우 CPE, REACH의 경우 CPM처럼 목표에 기반한 과금 방식을 제공합니다.
모바일 앱 프로모션 캠페인에는 반드시 APP_ENGAGEMENTS 또는 APP_INSTALLS 목표가 설정되어야 합니다.
참고: 서로 다른 목표를 가진 라인 아이템은 동일한 캠페인에 포함될 수 없습니다.
자금 수단
funding_instruments 목록을 가져오려면 GET accounts/:account_id/funding_instruments를, 특정 자금 수단의 세부 정보를 확인하려면 GET accounts/:account_id/funding_instruments/:funding_instrument_id를 사용하세요.
자금 조달 수단 속성
account_id, 자금 조달 수단 id, 자금 조달 수단 type, description, 그리고 io_header(인서션 오더 헤더 ID). 하나의 io_header가 여러 자금 조달 수단과 연결될 수 있다는 점에 유의하십시오.
자금 조달 가능 여부: able_to_fund 및 reasons_not_able_to_fund.
시간: 문자열로 표현되는 created_at, updated_at, start_time, end_time 값이며, 형식은 “%Y-%m-%dT%l:%M:%S%z”입니다.
불리언 상태: paused, deleted, cancelled (true 또는 false).
재무 정보: currency(ISO-4217 형식), credit_limit_local_micro, credit_remaining_local_micro, funded_amount_local_micro. 통화 값은 마이크로 단위로 표현됩니다. USD의 경우 $5.50은 5.50*1e6, 즉 5,500,000으로 인코딩됩니다. “정수 값”을 표현하려면 모든 통화에 대해 local micro 값에 1e6(1_000_000)을 곱해야 합니다.
속성 세부 정보
credit_limit_local_micro는 CREDIT_CARD 또는 CREDIT_LINE type 자금 조달 수단에만 유효하며, 해당 수단의 신용 한도를 나타냅니다.
funded_amount_local_micro는 INSERTION_ORDER type 자금 조달 수단에만 유효하며, 배정된 예산을 나타냅니다.
credit_remaining_local_micro는 CREDIT_LINE 및 AGENCY_CREDIT_LINE type 자금 조달 수단에 유효합니다. 이는 해당 자금 조달 수단에 대해 이미 사용된 금액을 credit_limit_local_micro에서 뺀 값을 나타냅니다. 이는 funded_amount_local_micro와 사용된 금액의 차이를 의미하지 않습니다. 신용 한도와 자금 배정 금액은 광고주와 맺은 서로 다른 기초 자금 조달 방식과 지출 계약을 반영하므로, 이 둘을 명확히 구분합니다.
자금 수단의 유형
funding_instrument 엔드포인트로 GET 요청을 보내 데이터를 조회할 수 있습니다. 아래는 예시 응답입니다(CREDIT_LINE type에 주목하세요).
type 과 이 수단에 연결된 모든 계정에서 공통으로 사용할 수 있다는 사실뿐입니다. 물론 남은 크레딧은 이 자금 조달 수단으로 자금을 받는, 이를 공유하는 모든 계정의 모든 캠페인에 의해 함께 소진됩니다. 특정 신용 한도에 어떤 계정들이 연결되어 있는지에 대한 세부 정보는 API(또는 ads.x.com)를 통해 제공되지 않습니다.
자금 조달 수단 열거형에 대한 자세한 내용은 여기를 클릭하세요.
타게팅
노출 위치별 타게팅 옵션
- X Search: 연령 타게팅, 디바이스, 이벤트, 성별, 키워드 유형(전체), 언어, 위치, 네트워크 활성화, 네트워크 사업자, 플랫폼, 플랫폼 버전, 맞춤 타겟(Tailored Audiences), WiFi 전용
- X Timeline: 연령 타게팅, 디바이스, 이벤트, 팔로워 타겟(Followers Of), 팔로워 유사 타겟(Similar to Followers Of), 성별, 관심사, 언어, 위치, 네트워크 활성화, 네트워크 사업자, 유사 일치 키워드 유형, 파트너 오디언스 유형, 플랫폼, 플랫폼 버전, 리타게팅 유형, 맞춤 타겟(Tailored Audiences), TV 타게팅 유형, WiFi 전용
- X Profiles & Tweet Details: 연령 타게팅, 디바이스, 이벤트, 팔로워 타겟(Followers Of), 팔로워 유사 타겟(Similar to Followers Of), 성별, 관심사, 언어, 위치, 네트워크 활성화, 네트워크 사업자, 유사 일치 키워드 유형, 파트너 오디언스 유형, 플랫폼, 플랫폼 버전, 리타게팅 유형, 맞춤 타겟(Tailored Audiences), TV 타게팅 유형, WiFi 전용
타겟팅 타입 이해하기
NETWORK_OPERATOR를 사용해 모바일 통신사 기준으로 사용자를 타겟팅할 수 있게 합니다.
새 모바일 기기 타겟팅: 타겟팅 타입 NETWORK_ACTIVATION_DURATION과 operator_type LT(미만), GTE(이상)를 사용하여 사용자가 자신의 기기를 통해 처음 X에 접속한 날짜를 기준으로 사용자를 타겟팅합니다.
플랫폼, 플랫폼 버전, 디바이스, 및 WiFi 전용(Wifi-Only): 다양한 기준을 통해 모바일 디바이스를 타겟팅할 수 있습니다. Platforms는 휴대폰을 넓은 범주로 묶어 타겟팅하는 상위 수준 타겟팅 타입입니다. 예시 값으로는 iOS, Android 등이 있습니다. Devices를 사용하면 iPhone 5s, Nexus 4, Samsung Galaxy Note와 같은 특정 모바일 디바이스 사용자를 타겟팅할 수 있습니다. Platform versions를 사용하면 특정 모바일 운영체제 버전(포인트 릴리스 수준까지)의 사용자를 타겟팅할 수 있습니다. 예시로 iOS 7.1, Android 4.4 등이 있습니다. Wifi-Only는 WiFi 네트워크에서 디바이스를 사용하는 사용자만 타겟팅하며, 이 값을 설정하지 않으면 통신사 네트워크와 WiFi 모두를 사용하는 사용자가 타겟팅됩니다.
- 플랫폼과 디바이스 간에 중복이 없다면 둘 다 타겟팅할 수 있습니다. 예를 들어, Blackberry를 플랫폼으로, iPad Air를 디바이스로 동시에 타겟팅할 수 있습니다.
- 디바이스와 OS 버전은 동시에 타겟팅할 수 있습니다. 예를 들어, iPad Air와 iOS >= 7.0을 함께 타겟팅할 수 있습니다.
- 디바이스보다 범위가 더 넓은 플랫폼은 동시에 타겟팅할 수 없습니다. 예를 들어, iOS와 iPad Air를 함께 타겟팅할 수는 없습니다.
TV_SHOW 타게팅 type으로 지속적으로 타게팅되도록 구성할 수 있습니다. 사용 가능한 TV 프로그램을 확인하려면 GET targeting_criteria/tv_markets 및 GET targeting_criteria/tv_shows 엔드포인트를 사용하세요.
Tweet 참여자 리타게팅
Tweet 참여자 리타게팅은 광고주가 X에서 자신의 프로모션 Tweet 또는 오가닉 Tweet에 이전에 노출되었거나 참여한 사용자를 여러 기기에 걸쳐 타게팅할 수 있도록 합니다. 이 타게팅을 통해 광고주는 X에서 자신의 콘텐츠를 보았거나 참여한 사람들 중 이후 메시지나 오퍼에 추가로 반응하거나 전환할 가능성이 가장 높은 사람들에게 후속 광고를 집행할 수 있습니다. 사용자는 노출 또는 참여 후 몇 분 이내에 타게팅 대상으로 포함되며, 참여의 경우 최대 90일, 노출의 경우 최대 30일 동안 자격이 유지됩니다.
Tweet 참여자 타게팅 type:
- 타게팅 값으로
IMPRESSION또는ENGAGEMENT를 허용하는ENGAGEMENT_TYPE. 노출된 사용자(IMPRESSION)를 타게팅할지, 참여한 사용자(ENGAGEMENT)를 타게팅할지를 지정합니다. CAMPAIGN_ENGAGEMENT는 타게팅 값으로 캠페인 id를 사용합니다. 이 캠페인에서(ENGAGEMENT_TYPE에 따라) 참여했거나 노출된 사용자가 타게팅 대상이 됩니다.USER_ENGAGEMENT는 타게팅 값으로 프로모션 대상 사용자 id를 사용하여, 광고주의 오가닉 콘텐츠에(ENGAGEMENT_TYPE에 따라) 노출되었거나 참여한 사용자를 타게팅합니다. 이는 Ads 계정과 연결된 프로모션 사용자 id여야 합니다.
ENGAGEMENT_TYPE은 하나 이상의 유효한 CAMPAIGN_ENGAGEMENT 또는 USER_ENGAGEMENT 값과 함께 필수입니다. 두 가지 Tweet 참여자 타게팅 type을 모두 사용할 수 있으며, 동일한 라인 아이템에서 여러 캠페인을 타게팅할 수 있습니다.
동영상 시청자 타게팅: 동영상 시청자 타게팅은 Tweet 참여자 타게팅을 기반으로, 광고주가 X에서 동영상을 일부 또는 전체 시청한 사용자 그룹을 타게팅할 수 있도록 합니다. 광고주는 오가닉 동영상, 프로모션 동영상 또는 둘 다를 타게팅할 수 있습니다. 프로모션 동영상은 동영상 조회 목표 캠페인이나 라인 아이템으로만 제한되지 않습니다.
동영상 시청자 타게팅 type:
- 동영상을 재생하도록 클릭했거나 자동 재생으로 3초 이상 시청한 사용자를 위한
VIDEO_VIEW - 동영상의 50%를 시청한 사용자를 위한
VIDEO_VIEW_PARTIAL - 동영상의 최소 95%를 시청한 사용자를 위한
VIDEO_VIEW_COMPLETE
ENGAGEMENT_TYPE이 사용될 때는 라인 아이템의 타게팅 기준에 다음 중 하나 또는 둘 다가 포함되어야 합니다.
CAMPAIGN_ENGAGEMENT는 타게팅 값으로 캠페인 id를 사용합니다. 이 캠페인에서(ENGAGEMENT_TYPE에 따라) 동영상을 시청한 사용자가 타게팅 대상이 됩니다.USER_ENGAGEMENT는 타게팅 값으로 프로모션 대상 사용자 id를 사용하여, 광고주의 오가닉 콘텐츠에서(ENGAGEMENT_TYPE에 따라) 동영상을 시청한 사용자를 타게팅합니다. 이는 Ads 계정과 연결된 프로모션 사용자 id여야 합니다.
- Broad(기본값): 단어의 순서와 관계없이 모든 단어가 일치합니다. 대소문자, 복수형 또는 시제에 민감하지 않습니다. 가능한 경우 자동으로 확장됩니다(예: “car repair”는 “automobile fix”와도 일치). 확장 없이 타게팅하려면 “+boat +jet”처럼 키워드 앞에 + 기호를 추가해야 합니다. + 없이 키워드를 사용하면 Broad Match가 기본값으로 적용됩니다.
- Unordered(사용 중단됨): 단어의 순서와 관계없이 모든 단어가 일치합니다. 대소문자, 복수형 또는 시제에 민감하지 않습니다.
- Phrase: 정확한 키워드 문자열과 일치하지만, 다른 키워드가 추가로 포함될 수 있습니다.
- Exact: 정확히 해당 키워드 문자열과만 일치하며, 다른 키워드는 허용하지 않습니다.
- Negative: 질의 내에 이 키워드들이 어떤 순서로든 모두 포함되어 있는 검색과의 일치를 피합니다. 다른 단어가 포함되어 있어도 동일합니다.
- Negative Phrase: 질의 내에 이 정확한 키워드 문자열이 포함된 검색과의 일치를 피합니다. 다른 단어가 포함되어 있어도 동일합니다.
- Negative Exact: 이 키워드들과 정확히 일치하고 다른 단어는 포함하지 않는 검색과의 일치를 피합니다.
타기팅 기준 조합
타기팅 기준은 광고 그룹에 대해 다음과 같이 결합됩니다.
- “Primary” 타기팅 유형은 ∪ 연산(즉, 논리적 합집합)으로 결합됩니다.
- 기타 타기팅 유형은 AND 연산으로 결합됩니다.
- 동일한 유형끼리는 OR 연산으로 결합됩니다.
- 미국, 영국, 캐나다에 있는 X 사용자(위치)
- 여성인 사용자(성별)
- 맞춤 타겟 리스트에서 구성된 사용자(“Primary”)
- 키워드를 기준으로 한 사용자(“Primary”)
추가 예제
- 성별과 지역만 선택하고 기본 조건(primary)은 선택하지 않은 경우: (Male) AND (US OR GB)
- 성별, 지역, 관심사를 선택한 경우: (Female) AND (CA) AND (Computers OR Technology OR Startups)
- 성별, 지역, 관심사, Tailored Audiences, 키워드를 선택한 경우: (Male) AND (GB) AND (Cars ∪ Tailored Audiences for CRM ∪ autocross)
예산 집행 속도(Budget Pacing)
standard_delivery 파라미터를 false로 설정하여 게재 속도를 가속 게재로 전환하십시오(GET accounts/:account_id/campaigns 참고).
참고 사항
- “하루(Day)”는 X advertiser account 시간대(예: America/Los_Angeles)를 기준으로 합니다.
- 초기 결과에 따르면 표준 게재를 사용할 경우, 하루 전반에 걸쳐 더 일관된 노출을 유지하면서 광고주의 eCPE/CPF가 개선되는 경향이 있습니다.
타깃 입찰
캠페인 관리입찰 전략
goal 매개변수를 설정함으로써 동일한 구성을 만들 수 있습니다. 더 자세한 내용은 여기 공지에서 확인할 수 있습니다.
예시는 다음과 같습니다:
목표 입찰
bid_strategy 설정을 TARGET 값으로 지정하여 다음과 같은 관련 캠페인 목표에 대해 목표 입찰을 활성화할 수 있습니다.
WEBSITE_CLICKSWEBSITE_CONVERSIONSAPP_INSTALLSAPP_ENGAGEMENTSREACH
국가 타게팅 및 게재 요건
러시아
파트너 관리 자금 조달 수단
파트너 초기 설정
- 파트너는 자신의 PGP/GPG 공개 키를 공유해야 합니다. Ads API 파트너와 X 간에 공유 비밀 키를 교환해야 합니다. 이는 온보딩 과정에서 데이터를 검증하는 데 사용됩니다.
- Ads API 액세스에 사용될 X app의
app_id또는consumer_secret. developer.x.com에서 X 계정으로 로그인한 상태라면 app 대시보드를 통해 기존 X app을 조회하고 수정할 수 있습니다. 새 X app을 생성해야 하는 경우, 승인이 완료된 개발자 계정이 필요합니다. X는 운영+샌드박스용 app 1개와 선택적인 샌드박스 전용 app 1개를 허용합니다. X app은 기업이 소유하고 파트너가 관리하는 X 핸들에서 생성해야 합니다.
광고주 온보딩 플로우
- 사용자는 파트너의 웹사이트에서 온보딩 플로우를 시작하고, 온보딩하려는 핸들을 입력합니다.
- 파트너는 서명된 페이로드와 함께 사용자를 ads.x.com의 URL로 리디렉션합니다. 이 페이로드에는 파트너의 API
app_id, 온보딩될 X 핸들의 Xuser_id, 콜백 URL 및 아래에 문서화된 기타 필드가 포함됩니다. - 사용자는 표준 x.com 로그인 페이지를 사용하여 ads.x.com에 로그인하라는 안내를 받습니다.
- 사용자가 로그인하면 온보딩 프로세스가 시작됩니다. 이 단계에는 광고 검토, 계정 유효성 검사 및 기타 점검이 포함됩니다.
- 모든 온보딩 작업이 완료되면, Ads API 파트너가 제공한 콜백 URL로 사용자가 리디렉션되며, 성공 또는 실패를 나타내는 페이로드가 함께 전달됩니다. 여기에는 3-legged authorization 프로세스가 포함됩니다.
온보딩 리디렉트 페이로드
콜백 URL 페이로드
콜백 URL이 계정 링크 프로세스의 대상인 X
user_id에 대해서만 유효하도록 하기 위해, 요청에 서명할 때 공유된 시크릿 값에 X user_id를 (&를 사용하여) 덧붙여야 합니다.
요청 및 콜백 URL 서명하기
/link_managed_account 및 콜백 URL로의 요청이 유효한지 확인하기 위해, 요청은 송신 측에서 서명되고 수신 측이 요청을 처리하기 전에 검증되어야 합니다. X와 관리 파트너 간에 공유되는 시크릿으로 요청에 서명하면, 각 당사자는 권한 있는 상대방이 보낸 요청만 수락하게 됩니다.
서명 생성 알고리즘은 OAuth에서 사용되는 것과 유사합니다.
다음과 같이 서명 베이스 문자열을 만듭니다:
- HTTP 메서드를 대문자로 변환하고, 이 값을 베이스 문자열로 설정합니다.
- 베이스 문자열에 ‘&’ 문자를 추가합니다.
- URL(파라미터 제외)을 퍼센트 인코딩하고, 이를 베이스 문자열에 추가합니다.
- 베이스 문자열에 ‘&’ 문자를 추가합니다.
- 다음과 같이 생성된 퍼센트 인코딩된 쿼리 문자열을 추가합니다:
- 서명 대상이 되는 모든 키와 값을 퍼센트 인코딩합니다.
- 파라미터 목록을 키 기준으로 사전순으로 정렬합니다.
- 각 키/값 쌍에 대해 (파트너 리디렉트 URL의 경우 primary_promotable_user_id 포함):
- 퍼센트 인코딩된 키를 쿼리 문자열에 추가합니다.
- 베이스 문자열에 ‘=’ 문자를 추가합니다.
- 퍼센트 인코딩된 값을 쿼리 문자열에 추가합니다.
- 퍼센트 인코딩된 key=value 쌍을 ‘&’ 문자로 구분합니다.
- HMAC-SHA1 알고리즘을 사용하여, 이전에 교환한 공유 시크릿을 키로, 베이스 문자열을 값으로 사용해 서명을 생성합니다.
- 2단계의 출력 결과를 Base64 인코딩하고, 끝의 개행 문자를 제거한 후, 3단계에서 생성한 서명을 퍼센트 인코딩하여 signature 파라미터로 URL에 추가합니다.
서명 예시
fi_description = some name
promotable_user_id = 1 HTTP 메서드와 파라미터가 없는 URL로 구성된 베이스 문자열(단계 a - d)은 다음과 같습니다: GET https://ads.x.com/link_managed_account e 단계의 하위 단계에서 생성된 쿼리 문자열은 다음과 같습니다: callback_url=https://managingpartner.com/link_account_callback&client_app_id=12345&fi_description=some name&promotable_user_id=1 키-값 쌍은 키 이름 기준으로 정렬되어 있다는 점에 유의하세요. 퍼센트 인코딩된 쿼리 문자열은 다음과 같습니다: callback_url%3Dhttps%253A%252F%252Fmanagingpartner.com%252Flink_account_callback%26client_app_id%3D12345%26fi_description%3Dsome%2520name%26promotable_user_id%3D1 단계 a - d와 e를 결합한 전체 베이스 문자열은 다음과 같습니다: GET https://ads.x.com/link_managed_account&callback_url%3Dhttps%253A%252F%252Fmanagingpartner.com%252Flink_account_callback%26client_app_id%3D12345%26fi_description%3Dsome%2520name%26promotable_user_id%3D1 hmac-sha1 알고리즘을 사용하여, 키로 단어 “secret”을 사용해 이 문자열에 서명합니다. 결과는 Base64로 인코딩되며, 마지막 “\n” 없이 표현됩니다(단계 2 및 3):
KBxQMMSpKRrtg9aw3qxK4fTXvUc=
이 서명은 원래 URL 끝에 signature 파라미터로(퍼센트 인코딩된 상태로) 추가됩니다(단계 4):
https://ads.x.com/link_managed_account?callback_url=https%3A%2F%2Fmanagingpartner.com%2Flink_account_callback&client_app_id=12345&fi_description=some%20name&promotable_user_id=1&signature=KBxQMMSpKRrtg9aw3qxK4fTXvUc%3D
파트너 리디렉트 URL(계정 링크 요청 콜백) 서명하기
GET 요청이라고 가정했을 때, 서명할 URL:
https://managingpartner.com/link_account_callback?status=OK&account_id=ABC&funding_instrument_id=DEF
이 URL에는 다음과 같은 파라미터가 포함됩니다:
account_id = ABC, funding_instrument_id = DEF, status = OK
HTTP 메서드와 파라미터가 없는 URL로 구성된 베이스 문자열(단계 a - d)은 다음과 같습니다:
GET https%3A%2F%2Fmanagingpartner.com%2Flink_account_callback&“
e 단계의 하위 단계에서 생성된 쿼리 문자열은 다음과 같습니다:
account_id=ABC&funding_instrument_id=DEF&status=OK
퍼센트 인코딩된 쿼리 문자열은 다음과 같습니다:
account_id%3DABC%26funding_instrument_id%3DDEF%26status%3DOK
단계 a - d와 e를 결합한 전체 베이스 문자열은 다음과 같습니다:
GET https%3A%2F%2Fmanagingpartner.com%2Flink_account_callback&account_id%3DABC%26funding_instrument_id%3DDEF%26status%3DOK
hmac-sha1 알고리즘을 사용하여, 이 문자열에 단어 “secret”과 원래 링크 요청이 이루어진 X 사용자 id인 1 (promotable_user_id = 1, 위 예시 참고)을 결합한 키 “secret&1”으로 서명합니다.
결과는 Base64로 인코딩되며, 마지막 “\n” 없이 표현됩니다(단계 2 및 3): jDSHDkHJIFXpPLVxtA3a9d4bPjM=
이 서명은 그런 다음 signature 파라미터에 (퍼센트 인코딩된 값으로) 원래 URL 끝에 추가됩니다(4단계):
https://managingpartner.com/link_account_callback?&status=OK&account_id=ABC&funding_instrument_id=DEF&signature=jDSHDkHJIFXpPLVxtA3a9d4bPjM%3D
서명 알고리즘은 여러 키를 순환하여 사용할 수 있어야 합니다. 이렇게 하면 여러 개의 공유 키를 동시에 사용할 수 있고, 공유 키를 주기적으로 교체(로테이션)할 수 있습니다.
partner_managed_funding_instrument 생성
온보딩 플로우 반복 호출 / 토큰 갱신
promotable_user_id와 일치하고, 연결된 광고 계정이 존재하며, 모든 것이 정상이라면 사용자는 콜백 URL로 리디렉션되고, 파트너는 OAuth 플로우를 시작하여 access token을 획득할 수 있습니다.
리디렉션 불가 오류 플로우
PMFI에 대한 지속적인 업데이트
게재 위치(Placements)
placements 파라미터로 설정합니다. 가능한 값은 다음과 같습니다.
ALL_ON_TWITTERPUBLISHER_NETWORKTWITTER_PROFILETWITTER_SEARCHTWITTER_TIMELINESPOTLIGHTTREND
product_type 및 objective에 따라 허용되는 게재 위치가 결정됩니다. GET line_items/placements 엔드포인트를 사용하여 각 product type에 대한 유효한 게재 위치 옵션을 조회할 수 있습니다.
또한 아래 표에는 유효한 게재 위치와 objective 조합이 나와 있습니다.
Note:
TWITTER_PROFILE 게재 위치만 단독으로 지정하는 것은 불가능합니다.
Note: TWITTER_SEARCH에는 키워드 타게팅이 반드시 필요합니다.
Note: REACH objective에는 반드시 TWITTER_TIMELINE 게재 위치가 포함되어야 합니다. ALL_ON_TWITTER, TWITTER_TIMELINE을 포함하는 임의의 게재 위치 조합, 또는 TWITTER_TIMELINE만 단독으로 사용할 수 있습니다.
광고 그룹 FAQ
Ad Group란 무엇인가요?
Ad Group는 어떻게 생성하나요?
왜 Ad Groups 지원을 추가해야 하나요?
Ad Groups 캠페인에서 라인 아이템 예산은 캠페인 예산과 어떻게 연관되나요?
광고 그룹이 단일 라인 아이템보다 성과가 더 좋은가요?
가이드
Video Views Preroll Objective
필요한 엔드포인트
- Chunked media upload (동영상 업로드에 사용)
- POST accounts/:account_id/media_library (동영상을 광고 계정에 연결)
- POST accounts/:account_id/campaigns (캠페인 생성)
- GET content_categories (콘텐츠 카테고리와 IAB 카테고리 간 매핑을 조회)
- GET accounts/:account_id/curated_categories
- GET publishers
- POST accounts/:account_id/line_item_curated_categories
- POST accounts/:account_id/line_items (광고 그룹 생성)
- POST accounts/:account_id/media_creatives (광고 그룹에 동영상 연결)
- POST accounts/:account_id/preroll_call_to_action (CTA 및 리다이렉트 URL 설정)
- POST batch/accounts/:account_id/targeting_criteria (타게팅 기준 설정)
단계
비디오 업로드
비디오 미디어 업로드
INIT 호출에 media_category=amplify_video 값을 반드시 전달해야 합니다. 비디오는 청크 단위로 업로드합니다. STATUS 응답의 state 가 succeeded 가 되면 다음 단계로 진행할 수 있습니다. 청크 업로드 엔드포인트를 사용한 미디어 업로드에 대한 자세한 내용은 Promoted Video 개요에서 확인할 수 있습니다.
동영상을 광고 계정에 추가
STATUS 명령을 사용해 반환된 state가 succeeded 상태가 되면, 해당 엔드포인트에서 반환된 media_key를 사용하여 POST accounts/:account_id/media_library 엔드포인트를 호출해 광고주의 미디어 라이브러리에 동영상을 추가합니다.
캠페인 설정
캠페인 생성
objective 값을 VIDEO_VIEWS_PREROLL, product_type 값을 MEDIA로 설정하여 생성해야 합니다. categories 매개변수도 적절한 광고주 비즈니스 카테고리로 설정해야 합니다.
라인 아이템 생성
categories 파라미터를 “Science & Education”으로 설정하려면, 해당 라인 아이템에 대해 iab_categories 전체 집합(즉, "IAB5", "IAB15")을 다음과 같이 설정해야 합니다:
퍼블리셔 선택
선별 카테고리
선별 카테고리를 사용하면 광고주는 미리 설정된 퍼블리셔 그룹을 타게팅할 수 있으며, GET curated_categories 엔드포인트를 사용해 조회할 수 있습니다. 이러한 카테고리는 국가별로 구분되므로, 카테고리의country_code 값을 기준으로 라인 아이템이 해당 국가를 타게팅하도록 설정해야 합니다.
이 카테고리들 중 하나를 사용하려면, 아래 단계를 나열된 순서대로 수행해야 합니다:
- 라인 아이템이 선별 카테고리의
country_code값을 기준으로 적절한 국가를 타게팅하도록 설정해야 합니다. - POST line_item_curated_categories 엔드포인트를 사용하여 라인 아이템을 특정
curated_category_id와 연관 지어야 합니다.
user_id 목록은 GET publishers 엔드포인트를 통해 조회할 수 있습니다. 또한 하나의 라인 아이템은 동시에 하나를 초과하는 선별 카테고리를 타게팅할 수 없습니다.
다음 예시는 선별 카테고리 id b0xt(미국에서만 사용 가능)를 이전 단계에서 생성한 라인 아이템과 연관 짓는 방법을 보여줍니다.
먼저, 라인 아이템의 타게팅 기준을 값 96683cc9126741d로 설정합니다.
콘텐츠 카테고리
id: sr(“News & Current Events”에 매핑됨)를 선택해 라인 아이템에 적용하는 방법을 보여줍니다.
참고: GET curated_categories 응답에 포함된 전체
iab_categories 집합은 타기팅 기준 엔드포인트를 통해 모두 타기팅해야 합니다. 그렇지 않으면 검증 오류가 발생합니다. 계정 미디어(동영상)를 라인 아이템에 연결하기
CTA와 도착 URL 설정
VIDEO_VIEWS_PREROLL objective는 Promoted Tweet 또는 Card를 사용하지 않는다는 점에 유의하세요. 대신 비디오 크리에이티브는 광고 그룹(라인 아이템)에 연결되고, CTA 정보는 preroll_call_to_action 엔터티에 연결됩니다. POST accounts/:account_id/preroll_call_to_action 엔드포인트를 사용하면 버튼 CTA와 도착 URL을 설정할 수 있습니다.
타기팅 기준 설정
CONTENT_PUBLISHER_USER를 사용하십시오. 제외할 핸들의 X user_id 또는 publisher_user_id를 제공해야 합니다.
GET publishers 엔드포인트를 사용하면 콘텐츠 카테고리에서 제외할 user_id 목록을 조회할 수 있습니다. GET curated_categories 응답에 포함된 publisher_user_id는 큐레이션 카테고리에 대해 유사한 제외 목록을 조회하는 데 사용할 수 있습니다.
참고: 큐레이션 카테고리에서는 publisher_user_id를 최대 5개까지, 콘텐츠 카테고리에서는 user_id를 최대 50개까지 제외할 수 있습니다.
캠페인 시작
분석
VIDEO_VIEWS_PREROLL 캠페인의 분석 데이터는 stats 엔드포인트를 사용해 확인할 수 있습니다.
타임라인에서의 키워드 타게팅
어떻게 작동하나요?
targeting_type을 unordered_keywords 또는 phrase_keywords로 설정하기만 하면 됩니다.
빠른 시작 가이드
- placement를
ALL_ON_TWITTER또는TWITTER_TIMELINE으로 설정해 새 line item을 생성합니다. POST accounts/:account_id/line_items - 새로 생성한 이 line item에 대해 타기팅 기준 유형을
BROAD_KEYWORD로 설정하고 키워드 값을 지정합니다. POST accounts/:account_id/targeting_criteria - PUT accounts/:account_id/targeting_criteria를 사용해 키워드를 업데이트할 수 있습니다.
- 캠페인이 집행되면 line item의 통계를 조회해 성과를 측정합니다. GET stats/accounts/:account_id
API 참조 문서
계정
https://ads-api.x.com/12/accounts
Parameters
https://ads-api.x.com/12/accounts/:account_id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t
Example Response
https://ads-api-sandbox.x.com/12/accounts
매개변수
없음
예시 요청
POST https://ads-api-sandbox.x.com/12/accounts
예시 응답
https://ads-api.x.com/12/accounts/:account_id
매개변수
요청 예시
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t?name='API McTestface 2'&industry_type=TECHNOLOGY
응답 예시
https://ads-api-sandbox.x.com/12/accounts/:account_id
매개변수
예시 요청
DELETE https://ads-api-sandbox.x.com/12/accounts/gq12fh
예시 응답
계정 App
https://ads-api.x.com/12/accounts/:account_id/account_apps
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/account_apps
응답 예시
계정 이력
entity_id에 대해 이루어진 변경 사항의 요약을 조회합니다.
참고: 이 엔드포인트는 현재 베타 상태이며 allowlist에 등록되어야 합니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/account_history
파라미터
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/account_history?entity_type=CAMPAIGN&entity_id=fc3h5&count=1
응답 예시
광고주 비즈니스 카테고리
line_items)에서 사용할 수 있는 유효한 광고주 비즈니스 categories를 요청합니다.
참고: 이 카테고리는 PREROLL_VIEWS 목표를 가진 line_items에만 적용되며, 타기팅 기준에 사용되는 content_categories와는 별개입니다.
각 advertiser_business_categories는 IAB Categories 집합을 나타냅니다. PREROLL_VIEWS 목표를 가진 광고 그룹을 생성할 때는 하나 또는 두 개의 advertiser_business_categories를 광고 그룹에 설정해야 합니다. 이는 line item 엔드포인트에서 categories 요청 매개변수 값을 이 엔드포인트를 통해 제공되는 해당 iab_categories 집합으로 설정하여 수행할 수 있습니다.
추가 세부 정보는 Video Views Preroll Objective Guide에서 확인할 수 있습니다.
Resource URL
https://ads-api.x.com/12/advertiser_business_categories
Parameters
요청 매개변수 없음
Example Request
GET https://ads-api.x.com/12/advertiser_business_categories
Example Response
잠재 고객 규모 추정
캠페인의 예상 잠재 고객 규모를 파악합니다.
Content-Type: application/json 헤더를 포함해야 합니다.
참고: 최소 하나의 기본(primary) 타기팅 기준을 지정해야 합니다. 모든 기본 타기팅 기준 목록은 캠페인 타기팅 페이지에서 확인할 수 있습니다.
Resource URL
https://ads-api.x.com/12/accounts/:account_id/audience_estimate
Parameters
Example Request
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/audience_estimate
인증된 사용자 액세스
access_token)가 지정된 광고 계정에 대해 가지고 있는 권한을 조회합니다. 이 권한은 ads.x.com에서 제공되는 권한과 동일합니다.
가능한 값은 다음과 같습니다.
ACCOUNT_ADMIN: 사용자 추가/삭제 및 설정 변경을 포함해, 캠페인을 수정하고 통계를 조회할 수 있는 전체 권한AD_MANAGER: 캠페인을 수정하고 통계를 조회할 수 있는 전체 권한이 있지만, 사용자를 추가/삭제하거나 설정을 변경할 수는 없음CREATIVE_MANAGER: 크리에이티브를 수정하고 미리보기를 볼 수 있는 권한이 있지만, 캠페인을 생성하거나 수정할 수는 없음CAMPAIGN_ANALYST: 캠페인 및 통계를 조회할 수 있는 권한이 있지만, 캠페인을 생성하거나 수정할 수는 없음ANALYST(ads.x.com의 “Organic Analyst”): 오가닉 분석 및 오디언스 인사이트를 조회할 수 있는 권한이 있지만, 캠페인을 생성, 수정 또는 조회할 수는 없음PARTNER_AUDIENCE_MANAGER: 데이터 파트너 오디언스를 조회 및 수정할 수 있는 API 전용 권한이지만, 캠페인, 크리에이티브 또는 기타 오디언스 유형에는 액세스할 수 없음.
TWEET_COMPOSER 권한은 인증된 사용자가 광고주를 대신하여 nullcasted(또는 “Promoted-only”) Tweet을 생성할 수 있음을 나타냅니다. 이는 ACCOUNT_ADMIN, AD_MANAGER 또는 CREATIVE_MANAGER 권한을 가진 사용자에게만 제공됩니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/authenticated_user_access
파라미터
없음
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/authenticated_user_access
응답 예시
입찰 규칙
https://ads-api.x.com/12/bidding_rules
Parameters
Example Request
GET https://ads-api.x.com/12/bidding_rules?currency=USD
Example Response
캠페인
https://ads-api.x.com/12/accounts/:account_id/campaigns
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/campaigns?campaign_ids=8wku2
Example Response
https://ads-api.x.com/12/accounts/:account_id/campaigns/:campaign_id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/campaigns/8wku2
Example Response
https://ads-api.x.com/12/accounts/:account_id/campaigns
Parameters
Example Request
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/campaigns?funding_instrument_id=lygyi&name=demo&daily_budget_amount_local_micro=140000000&entity_status=PAUSED&budget_optimization=CAMPIAGN&standard_delivery=false
Example Response
- 현재 최대 배치 크기는 40입니다.
- 모든 매개변수는 요청 본문으로 전송되며,
Content-Type은application/json이어야 합니다. - 배치 요청은 하나의 그룹으로 함께 실패하거나 성공하며, 오류 및 성공에 대한 모든 API 응답에서 초기 요청의 항목 순서를 그대로 유지합니다.
- 요청 수준 오류(예: 최대 배치 크기 초과)는 응답의
errors객체 아래에 표시됩니다. - 항목 수준 오류(예: 필수 캠페인 매개변수 누락)는 응답의
operation_errors객체 아래에 표시됩니다.
https://ads-api.x.com/12/batch/accounts/:account_id/campaigns
매개변수
요청 예시
POST 'Content-Type: application/json' https://ads-api.x.com/12/batch/accounts/18ce54d4x5t/campaigns
https://ads-api.x.com/12/accounts/:account_id/campaigns/:campaign_id
매개변수
요청 예시
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/campaigns/8wku2?total_budget_amount_local_micro=140000000
응답 예시
https://ads-api.x.com/12/accounts/:account_id/campaigns/:campaign_id
매개변수
예시 요청
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/campaigns/8yn7m
예시 응답
콘텐츠 카테고리
targeting_criteria로 설정할 수 있는 유효한 콘텐츠 categories를 조회합니다.
각 content_category는 하나 이상의 IAB Categories에 매핑됩니다. 이는 배치 targeting_critera 엔드포인트에서 targeting_type을 IAB_CATEGORY로 설정하고, content_categories 요청에서 반환된 해당 iab_categories 집합을 포함하도록 지정함으로써 수행할 수 있습니다. 이렇게 하지 않으면 검증 오류가 발생합니다.
이러한 각 콘텐츠 카테고리에 대한 퍼블리셔 상세 정보는 GET publishers 엔드포인트를 사용하여 조회할 수 있습니다.
자세한 내용은 Video Views Pre-roll Objective Guide를 참조하세요.
리소스 URL
https://ads-api.x.com/12/content_categories
매개변수
요청 매개변수 없음
예시 요청
GET https://ads-api.x.com/12/content_categories
예시 응답
큐레이션 카테고리
country_codes에 대해 사용 가능한 큐레이션 카테고리 목록을 가져옵니다.
각 curated_category는 응답의 country_codes로 지정된 특정 국가에서만 사용 가능합니다.
자세한 내용은 Video Views Pre-roll Objective 가이드에서 확인할 수 있습니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/curated_categories
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/curated_categories?country_codes=US
응답 예시
curated_category_id에 대한 세부 정보를 가져옵니다.
각 curated_category는 응답의 country_codes에 지정된 특정 국가에서만 사용할 수 있습니다.
Resource URL
https://ads-api.x.com/12/accounts/:account_id/curated_categories/:curated_category_id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/curated_categories/9ddrgesiap6o
Example Response
기능
https://ads-api.x.com/12/accounts/:account_id/features
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/features
응답 예시
https://ads-api-sandbox.x.com/12/accounts/:account_id/features
매개변수
요청 예시
POST https://ads-api-sandbox.x.com/12/accounts/gq180y/features?feature_keys=VALIDATED_AGE_TARGETING
응답 예시
https://ads-api-sandbox.x.com/12/accounts/:account_id/features
매개변수
요청 예시
DELETE https://ads-api-sandbox.x.com/12/accounts/gq180y/features?feature_keys=PREROLL_VIEWS_OBJECTIVE
응답 예시
결제 수단
현재 계정에 연결된 일부 또는 모든 자금 조달 수단(funding instrument)의 세부 정보를 조회합니다. Resource URLhttps://ads-api.x.com/12/accounts/:account_id/funding_instruments
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/funding_instruments
Example Response
https://ads-api.x.com/12/accounts/:account_id/funding_instruments/:id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/funding_instruments/lygyi
Example Response
https://ads-api-sandbox.x.com/12/accounts/:account_id/funding_instruments
매개변수
요청 예시
POST https://ads-api-sandbox.x.com/12/accounts/gq1844/funding_instruments?currency=USD&start_time=2017-07-10T00:00:00Z&type=INSERTION_ORDER&end_time=2018-01-10T00:00:00Z&funded_amount_local_micro=140000000000
응답 예시
https://ads-api-sandbox.x.com/12/accounts/:account_id/funding_instruments/:funding_instrument_id
Parameters
Example Request
DELETE https://ads-api-sandbox.x.com/12/accounts/gq1844/funding_instruments/hxt82
Example Response
IAB 카테고리
line_items)에 사용할 수 있는 유효한 App categories를 조회합니다.
Resource URL
https://ads-api.x.com/12/iab_categories
Parameters
Example Request
GET https://ads-api.x.com/12/iab_categories?count=2
Example Response
라인 아이템
https://ads-api.x.com/12/accounts/:account_id/line_items
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/line_items?line_item_ids=itttx
Example Response
https://ads-api.x.com/12/accounts/:account_id/line_items/:line_item_id
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/line_items/itttx
응답 예시
product_type 및 objective여야 합니다.
PROMOTED_ACCOUNT product_type을 사용할 때 line_item에 Tweet을 연결하면, 기본 PROMOTED_ACCOUNT 게재 위치에 더해 모바일 타임라인 게재 위치가 추가됩니다.
android_app_store_identifier 또는 ios_app_store_identifier를 설정하면 홍보되는 모바일 앱과 일치하는 라인 아이템의 타기팅 기준이 자동으로 추가됩니다. 예를 들어 ios_app_store_identifier를 전달하면 iOS에 대한 PLATFORM 타기팅 기준이 추가됩니다.
참고: 캠페인당 라인 아이템은 최대 100개이며, 모든 캠페인을 통틀어 활성 라인 아이템 수는 최대 256개까지 허용됩니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/line_items
매개변수
요청 예시
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/line_items?campaign_id=hwtq0&objective=ENGAGEMENTS&product_type=PROMOTED_TWEETS&placements=ALL_ON_TWITTER&bid_amount_local_micro=3210000&entity_status=PAUSED&daily_budget_amount_local_micro=1000000&start_time=2022-06-15
응답 예시
- 현재 최대 배치 크기는 40입니다.
- 모든 파라미터는 요청 본문으로 전송되며
Content-Type은application/json이어야 합니다. - 배치 요청은 하나의 그룹으로 함께 실패하거나 성공하며, 오류와 성공에 대한 모든 API 응답에서 초기 요청의 항목 순서가 그대로 유지됩니다.
- 요청 수준 오류(예: 최대 배치 크기 초과)는 응답의
errors객체에 표시됩니다. - 항목 수준 오류(예: 필수 line item 파라미터 누락)는 응답의
operation_errors객체에 표시됩니다.
https://ads-api.x.com/12/batch/accounts/:account_id/line_items
Parameters
Example Request
POST 'Content-Type: application/json' https://ads-api.x.com/12/batch/accounts/18ce54d4x5t/line_items
https://ads-api.x.com/12/accounts/:account_id/line_items/:line_item_id
Parameters
요청 예시
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/line_items/9cqi0?bid_amount_local_micro=140000
응답 예시
with_deleted=true가 지정된 경우에만 GET accounts/:account_id/promoted_tweets 및 GET accounts/:account_id/promoted_tweets/:promoted_tweet_id 엔드포인트에서 반환됩니다. 이러한 promoted_tweets는 실제로 삭제되지는 않습니다(응답에서 "deleted": false). 삭제 작업은 하위 리소스로 연쇄(cascade)되지 않습니다.
Resource URL
https://ads-api.x.com/12/accounts/:account_id/line_items/:line_item_id
Parameters
Example Request
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/line_items/9f2ix
Example Response
라인 아이템 선별 카테고리
https://ads-api.x.com/12/accounts/:account_id/line_item_curated_categories
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/abc1/line_item_curated_categories
Example Response
https://ads-api.x.com/12/accounts/:account_id/line_item_curated_categories/:line_item_curated_category_id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/abc1/line_item_curated_categories/yav
Example Response
https://ads-api.x.com/12/accounts/:account_id/line_item_curated_categories
Parameters
Example Request
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/line_item_curated_categories?line_item_id=iqwka&curated_category_id=9ddrgesiap6o
Example Response
https://ads-api.x.com/12/accounts/:account_id/line_item_curated_categories/:line_item_curated_category_id
Parameters
Example Request
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/line_item_curated_categories/xq?curated_category_id=8tujl1p3yn0g
Example Response
https://ads-api.x.com/12/accounts/:account_id/line_item_curated_categories/:line_item_curated_category_id
Parameters
Example Request
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/line_item_curated_categories/xq
Example Response
라인 아이템 게재 위치
placement와 product_type 조합을 조회합니다.
Resource URL
https://ads-api.x.com/12/line_items/placements
Parameters
Example Request
GET https://ads-api.x.com/12/line_items/placements?product_type=PROMOTED_ACCOUNT
Example Response
미디어 크리에이티브
https://ads-api.x.com/12/accounts/:account_id/media_creatives
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/media_creatives?media_creative_ids=1bzq3
Example Response
https://ads-api.x.com/12/accounts/:account_id/media_creatives/:media_creative_id
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/media_creatives/1bzq3
응답 예시
creative_type이 PREROLL인 경우) 또는 이미지 광고(BANNER나 INTERSTITIAL 등)를 Twitter Audience Platform에서 프로모션할 수 있습니다.
참고: Account Media 리소스에 미디어 에셋을 추가하려면 POST accounts/:account_id/media_library 엔드포인트를 사용하세요.
Resource URL
https://ads-api.x.com/12/accounts/:account_id/media_creatives
Parameters
Example Request
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/media_creatives?line_item_id=8v7jo&account_media_id=10miy
Example Response
https://ads-api.x.com/12/accounts/:account_id/media_creatives/:media_creative_id
Parameters
Example Request
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/media_creatives/1bzq3
Example Response
홍보 계정
현재 계정의 하나 이상의 라인 아이템에 연결된 일부 또는 모든 프로모션 계정에 대한 세부 정보를 조회합니다. 응답의user_id로 식별되는 사용자 계정에 대한 사용자 데이터를 얻으려면 GET users/lookup을 사용하세요.
지정한 라인 아이템 중 어느 것도 프로모션 계정을 포함하도록 구성되지 않은 경우 HTTP 400이 반환됩니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/promoted_accounts
매개변수
예시 요청
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/promoted_accounts?promoted_account_ids=19pl2
예시 응답
https://ads-api.x.com/12/accounts/:account_id/promoted_accounts/:promoted_account_id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/promoted_accounts/19pl2
Example Response
user_id)을 연결합니다.
지정한 라인 아이템이 Promoted Accounts와 연결되도록 설정되어 있지 않은 경우 HTTP 400 INCOMPATIBLE_LINE_ITEM 오류가 반환됩니다. 지정한 사용자가 프로모션 자격이 없는 경우 HTTP 400이 반환되며 어떤 사용자도 프로모션되지 않습니다. 제공한 사용자가 이미 프로모션된 상태라면 요청은 무시됩니다.
Promoted Accounts에 대한 자세한 내용은 캠페인 관리 페이지를 참조하세요.
참고: promoted accounts 엔티티는 업데이트(PUT)할 수 없습니다.
Resource URL
https://ads-api.x.com/12/accounts/:account_id/promoted_accounts
Parameters
Example Request
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/promoted_accounts?line_item_id=9bpb2&user_id=756201191646691328
Example Response
https://ads-api.x.com/12/accounts/:account_id/promoted_accounts/:promoted_account_id
Parameters
Example Request
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/promoted_accounts/19pl2
Example Response
프로모션 Tweet
tweet_id 값을 사용합니다.
참고: 상위 라인 아이템이 삭제된 경우, 요청에 with_deleted=true가 지정된 경우에만 promoted_tweets가 반환됩니다. 단, 이 promoted_tweets는 실제로 삭제되지 않습니다(응답에서 "deleted": false).
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/promoted_tweets
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/promoted_tweets?promoted_tweet_ids=1efwlo
응답 예시
with_deleted=true를 지정한 경우에만 promoted_tweets가 반환됩니다. 이 promoted_tweets는 실제로 삭제된 것이 아닙니다(응답에서 "deleted": false).
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/promoted_tweets/:promoted_tweet_id
파라미터
예시 요청
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/promoted_tweets/1efwlo
예시 응답
PROMOTED_ACCOUNT product type을 사용할 때 line_item에 Tweet을 연결하면 기본 PROMOTED_ACCOUNT 노출에 더해 모바일 타임라인 노출이 추가됩니다.
참고: 프로모션 Tweet 엔티티는 업데이트(PUT)할 수 없습니다.
Resource URL
https://ads-api.x.com/12/accounts/:account_id/promoted_tweets
Parameters
Example Request
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/promoted_tweets?line_item_id=8v7jo&tweet_ids=822333526255120384
Example Response
https://ads-api.x.com/12/accounts/:account_id/promoted_tweets/:promoted_tweet_id
Parameters
Example Request
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/promoted_tweets/1gp8a5
Example Response
프로모션 대상 사용자
FULL 또는 RETWEETS_ONLY 중 하나입니다. 이는 해당 계정이 프로모션할 수 있는 콘텐츠의 유형을 결정합니다. 광고주는 다른 사용자의 콘텐츠를 프로모션하려면 허가를 받아야 하며, 해당 사용자를 RETWEETS_ONLY 프로모션 가능 사용자로 계정에 추가해 달라고 Twitter에 연락해야 합니다.
권한이 올바르게 설정되어 있다면, 프로모션하려는 Tweet의 Tweet ID를 직접 참조하는 프로모션용 제품 엔드포인트에 요청을 보낼 수 있습니다. 게시된 Tweet을 프로모션하려면 POST accounts/:account_id/promoted-tweets 엔드포인트를 사용할 수 있고, 다른 Twitter Ads 계정의 예약된 Tweet을 프로모션하려면 POST accounts/:account_id/scheduled-promoted-tweets 엔드포인트를 사용할 수 있습니다.
대상 Tweet을 리트윗할 필요는 없습니다. 이 방식으로 Tweet을 프로모션하면, 반환되는 tweet_id는 제공한 Tweet ID와 달라집니다. 내부적으로는 해당 Tweet이 nullcast된(nullcasted) Tweet으로 리트윗된 다음 프로모션됩니다. 반환되는 tweet_id는 이 새 Tweet에 해당합니다.
Resource URL
https://ads-api.x.com/12/accounts/:account_id/promotable_users
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/promotable_users?promotable_user_ids=l310s
Example Response
FULL 또는 RETWEETS_ONLY입니다. 이는 계정이 프로모션할 수 있는 콘텐츠의 유형을 제어합니다.
광고주는 다른 사용자의 콘텐츠를 프로모션하기 위한 권한을 얻어야 합니다. 권한이 올바르게 설정되어 있으면, 프로모션하려는 트윗의 Tweet ID를 직접 참조하는 프로모션 상품 엔드포인트에 요청을 보낼 수 있습니다.
대상 트윗을 리트윗할 필요는 없습니다. 이 방식을 사용해 트윗을 프로모션하면, 반환되는 tweet_id는 제공한 Tweet ID와 달라집니다. 내부적으로는 해당 트윗이 널캐스트된 트윗(nullcasted Tweet)으로 리트윗된 다음 프로모션됩니다. 반환되는 tweet_id는 이 새 트윗에 해당합니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/promotable_users/:promotable_user_id
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/promotable_users/l310s
응답 예시
게시자
https://ads-api.x.com/12/publishers
매개변수
요청 매개변수는 없습니다.
요청 예시
GET https://ads-api.x.com/12/publishers
응답 예시
추천 항목
https://ads-api.x.com/5/accounts/:account_id/recommendations
매개변수
요청 예시
GET https://ads-api.x.com/5/accounts/18ce54d4x5t/recommendations
응답 예시
https://ads-api.x.com/5/accounts/:account_id/recommendations/:recommendation_id
Parameters
Example Request
GET https://ads-api.x.com/5/accounts/18ce54d4x5t/recommendations/62ce8zza1q0w
Example Response
예약된 프로모션 Tweet
https://ads-api.x.com/12/accounts/:account_id/scheduled_promoted_tweets
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/scheduled_promoted_tweets?scheduled_promoted_tweet_ids=1xboq
Example Response
https://ads-api.x.com/12/accounts/:account_id/scheduled_promoted_tweets/:scheduled_promoted_tweet_id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/scheduled_promoted_tweets/1xboq
Example Response
https://ads-api.x.com/12/accounts/:account_id/scheduled_promoted_tweets
매개변수
요청 예시
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/scheduled_promoted_tweets?line_item_id=8xdpe&scheduled_tweet_id=870358555227860992
응답 예시
scheduled_promoted_tweets는 예약된 Tweet의 scheduled_at 시간 이전에만 삭제할 수 있습니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/scheduled_tweets/:scheduled_tweet_id
매개변수
요청 예시
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/scheduled_promoted_tweets/1xtfl
응답 예시
타겟팅 조건
https://ads-api.x.com/12/accounts/:account_id/targeting_criteria
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/targeting_criteria?line_item_ids=8u94t
Example Response
https://ads-api.x.com/12/accounts/:account_id/targeting_criteria/:targeting_criterion_id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/targeting_criteria/eijd4y
Example Response
targeting_value를 찾으려면 Targeting Options 페이지를 참고하세요. 최신 타게팅 type 값 세트를 사용하고 있는지 확인하기 위해, 모든 데이터를 매주 한 번씩 갱신할 것을 권장합니다. 값과 사용 가능한 타게팅 기준은 수시로 변경되며, 대부분은 자주 바뀌지 않지만 일부는 자주 변경될 수 있습니다. 이러한 값이 변경되지 않으리라는 보장은 없습니다.
BROAD_KEYWORD, EXACT_KEYWORD, PHRASE_KEYWORD, UNORDERED_KEYWORD 타게팅 type을 targeting_value에 지정된 키워드와 함께 사용하세요. 키워드를 제외하려면 요청 파라미터 operator_type을 NE로 설정하세요. 각 type에 대한 자세한 설명은 targeting keyword types을 참고하세요.
참고: 각 라인 아이템(line item)마다 하나의 연령 버킷만 타게팅할 수 있습니다.
참고: Custom Audience를 타게팅하려면, 해당 Audience가 타게팅 가능해야 합니다. 즉, targerable 값이 반드시 true여야 합니다.
참고: 타게팅 type TV_SHOW를 사용할 때는, TV_SHOW 타게팅을 설정하기 전에 해당 라인 아이템에 최소 하나의 LOCATION 타게팅 기준이 있어야 하며, 모든 LOCATION은 타게팅 중인 TV_SHOW와 동일한 로케일(locale) 내에 있어야 합니다.
Resource URL
https://ads-api.x.com/12/accounts/:account_id/targeting_criteria
Parameters
Example Request
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/targeting_criteria?line_item_id=619jl&targeting_type=BROAD_KEYWORD&targeting_value=technology
예시 응답
- 현재 최대 배치 크기는 500입니다.
- 모든 매개변수는 요청 본문에 포함되며,
Content-Type으로application/json이 필요합니다. - 배치 요청은 그룹 단위로 전부 실패하거나 전부 성공하며, 성공 및 오류에 대한 모든 API 응답에서 초기 요청의 항목 순서가 그대로 유지됩니다.
- 요청 수준 오류(예: 최대 배치 크기 초과)는 응답의
errors객체 아래에 표시됩니다. - 항목 수준 오류(예: 필수 타기팅 기준(Targeting Criteria) 매개변수 누락)는 응답의
operation_errors객체 아래에 표시됩니다.
https://ads-api.x.com/12/batch/accounts/:account_id/targeting_criteria
매개변수
요청 예제
POST https://ads-api.x.com/12/batch/accounts/18ce54d4x5t/targeting_criteria
https://ads-api.x.com/12/accounts/:account_id/targeting_criteria/:targeting_criterion_id
Parameters
Example Request
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/targeting_criteria/dpl3a6
Example Response
타겟팅 옵션
https://ads-api.x.com/12/targeting_criteria/app_store_categories
Parameters
Example Request
GET https://ads-api.x.com/12/targeting_criteria/app_store_categories?q=music&os_type=IOS
Example Response
https://ads-api.x.com/12/targeting_criteria/conversations
Parameters
Example Request
GET https://ads-api.x.com/12/targeting_criteria/conversations?count=2
Example Response
https://ads-api.x.com/12/targeting_criteria/devices
Parameters
Example Request
GET https://ads-api.x.com/12/targeting_criteria/devices?count=2&q=iphone
Example Response
start_time 및 end_time 값은 이벤트의 로캘과 시간대와 관계없이 UTC±00:00으로 표현됩니다. 이벤트의 start_time 및 end_time 값을 조회하고 사용할 때 이 설계를 염두에 두어야 합니다. 예를 들어, 미국의 Independence Day는 UTC±00:00 기준으로 start_time=2017-07-04T00:00:00Z 및 end_time=2017-07-05T00:00:00Z로 표현되며, 이를 통해 미국 내 여러 시간대에 걸쳐 존재하는 공휴일과 관련된 문제를 방지할 수 있습니다.
Resource URL
https://ads-api.x.com/12/targeting_criteria/events
Parameters
Example Request
GET https://ads-api.x.com/12/targeting_criteria/events?count=1
Example Response
https://ads-api.x.com/12/targeting_criteria/interests
매개변수
요청 예시
GET https://ads-api.x.com/12/targeting_criteria/interests?q=books
응답 예시
https://ads-api.x.com/12/targeting_criteria/languages
매개변수
요청 예시
GET https://ads-api.x.com/12/targeting_criteria/languages?q=english
응답 예시
location_type 요청 파라미터와 함께 CITIES enum을 사용합니다.
Designated Market Areas(DMA)를 타게팅하려면 METROS enum을 사용합니다.
Resource URL
https://ads-api.x.com/12/targeting_criteria/locations
Parameters
Example Request
GET https://ads-api.x.com/12/targeting_criteria/locations?location_type=CITIES&q=los angeles
Example Response
https://ads-api.x.com/12/targeting_criteria/network_operators
Parameters
Example Request
GET https://ads-api.x.com/12/targeting_criteria/network_operators?count=5&country_code=US
Example Response
https://ads-api.x.com/12/targeting_criteria/platform_versions
매개변수
예시 요청
GET https://ads-api.x.com/12/targeting_criteria/platform_versions
예시 응답
https://ads-api.x.com/12/targeting_criteria/platforms
Parameters
Example Request
GET https://ads-api.x.com/12/targeting_criteria/platforms
Example Response
https://ads-api.x.com/12/targeting_criteria/tv_markets
Parameters
없음
Example Request
GET https://ads-api.x.com/12/targeting_criteria/tv_markets
Example Response
estimated_users 값이 1000으로 표시됩니다.
참고: TV 채널 및 장르 타기팅 옵션은 더 이상 지원되지 않습니다.
Resource URL
https://ads-api.x.com/12/targeting_criteria/tv_shows
Parameters
Example Request
GET https://ads-api.x.com/12/targeting_criteria/tv_shows?locale=en-US&q=news&count=1
Example Response
타게팅 추천
https://ads-api.x.com/12/accounts/:account_id/targeting_suggestions
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/targeting_suggestions?suggestion_type=KEYWORD&targeting_values=developers&count=2"
Example Response
세금 설정
https://ads-api.x.com/12/accounts/:account_id/tax_settings
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/tax_settings
Example Response
https://ads-api.x.com/12/accounts/:account_id/tax_settings
Parameters
예시 요청
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/tax_settings?address_name=ABC, Co.
예시 응답
https://ads-api.x.com/12/accounts/:account_id/tracking_tags
매개변수
요청 예시
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/tracking_tags?tracking_tag_ids=3m82
응답 예시
https://ads-api.x.com/12/accounts/:account_id/tracking_tags/:tracking_tag_id
매개변수
예시 요청
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/tracking_tags/555j
예시 응답
https://ads-api.x.com/12/accounts/:account_id/tracking_tags
매개변수
요청 예시
POST https://ads-api.x.com/12/accounts/18ce54d4x5t/tracking_tags?line_item_id=fdwcl&tracking_tag_type=IMPRESSION_TAG&tracking_tag_url=https://ad.doubleclick.net/ddm/trackimp/N1234.2061500TWITTER-OFFICIAL/B9156151.125630439;dc_trk_aid=1355;dc_trk_cid=8675309
응답 예시
https://ads-api.x.com/12/accounts/:account_id/tracking_tags/:tracking_tag_id
매개변수
요청 예시
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/tracking_tags/3m82?tracking_tag_url=https://ad.doubleclick.net/ddm/trackimp/N1234.2061500TWITTER-OFFICIAL/B9156151.125630439;dc_trk_aid=1355;dc_trk_cid=8675309
응답 예시
https://ads-api.x.com/12/accounts/:account_id/tracking_tags/:tracking_tag_id
Parameters
Example Request
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/tracking_tags/555j
Example Response
사용자 설정
https://ads-api.x.com/12/accounts/:account_id/user_settings/:user_id
Parameters
Example Request
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/user_settings/756201191646691328
Example Response
https://ads-api.x.com/12/accounts/:account_id/user_settings/:user_id
Parameters
Example Request
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/user_settings/756201191646691328?notification_email='user@domain.com'&subscribe_email_types=ACCOUNT_PERFORMANCE,PERFORMANCE_IMPROVEMENT"
Example Response