Run a custom GA4 report by property id
google-analytics.reportRun a traffic or behaviour report on your own Google Analytics property
- 가격
- free정가 기준
- 성공률
- 100%최근 30일 · 15,619회
- 지연 시간 p50
- 545 msp95 2.3 s
- 마지막 검증
- 2026. 7. 28.동작 확인됨
POSThttps://toolswitch.dev/v1/tools/google-analytics.reportBeta- 플랫폼 할당량 사용
- 동기 응답
- 공개 데이터 읽기
파라미터
request shape previously live-verified via the registry entry's examples. An incompatible dimension/metric pair fails the whole call — check google.analytics.metadata for what combines. Sampling and thresholding are reported back in the response metadata, not as an error
| 파라미터 | 유형 | 필수 | 설명 | 예시 |
|---|---|---|---|---|
| 경로 파라미터 | ||||
property_id | 문자열 | 필수 | numeric GA4 property id (the digits only — the admin API returns it as 'properties/123456789') | 123456789 |
| 요청 본문(JSON) | ||||
limit | 정수 | 선택 | default 10000, max 250000 | 100 |
offset | 정수 | 선택 | 0 | |
metrics | 배열 | 선택 | [{name: …}] — e.g. screenPageViews, sessions, activeUsers, conversions, engagementRate | [{"name":"screenPageViews"}] |
orderBys | 배열 | 선택 | e.g. [{"metric":{"metricName":"sessions"},"desc":true}] | |
dateRanges | 배열 | 필수 | up to 4 ranges. Use 'yesterday' or 'NdaysAgo', not 'today' — today is a partial day and always reads low | [{"endDate":"yesterday","startDate":"28daysAgo"}] |
dimensions | 배열 | 선택 | [{name: …}] — e.g. pagePath, sessionSource, sessionDefaultChannelGroup, country, deviceCategory, date | [{"name":"pagePath"}] |
keepEmptyRows | 불리언 | 선택 | ||
dimensionFilter | 객체 | 선택 | e.g. {"filter":{"fieldName":"pagePath","stringFilter":{"matchType":"CONTAINS","value":"/blog/"}}} | |
- 경로 파라미터
property_id문자열필수numeric GA4 property id (the digits only — the admin API returns it as 'properties/123456789')
예시:
123456789- 요청 본문(JSON)
limit정수선택default 10000, max 250000
예시:
100offset정수선택예시:
0metrics배열선택[{name: …}] — e.g. screenPageViews, sessions, activeUsers, conversions, engagementRate
예시:
[{"name":"screenPageViews"}]orderBys배열선택e.g. [{"metric":{"metricName":"sessions"},"desc":true}]
dateRanges배열필수up to 4 ranges. Use 'yesterday' or 'NdaysAgo', not 'today' — today is a partial day and always reads low
예시:
[{"endDate":"yesterday","startDate":"28daysAgo"}]dimensions배열선택[{name: …}] — e.g. pagePath, sessionSource, sessionDefaultChannelGroup, country, deviceCategory, date
예시:
[{"name":"pagePath"}]keepEmptyRows불리언선택dimensionFilter객체선택e.g. {"filter":{"fieldName":"pagePath","stringFilter":{"matchType":"CONTAINS","value":"/blog/"}}}
코드 예제
$TOOLSWITCH_KEY를 콘솔에서 생성한 키로 바꾸세요.
curl -X POST 'https://toolswitch.dev/v1/tools/google-analytics.report' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY" \
-H "Content-Type: application/json" \
--data-raw '{"limit":3,"metrics":[{"name":"sessions"}],"dateRanges":[{"endDate":"yesterday","startDate":"28daysAgo"}],"dimensions":[{"name":"sessionDefaultChannelGroup"}]}'import os
import json
import requests
response = requests.request(
"POST",
"https://toolswitch.dev/v1/tools/google-analytics.report",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
json=json.loads("{\"limit\":3,\"metrics\":[{\"name\":\"sessions\"}],\"dateRanges\":[{\"endDate\":\"yesterday\",\"startDate\":\"28daysAgo\"}],\"dimensions\":[{\"name\":\"sessionDefaultChannelGroup\"}]}"),
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/google-analytics.report", {
method: "POST",
headers: {
"X-Toolswitch-Key": process.env.TOOLSWITCH_KEY ?? "",
"Content-Type": "application/json",
},
body: JSON.stringify(JSON.parse("{\"limit\":3,\"metrics\":[{\"name\":\"sessions\"}],\"dateRanges\":[{\"endDate\":\"yesterday\",\"startDate\":\"28daysAgo\"}],\"dimensions\":[{\"name\":\"sessionDefaultChannelGroup\"}]}")),
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
console.log(await response.text());게이트웨이 API는 Beta이며 URL과 인증 방식이 변경될 수 있습니다. 예제 매개변수는 샘플 데이터입니다. 호출 요금은 free이며 서비스 수수료가 포함되어 있습니다.