ads
1. 광고 네 채널 합본 성과 조회 (Google Ads 연동)google. ads. channels. report
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
Google Ads 계정 하나의 네 캠페인 유형(검색, 디스플레이, 최대실적, 디맨드젠) 성과를 한 번에 조회합니다. 동영상 캠페인은 포함되지 않으며 동영상 광고 성과 조회를 씁니다. 조회 전용이며 기간은 양끝 포함이고 광고 계정 자체의 시간대를 따릅니다(결과에 함께 옵니다). 응답에서 metrics.impressions, metrics.clicks, metrics.ctr 세 지표는 요청한 이름 그대로 공통 지표 칸에 실리고, 그 외 지표는 전부 channel_metrics 아래 요청한 이름으로 돌아옵니다. metrics.conversions 는 channel_metrics 에 남습니다 - Google Ads 와 GA4 가 세는 방식이 다르기 때문입니다. metrics.cost_micros 를 요청하면 각 행에 metrics.cost 도 함께 옵니다 - 같은 금액을 계정 통화의 최소단위 정수로(반올림) 바꾼 값입니다. 최상위의 currency_code 와 currency_minor_unit_digits 가 소수점 위치를 알려줍니다(원화는 0, 달러는 2). 통화를 모르면 metrics.cost 는 없고 원값인 metrics.cost_micros 만 돌아옵니다. row_limit 은 이 호출이 돌려주는 행 수일 뿐 Google 에 보내는 제한이 아닙니다 - Google 의 페이지 크기가 고정이기 때문입니다. 더 가져올 행이 있으면 결과에 truncated 와 data_availability: partial_collection 이 표시됩니다. next_page_token 은 이어받기가 안전할 때만 채워지며, 없으면 기간을 좁히거나 row_limit 을 올려야 합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| customer_ | string | - | Y | Google Ads 계정 번호(하이픈 있거나 없거나 - "123-456-7890" 과 "1234567890" 은 같은 계정입니다). 이 연동에서 고객이 선택한 계정이어야 합니다 | |
| dimensions | string | - | N | 선택적 분류 기준 필드 이름(예: ["segments.date", "campaign.name"]) | |
| end_ | string | 10 | Y | 조회 종료일 형식만 받으며 해당일을 포함합니다 | |
| metrics | string | - | Y | 조회할 Google Ads 지표 필드 이름 목록(예: ["metrics.impressions", "metrics.clicks", "metrics.cost_micros"]). 전체 필드 경로를 씁니다 | |
| page_ | string | - | N | 이전 호출의 next_page_token 값. 생략하면 첫 페이지입니다 | |
| row_ | string | - | N | 반환할 최대 행 수. 생략하면 기본값을 씁니다 | |
| start_ | string | 10 | Y | 조회 시작일 형식만 받으며 해당일을 포함합니다 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-report-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "google",
"action": "google.ads.channels.report",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"customer_id": "<필수>",
"end_date": "<필수>",
"metrics": "<필수>",
"start_date": "<필수>"
}
}'Response
이 API 는 기관 응답 본문을 그대로 전달합니다. 고정 필드 목록이 없습니다.
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "sandbox",
"provider": "google",
"action": "google.ads.channels.report",
"submitted_at": "2026-05-27T12:34:56+09:00"
}2. Demand Gen 광고 성과 조회 (Google Ads 연동)google. ads. demand_ gen. report
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
Google Ads 계정 하나의 Demand Gen 캠페인 기간별 성과를 조회합니다. 조회 전용이며 기간은 양끝 포함이고 광고 계정 자체의 시간대를 따릅니다(결과에 함께 옵니다). 응답에서 metrics.impressions, metrics.clicks, metrics.ctr 세 지표는 요청한 이름 그대로 공통 지표 칸에 실리고, 그 외 지표는 전부 channel_metrics 아래 요청한 이름으로 돌아옵니다. metrics.conversions 는 channel_metrics 에 남습니다 - Google Ads 와 GA4 가 세는 방식이 다르기 때문입니다. metrics.cost_micros 를 요청하면 각 행에 metrics.cost 도 함께 옵니다 - 같은 금액을 계정 통화의 최소단위 정수로(반올림) 바꾼 값입니다. 최상위의 currency_code 와 currency_minor_unit_digits 가 소수점 위치를 알려줍니다(원화는 0, 달러는 2). 통화를 모르면 metrics.cost 는 없고 원값인 metrics.cost_micros 만 돌아옵니다. row_limit 은 이 호출이 돌려주는 행 수일 뿐 Google 에 보내는 제한이 아닙니다 - Google 의 페이지 크기가 고정이기 때문입니다. 더 가져올 행이 있으면 결과에 truncated 와 data_availability: partial_collection 이 표시됩니다. next_page_token 은 이어받기가 안전할 때만 채워지며, 없으면 기간을 좁히거나 row_limit 을 올려야 합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| customer_ | string | - | Y | Google Ads 계정 번호(하이픈 있거나 없거나 - "123-456-7890" 과 "1234567890" 은 같은 계정입니다). 이 연동에서 고객이 선택한 계정이어야 합니다 | |
| dimensions | string | - | N | 선택적 분류 기준 필드 이름(예: ["segments.date", "campaign.name"]) | |
| end_ | string | 10 | Y | 조회 종료일 형식만 받으며 해당일을 포함합니다 | |
| metrics | string | - | Y | 조회할 Google Ads 지표 필드 이름 목록(예: ["metrics.impressions", "metrics.clicks", "metrics.cost_micros"]). 전체 필드 경로를 씁니다 | |
| page_ | string | - | N | 이전 호출의 next_page_token 값. 생략하면 첫 페이지입니다 | |
| row_ | string | - | N | 반환할 최대 행 수. 생략하면 기본값을 씁니다 | |
| start_ | string | 10 | Y | 조회 시작일 형식만 받으며 해당일을 포함합니다 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-report-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "google",
"action": "google.ads.demand_gen.report",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"customer_id": "<필수>",
"end_date": "<필수>",
"metrics": "<필수>",
"start_date": "<필수>"
}
}'Response
이 API 는 기관 응답 본문을 그대로 전달합니다. 고정 필드 목록이 없습니다.
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "sandbox",
"provider": "google",
"action": "google.ads.demand_gen.report",
"submitted_at": "2026-05-27T12:34:56+09:00"
}3. 디스플레이 광고 성과 조회 (Google Ads 연동)google. ads. display. report
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
Google Ads 계정 하나의 디스플레이(Display) 캠페인 기간별 성과를 조회합니다. 조회 전용이며 기간은 양끝 포함이고 광고 계정 자체의 시간대를 따릅니다(결과에 함께 옵니다). 응답에서 metrics.impressions, metrics.clicks, metrics.ctr 세 지표는 요청한 이름 그대로 공통 지표 칸에 실리고, 그 외 지표는 전부 channel_metrics 아래 요청한 이름으로 돌아옵니다. metrics.conversions 는 channel_metrics 에 남습니다 - Google Ads 와 GA4 가 세는 방식이 다르기 때문입니다. metrics.cost_micros 를 요청하면 각 행에 metrics.cost 도 함께 옵니다 - 같은 금액을 계정 통화의 최소단위 정수로(반올림) 바꾼 값입니다. 최상위의 currency_code 와 currency_minor_unit_digits 가 소수점 위치를 알려줍니다(원화는 0, 달러는 2). 통화를 모르면 metrics.cost 는 없고 원값인 metrics.cost_micros 만 돌아옵니다. row_limit 은 이 호출이 돌려주는 행 수일 뿐 Google 에 보내는 제한이 아닙니다 - Google 의 페이지 크기가 고정이기 때문입니다. 더 가져올 행이 있으면 결과에 truncated 와 data_availability: partial_collection 이 표시됩니다. next_page_token 은 이어받기가 안전할 때만 채워지며, 없으면 기간을 좁히거나 row_limit 을 올려야 합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| customer_ | string | - | Y | Google Ads 계정 번호(하이픈 있거나 없거나 - "123-456-7890" 과 "1234567890" 은 같은 계정입니다). 이 연동에서 고객이 선택한 계정이어야 합니다 | |
| dimensions | string | - | N | 선택적 분류 기준 필드 이름(예: ["segments.date", "campaign.name"]) | |
| end_ | string | 10 | Y | 조회 종료일 형식만 받으며 해당일을 포함합니다 | |
| metrics | string | - | Y | 조회할 Google Ads 지표 필드 이름 목록(예: ["metrics.impressions", "metrics.clicks", "metrics.cost_micros"]). 전체 필드 경로를 씁니다 | |
| page_ | string | - | N | 이전 호출의 next_page_token 값. 생략하면 첫 페이지입니다 | |
| row_ | string | - | N | 반환할 최대 행 수. 생략하면 기본값을 씁니다 | |
| start_ | string | 10 | Y | 조회 시작일 형식만 받으며 해당일을 포함합니다 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-report-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "google",
"action": "google.ads.display.report",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"customer_id": "<필수>",
"end_date": "<필수>",
"metrics": "<필수>",
"start_date": "<필수>"
}
}'Response
이 API 는 기관 응답 본문을 그대로 전달합니다. 고정 필드 목록이 없습니다.
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "sandbox",
"provider": "google",
"action": "google.ads.display.report",
"submitted_at": "2026-05-27T12:34:56+09:00"
}4. Performance Max 광고 성과 조회 (Google Ads 연동)google. ads. pmax. report
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
Google Ads 계정 하나의 Performance Max 캠페인 기간별 성과를 조회합니다. Performance Max 는 광고그룹(ad group) 관련 필드를 보고하지 않으므로, 그런 필드를 요청하면 활동 없음으로 오해될 빈 결과 대신 명확한 사유와 함께 거부됩니다. 조회 전용이며 기간은 양끝 포함이고 광고 계정 자체의 시간대를 따릅니다(결과에 함께 옵니다). 응답에서 metrics.impressions, metrics.clicks, metrics.ctr 세 지표는 요청한 이름 그대로 공통 지표 칸에 실리고, 그 외 지표는 전부 channel_metrics 아래 요청한 이름으로 돌아옵니다. metrics.conversions 는 channel_metrics 에 남습니다 - Google Ads 와 GA4 가 세는 방식이 다르기 때문입니다. metrics.cost_micros 를 요청하면 각 행에 metrics.cost 도 함께 옵니다 - 같은 금액을 계정 통화의 최소단위 정수로(반올림) 바꾼 값입니다. 최상위의 currency_code 와 currency_minor_unit_digits 가 소수점 위치를 알려줍니다(원화는 0, 달러는 2). 통화를 모르면 metrics.cost 는 없고 원값인 metrics.cost_micros 만 돌아옵니다. row_limit 은 이 호출이 돌려주는 행 수일 뿐 Google 에 보내는 제한이 아닙니다 - Google 의 페이지 크기가 고정이기 때문입니다. 더 가져올 행이 있으면 결과에 truncated 와 data_availability: partial_collection 이 표시됩니다. next_page_token 은 이어받기가 안전할 때만 채워지며, 없으면 기간을 좁히거나 row_limit 을 올려야 합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| customer_ | string | - | Y | Google Ads 계정 번호(하이픈 있거나 없거나 - "123-456-7890" 과 "1234567890" 은 같은 계정입니다). 이 연동에서 고객이 선택한 계정이어야 합니다 | |
| dimensions | string | - | N | 선택적 분류 기준 필드 이름(예: ["segments.date", "campaign.name"]) | |
| end_ | string | 10 | Y | 조회 종료일 형식만 받으며 해당일을 포함합니다 | |
| metrics | string | - | Y | 조회할 Google Ads 지표 필드 이름 목록(예: ["metrics.impressions", "metrics.clicks", "metrics.cost_micros"]). 전체 필드 경로를 씁니다 | |
| page_ | string | - | N | 이전 호출의 next_page_token 값. 생략하면 첫 페이지입니다 | |
| row_ | string | - | N | 반환할 최대 행 수. 생략하면 기본값을 씁니다 | |
| start_ | string | 10 | Y | 조회 시작일 형식만 받으며 해당일을 포함합니다 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-report-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "google",
"action": "google.ads.pmax.report",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"customer_id": "<필수>",
"end_date": "<필수>",
"metrics": "<필수>",
"start_date": "<필수>"
}
}'Response
이 API 는 기관 응답 본문을 그대로 전달합니다. 고정 필드 목록이 없습니다.
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "sandbox",
"provider": "google",
"action": "google.ads.pmax.report",
"submitted_at": "2026-05-27T12:34:56+09:00"
}5. 검색 광고 성과 조회 (Google Ads 연동)google. ads. search. report
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
Google Ads 계정 하나의 검색(Search) 캠페인 기간별 성과를 조회합니다. 조회 전용이며 기간은 양끝 포함이고 광고 계정 자체의 시간대를 따릅니다(결과에 함께 옵니다). 응답에서 metrics.impressions, metrics.clicks, metrics.ctr 세 지표는 요청한 이름 그대로 공통 지표 칸에 실리고, 그 외 지표는 전부 channel_metrics 아래 요청한 이름으로 돌아옵니다. metrics.conversions 는 channel_metrics 에 남습니다 - Google Ads 와 GA4 가 세는 방식이 다르기 때문입니다. metrics.cost_micros 를 요청하면 각 행에 metrics.cost 도 함께 옵니다 - 같은 금액을 계정 통화의 최소단위 정수로(반올림) 바꾼 값입니다. 최상위의 currency_code 와 currency_minor_unit_digits 가 소수점 위치를 알려줍니다(원화는 0, 달러는 2). 통화를 모르면 metrics.cost 는 없고 원값인 metrics.cost_micros 만 돌아옵니다. row_limit 은 이 호출이 돌려주는 행 수일 뿐 Google 에 보내는 제한이 아닙니다 - Google 의 페이지 크기가 고정이기 때문입니다. 더 가져올 행이 있으면 결과에 truncated 와 data_availability: partial_collection 이 표시됩니다. next_page_token 은 이어받기가 안전할 때만 채워지며, 없으면 기간을 좁히거나 row_limit 을 올려야 합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| customer_ | string | - | Y | Google Ads 계정 번호(하이픈 있거나 없거나 - "123-456-7890" 과 "1234567890" 은 같은 계정입니다). 이 연동에서 고객이 선택한 계정이어야 합니다 | |
| dimensions | string | - | N | 선택적 분류 기준 필드 이름(예: ["segments.date", "campaign.name"]) | |
| end_ | string | 10 | Y | 조회 종료일 형식만 받으며 해당일을 포함합니다 | |
| metrics | string | - | Y | 조회할 Google Ads 지표 필드 이름 목록(예: ["metrics.impressions", "metrics.clicks", "metrics.cost_micros"]). 전체 필드 경로를 씁니다 | |
| page_ | string | - | N | 이전 호출의 next_page_token 값. 생략하면 첫 페이지입니다 | |
| row_ | string | - | N | 반환할 최대 행 수. 생략하면 기본값을 씁니다 | |
| start_ | string | 10 | Y | 조회 시작일 형식만 받으며 해당일을 포함합니다 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-report-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "google",
"action": "google.ads.search.report",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"customer_id": "<필수>",
"end_date": "<필수>",
"metrics": "<필수>",
"start_date": "<필수>"
}
}'Response
이 API 는 기관 응답 본문을 그대로 전달합니다. 고정 필드 목록이 없습니다.
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "sandbox",
"provider": "google",
"action": "google.ads.search.report",
"submitted_at": "2026-05-27T12:34:56+09:00"
}6. 동영상 광고 성과 조회 (Google Ads 연동)google. ads. video. report
샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.
Google Ads 계정 하나의 동영상(Video) 캠페인 기간별 성과를 조회합니다. 동영상 전용 지표 이름은 metrics.video_trueview_views 와 metrics.video_trueview_view_rate 이며, metrics.video_views 는 없습니다. 조회 전용이며 기간은 양끝 포함이고 광고 계정 자체의 시간대를 따릅니다(결과에 함께 옵니다). 응답에서 metrics.impressions, metrics.clicks, metrics.ctr 세 지표는 요청한 이름 그대로 공통 지표 칸에 실리고, 그 외 지표는 전부 channel_metrics 아래 요청한 이름으로 돌아옵니다. metrics.conversions 는 channel_metrics 에 남습니다 - Google Ads 와 GA4 가 세는 방식이 다르기 때문입니다. metrics.cost_micros 를 요청하면 각 행에 metrics.cost 도 함께 옵니다 - 같은 금액을 계정 통화의 최소단위 정수로(반올림) 바꾼 값입니다. 최상위의 currency_code 와 currency_minor_unit_digits 가 소수점 위치를 알려줍니다(원화는 0, 달러는 2). 통화를 모르면 metrics.cost 는 없고 원값인 metrics.cost_micros 만 돌아옵니다. row_limit 은 이 호출이 돌려주는 행 수일 뿐 Google 에 보내는 제한이 아닙니다 - Google 의 페이지 크기가 고정이기 때문입니다. 더 가져올 행이 있으면 결과에 truncated 와 data_availability: partial_collection 이 표시됩니다. next_page_token 은 이어받기가 안전할 때만 채워지며, 없으면 기간을 좁히거나 row_limit 을 올려야 합니다.
Request
| 순번 | 변수명 | 필수 | 설명 |
|---|---|---|---|
| Authorization | Y | API 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다. | |
| X- | Y | 호출 환경입니다.
| |
| Idempotency- | Y | 재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다. | |
| Content- | Y | 요청 본문 형식입니다.
| |
| X- | N | 추적 아이디입니다. 지정하지 않으면 서버가 발급합니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| provider | string | - | Y | 호출할 기관입니다.
| |
| action | string | - | Y | 호출할 작업입니다.
| |
| account_ | string | 36 | 조건부 | 등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다. | |
| params | object | - | Y | 작업 파라미터입니다. 아래 params 파라미터 표의 필수 항목을 채워 보냅니다. | |
| encrypted_ | object | - | N | 민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다. |
| 순번 | 변수명 | 타입 | 길이 | 필수 | 설명 |
|---|---|---|---|---|---|
| customer_ | string | - | Y | Google Ads 계정 번호(하이픈 있거나 없거나 - "123-456-7890" 과 "1234567890" 은 같은 계정입니다). 이 연동에서 고객이 선택한 계정이어야 합니다 | |
| dimensions | string | - | N | 선택적 분류 기준 필드 이름(예: ["segments.date", "campaign.name"]) | |
| end_ | string | 10 | Y | 조회 종료일 형식만 받으며 해당일을 포함합니다 | |
| metrics | string | - | Y | 조회할 Google Ads 지표 필드 이름 목록(예: ["metrics.impressions", "metrics.clicks", "metrics.cost_micros"]). 전체 필드 경로를 씁니다 | |
| page_ | string | - | N | 이전 호출의 next_page_token 값. 생략하면 첫 페이지입니다 | |
| row_ | string | - | N | 반환할 최대 행 수. 생략하면 기본값을 씁니다 | |
| start_ | string | 10 | Y | 조회 시작일 형식만 받으며 해당일을 포함합니다 |
curl --request POST \
--url 'https://api.xdata.kr/v1/jobs' \
--header 'Authorization: Basic {base64(client_id:client_secret)}' \
--header 'X-Env-Scope: sandbox' \
--header 'Idempotency-Key: demo-report-001' \
--header 'Content-Type: application/json' \
--data '{
"provider": "google",
"action": "google.ads.video.report",
"account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
"params": {
"customer_id": "<필수>",
"end_date": "<필수>",
"metrics": "<필수>",
"start_date": "<필수>"
}
}'Response
이 API 는 기관 응답 본문을 그대로 전달합니다. 고정 필드 목록이 없습니다.
{
"job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
"status": "QUEUED",
"env_scope": "sandbox",
"provider": "google",
"action": "google.ads.video.report",
"submitted_at": "2026-05-27T12:34:56+09:00"
}