› Spec
CPU: Apple M1 or Intel i5
RAM: 8GB
Storage: 256GB SSD
OS: macOS or Windows 11
Python: 3.11.5 and 3.8.7
Python_venv_path: Only /desktop/[folder]
IDE: Visual Studio Code
› Home › About › Archive › Categories › Guestbook

Categories : SEO

구글 애널리틱스 GA4 API


  1. 구글 애널리틱스 GA4 API 코드
    1. 구글 애널리틱스 라이브러리 설치
    2. 0. Google Analytics Data API 코드

구글 애널리틱스 GA4 API 코드

구글 애널리틱스 라이브러리 설치

pip install google-analytics-data


0. Google Analytics Data API 코드

from google.oauth2 import service_account
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import DateRange, Dimension, Metric, RunReportRequest, FilterExpression, Filter

# 서비스 계정 키 파일을 사용하여 인증
# https://console.cloud.google.com/ 
# 프로젝트 -> IAM 및 관리자 -> 서비스 계정 만들기 -> ID만 대충 넣고 -> 해당 서비스계정 클릭 -> 키 -> 키 추가 -> 새 키 만들기 -> 다운로드된 파일(.JSON)의 경로 지정
credentials = service_account.Credentials.from_service_account_file("C:\\***.json")

# 만드는 과정에 서비스계정의 이메일을 GA4 권한을 추가 또는 
# JSON 파일 메모장으로 열어보면 이메일이 있을텐데 GA4 권한에 추가

# GA4 데이터 클라이언트 생성
analytics_data_client = BetaAnalyticsDataClient(credentials=credentials)

# 특정 페이지 URL
page_url = "/category"

# 보고서 요청 설정
request = RunReportRequest(
    property=f"properties/000000000", # 속성아이디 
    # https://ga-dev-tools.google/ga4/query-explorer/ 에서 dimension 유형 확인
    dimensions=[Dimension(name="pagePathPlusQueryString")],
    # https://ga-dev-tools.google/ga4/query-explorer/ 에서 metrics 타입 확인
    metrics=[Metric(name="sessions")],
    date_ranges=[DateRange(start_date="yesterday", end_date="yesterday")], # 날짜 '2022-02-19' 형식사용 가능
    # https://ga-dev-tools.google/ga4/query-explorer/ 에서 dimension filter 타입 확인
    dimension_filter = FilterExpression(filter=Filter(field_name="pagePathPlusQueryString", string_filter=Filter.StringFilter(match_type=Filter.StringFilter.MatchType.BEGINS_WITH, value=page_url))),
)

# 보고서 실행
response = analytics_data_client.run_report(request)

a = 0
# 결과 출력
for row in response.rows:
    # print(f"{row.dimension_values[0].value} : {row.metric_values[1].value}")
    a += int(row.metric_values[0].value)
print(a)




확대 이미지