SeouliteLab

[Python/파이썬] Google Analytics API로 웹사이트 분석하기 본문

프로그래밍

[Python/파이썬] Google Analytics API로 웹사이트 분석하기

Seoulite Lab 2024. 3. 6. 10:06

Google Analytics API를 사용하면 웹사이트의 트래픽 및 사용자 동작에 대한 데이터를 프로그래밍 방식으로 액세스하고 분석할 수 있습니다. 이를 통해 사용자의 행동 및 트래픽 패턴을 이해하고, 마케팅 및 비즈니스 전략에 활용할 수 있습니다. 이번 포스트에서는 Python을 사용하여 Google Analytics API를 사용하는 방법을 살펴보겠습니다.

1. API 인증

Google Analytics API를 사용하려면 먼저 OAuth 2.0을 사용하여 API에 대한 액세스 권한을 획득해야 합니다. 이를 위해 Google API Console에서 프로젝트를 생성하고 OAuth 2.0 인증 정보를 설정해야 합니다. 설정이 완료되면 Python 코드에서 해당 인증 정보를 사용하여 API에 액세스할 수 있습니다.

2. 데이터 가져오기

인증이 완료되면 Google Analytics API를 사용하여 웹사이트의 데이터를 가져올 수 있습니다. 예를 들어, 페이지 뷰 수를 가져오기 위해 API를 사용할 수 있습니다. API를 호출하고 데이터를 쿼리한 다음 응답을 받아와서 필요한 데이터를 추출합니다.

3. 분석 및 시각화

가져온 데이터를 분석하고 시각화하여 의미 있는 정보로 변환합니다. 데이터를 이해하기 쉽고 시각적으로 표현하기 위해 Matplotlib과 같은 라이브러리를 사용하여 그래프를 생성하고 통계를 계산합니다.

예제 코드:

1. API 인증

# 필요한 라이브러리 가져오기
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow

# 스코프 지정
SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']

# OAuth 2.0 흐름 설정
flow = InstalledAppFlow.from_client_secrets_file(
    'credentials.json', SCOPES)

# 사용자 인증
credentials = flow.run_console()

# 인증 정보 저장
with open('token.json', 'w') as token:
    token.write(credentials.to_json())

2. 데이터 가져오기

# 필요한 라이브러리 가져오기
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

# 서비스 객체 만들기
credentials = ServiceAccountCredentials.from_json_keyfile_name(
    'credentials.json', SCOPES)
analytics = build('analyticsreporting', 'v4', credentials=credentials)

# 데이터 쿼리
response = analytics.reports().batchGet(
    body={
        'reportRequests': [{
            'viewId': 'VIEW_ID',
            'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
            'metrics': [{'expression': 'ga:pageviews'}]
        }]
    }
).execute()

# 결과 출력
print(response)

3. 분석 및 시각화

# 필요한 라이브러리 가져오기
import matplotlib.pyplot as plt

# 데이터 가공
data =

 response['reports'][0]['data']['totals'][0]['values']
pageviews = int(data[0])

# 그래프 생성
plt.bar(['Pageviews'], [pageviews], color='blue')
plt.xlabel('Metrics')
plt.ylabel('Count')
plt.title('Pageviews in Last 7 Days')
plt.show()