이 가이드는 Singular 파트너를 위한 것입니다. 파트너는 Partner Portal 또는 API를 통해 광고주의 데이터를 일부 액세스할 수 있습니다.
Singular 고객인 경우, 아래 링크를 참조하시기 바랍니다: 보고 API 참조 및 Singular 보고 API 시작하기.
Singular 파트너로서, Singular Reporting API를 사용하여 Singular에 연결된 광고주의 데이터를 액세스할 수 있습니다.
API를 통해 각 조직에서 액세스할 수 있는 데이터는 Partner Portal에서 사용할 수 있는 데이터와 동일합니다.
Reporting API 기본 사항
보고서를 실행하기 전에, 다음 정보가 필요합니다:
- Singular API 키. Partner Portal에서 확인할 수 있습니다. (자세한 내용은 Partner Portal 사용을 참조).
- 액세스하려는 광고주의 조직 키. 고객 계정 조회 API 엔드포인트를 쿼리하여 광고주의 이름 및 고유 조직 키 목록을 가져옵니다.
- 보고서 필터링 옵션. Filters API 엔드포인트를 쿼리하여 API 키와 광고주의 조직 키를 사용해 각 조직의 필터링 옵션을 확인합니다.
- 이벤트 및 코호트 기간. Partner Portal을 확인합니다. 특정 광고주에 대해 Portal에서 사용할 수 있는 모든 이벤트는 API를 통해서도 사용할 수 있습니다.
보고서를 실행하려면, 두 가지 주요 엔드포인트를 사용합니다:
- 특정 조직에서 원하는 데이터를 가져오기 위해 Create Async Report를 쿼리합니다.
- 보고서 상태를 확인하고 실행이 완료되었을 때 보고서에 액세스하려면 Get Report Status를 쿼리합니다.
고객 계정 조회 엔드포인트
GET | https://api.singular.net/api/v2.0/get_customer_accounts |
사용 방법
이 엔드포인트를 사용하여 광고주 목록을 가져옵니다. 광고주 목록에는 귀사의 네트워크에서 캠페인을 운영하는 모든 Singular 고객이 포함되며, 데이터를 공유하지 않기로 선택한 고객은 제외됩니다.
이후 조직 키를 사용하여 Create Async Report 엔드포인트를 쿼리할 수 있습니다.
쿼리 매개변수
매개변수 | 형식 | 설명 |
api_key | 문자열 | 귀하의 Singular API 키 |
샘플 출력
"organizations":[
{
"display_name":"Awesome Games",
"organization_key": "aw_games"
},
...
]
출력 세부사항
매개변수 | 설명 |
display_name | 광고주의 전체 이름 |
organization_key | Singular에서 광고주의 고유 키 (Create Async Report 엔드포인트 쿼리에 사용). |
Filters 엔드포인트
GET | https://api.singular.net/api/v2.0/reporting/filters |
사용 방법
이 보조 엔드포인트를 사용하여 보고서 필터링에 사용할 수 있는 차원과 각 차원의 가능한 값을 최신 목록으로 가져옵니다. 특정 광고주의 조직 키를 지정해야 합니다.
샘플 쿼리 (Python)
import requests
url = "https://api.singular.net/api/v2.0/reporting/filters"
params = {
"api_key": API_KEY,
"organization_key": ORGANIZATION_KEY
}
result = requests.get(url=url, params=params)
print result.json()
쿼리 매개변수
매개변수 | 형식 | 설명 |
api_key | 문자열 | Partner Portal에서 제공된 API 키 |
organization_key | 문자열 | 고객 계정 조회 엔드포인트에서 반환된 조직 키 |
샘플 출력
{
"status": 0,
"substatus": 0,
"value": { "dimensions": [
{
"name": "os",
"display_name": "OS",
"values": [
{"name":4,"display_name":"Android"},
{"name":1,"display_name":"iOS"}
],
},
{
"name": "source",
"display_name": "Source",
"values": [
{"name": "adwords", "display_name": "AdWords"}
]
}
]}
}
Create Async Report 엔드포인트
POST | https://api.singular.net/api/v2.0/create_async_report |
사용 방법
이 엔드포인트는 Singular에서 보고 데이터를 가져오기 위한 주요 엔드포인트입니다. 이 엔드포인트는 조직 키, 차원, 지표, 날짜, 기타 세부사항에 따라 비동기 보고서 쿼리를 생성하며 보고서 ID를 반환합니다.
이후 보고서 상태 조회 엔드포인트를 쿼리하여 보고서가 완료되었는지 확인하고 다운로드 URL을 가져옵니다.
제한사항
- 단일 날짜에 대한 API 요청은 반환되는 행 수에 제한이 없습니다.
- 단일 요청은 최대 30일을 쿼리할 수 있으며 최대 100,000개의 레코드를 조회할 수 있습니다. 100,000개 이상의 레코드를 쿼리하는 요청은 실패하며 추가 필터링이 필요합니다.
- 일별 또는 주별 데이터 가져오기를 위해 당사의 API를 통합할 때, 일반적으로 다중 일 쿼리를 단일 일로 분할하고 전체 기간을 반복적으로 쿼리하는 것을 권장합니다.
샘플 쿼리 (Python)
import requests
url = "https://api.singular.net/api/v2.0/create_async_report"
query_params = {"api_key": API_KEY}
payload = {
"organization_key": ORGANIZATION_KEY,
"dimensions":"app,source,os,country_field",
"metrics": "custom_impressions,custom_clicks,custom_installs",
"start_date":"2022-08-01",
"end_date": "2022-08-02",
"time_breakdown": "all",
"format": "csv",
"country_code_format": "iso"
}
response = requests.post(url=url, params=query_params, data=payload)
쿼리 매개변수
매개변수 | 형식 | 설명 | 예시 |
기본 매개변수 | |||
api_key | 문자열 | Partner Portal에서 제공된 API 키 | |
organization_key | 문자열 | 보고서를 실행하려는 광고주의 조직 키 | |
start_date | 날짜 | 보고서를 시작할 날짜 | |
end_date | 날짜 | 보고서를 종료할 날짜 | |
time_breakdown | 문자열 | 'day', 'week', 'month', 또는 'all'로 결과를 구분. 'all'은 전체 기간에 대한 데이터를 집계하여 보여줍니다. | |
필드 선택 매개변수 | |||
dimensions | 문자열 | 쉼표로 구분된 차원 목록. 사용할 수 있는 차원은 아래 "지원되는 차원"에서 확인하세요. 각 차원에 대한 자세한 내용은 지표 및 차원을 참조하세요. | |
metrics | 문자열 | 보고서에 포함하려는 지표 목록 (쉼표로 구분). 사용할 수 있는 지표는 아래 "지원되는 지표"에서 확인하세요. 각 지표에 대한 자세한 내용은 지표 및 차원을 참조하세요. | |
cohort_metrics | 문자열 | 이름별 코호트 지표 목록 (쉼표로 구분). (자세한 내용은 코호트 지표란? 참조). 각 광고주의 커스텀 이벤트 및 코호트 지표는 Partner Portal에서 확인할 수 있습니다. | 'cohort_metrics': '815782610a1ddf,revenue' |
cohort_periods | 문자열 | 코호트 기간 목록 (쉼표로 구분). (자세한 내용은 코호트 지표란? 참조). 광고주별로 사용 가능한 코호트 기간은 Partner Portal에서 확인할 수 있습니다. | 'cohort_periods': '7d,14d,ltv' |
필터링 매개변수 | |||
app | 문자열 | 쿼리 결과를 필터링할 앱 이름 목록 (쉼표로 구분). 앱 이름 목록을 가져오려면 Filters 엔드포인트를 사용하세요. | 'app': 'my_app1,my_app2' |
source | 문자열 | 광고 네트워크 및 기타 소스 목록 (쉼표로 구분). 광고 네트워크 이름 목록을 가져오려면 Filters 엔드포인트를 사용하세요. | 'source': 'facebook,adwords' |
filters | JSON | 필터 객체의 JSON 목록으로, 각 객체는 차원, 연산자, 값으로 구성됩니다. 고급 필터링을 적용하려면 이 매개변수를 사용하세요. 여러 필터를 지정하면 AND 관계로 적용됩니다. 필터링 가능한 차원과 값의 전체 목록을 확인하려면 Filters 엔드포인트를 사용하세요. | 'filters': '[{"dimension": "os", "operator": "in","values": [1, 4]}, {"dimension": "source", "operator": "not in", "values": ["adwords"]}]' |
포맷 매개변수 | |||
format | 문자열 | 쿼리 결과가 제공될 형식. 옵션: "json" (기본값) 또는 "csv". | 'format':'csv' |
country_code_format | 문자열 | 결과에 사용할 국가 코드 형식. "iso3" (기본값) 또는 "iso" | |
display_alignment | 부울 | "true"로 설정하면 캠페인과 크리에이티브 통계 간의 차이를 설명하는 정렬 행이 결과에 포함됩니다. 자세한 내용은 크리에이티브 지표가 음수 값을 포함하는 이유를 참조하세요. |
샘플 출력
{
"status": 0,
"substatus": 0,
"value": {
"report_id": "5cfdb747dd464cd09a9c463e5be9691f"
}
}
지원되는 차원 및 지표
각 필드에 대한 설명은 지표 및 차원 용어집을 참조하세요.
지원되는 차원:
adn_account_id
adn_account_name
adn_campaign_id
adn_campaign_name
adn_campaign_url
adn_original_currency
adn_sub_adnetwork_name
app
app_id
country_field
keyword
os
platform
publisher_id
publisher_site_name
source
tracker_campaign_name
unified_campaign_id
unified_campaign_name
지원되는 지표:
adn_clicks
adn_installs
custom_impressions
custom_clicks
custom_installs
tracker_clicks
tracker_impressions
tracker_installs
tracker_reengagements
Get Report Status 엔드포인트
GET | https://api.singular.net/api/v2.0/get_report_status |
사용 방법
이 엔드포인트는 Create Async Report 엔드포인트를 사용하여 생성된 특정 보고서의 상태를 반환합니다. 보고서 실행이 완료되면 다운로드 URL도 반환됩니다. 보고서 실행에 실패한 경우, 문제 해결에 사용할 수 있는 오류 메시지를 제공합니다. (자세한 내용은 오류 코드 표 및 API FAQ 및 문제 해결 가이드를 참조하세요).
참고:
- 보고서 실행 완료까지 몇 분이 소요될 수 있습니다.
- 보고서 상태 엔드포인트를 동일한 보고서에 대해 10초에 한 번 이상 쿼리하지 마세요.
- 타임아웃 설정: 드물게 보고서가 "Queued" 또는 "Started" 상태에서 멈출 수 있습니다. 상태가 "Done" 또는 "Failed"로 바뀌지 않은 경우 (30분 이상 경과), 새 보고서를 제출하는 것을 권장합니다. 새 보고서는 새 Report ID를 반환합니다.
샘플 쿼리 (Python)
import requests
url = "https://api.singular.net/api/v2.0/get_report_status"
querystring = {
"report_id": REPORT_ID,
"api_key": API_KEY
}
response = requests.get(url=url, params=querystring)
print(response.text)
쿼리 매개변수
매개변수 | 형식 | 설명 |
api_key | 문자열 | Singular 콘솔에서 제공된 API 키 |
report_id | 문자열 | Create Async Report 엔드포인트에서 반환된 Report ID |
샘플 출력
{
"status": 0,
"substatus": 0,
"value": {
"status": "DONE",
"url_expires_in": 3600,
"generated_url_time_in_utc": "2018-05-13T08:26:18.457690+00:00",
"url_expired_time_in_utc": "2018-05-13T09:26:18.457690+00:00",
"download_url": "https://singular-reports-results.s3.amazonaws.com/singular/xxxxxxxxx",
"report_id": "5cfdb747dd45be9691f"
}
}
출력 세부사항
매개변수 | 형식 | 설명 |
status | 문자열 |
가능한 값:
|
generated_url_time_in_utc | 타임스탬프 | 다운로드 URL이 생성된 시간 |
url_expires_in | 정수 | 다운로드 URL이 만료되기까지의 초 단위 시간 |
url_expired_time_in_utc | 타임스탬프 | URL 만료 시간 |
download_url | URL | 보고서를 다운로드할 수 있는 URL |
report_id | 문자열 | 보고서의 고유 ID |