hanker

[GA4] Google Analytics4 API 사용 - JAVA (feat.spring) API 사용 (2) (Google Cloud/ GA4 설정) 본문

UTIL/Google

[GA4] Google Analytics4 API 사용 - JAVA (feat.spring) API 사용 (2) (Google Cloud/ GA4 설정)

hanker 2024. 10. 15. 09:52
반응형

이전 글에 이어서 이번엔 데이터를 가져와보자!

 

https://hanke-r.tistory.com/232

 

[GA4] Google Analytics4 API 사용 - JAVA (feat.spring) 설정 (1) (Google Cloud/ GA4 설정)

Google Cloud와 GA4(Google Analytics4)를 설정 후 API를 사용하여 데이터를 불러오는 방법을 설명하려고 한다.  이 글에서는 Google Cloud와 GA4(Google Analytics4) 설정 방법을 다루고다음 글에서 JAVA 코드로 데이

hanke-r.tistory.com

 

 

맨 처음으로 pom.xml에 필요 라이브러리들을 추가하자.

<dependency>
    <groupId>com.google.analytics</groupId>
    <artifactId>google-analytics-data</artifactId>
    <version>0.62.0</version> <!-- 버전은 프로젝트에 맞게 조정 -->
</dependency>

<dependency>
    <groupId>com.google.truth</groupId>
    <artifactId>truth</artifactId>
    <version>1.4.4</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>com.google.auth</groupId>
    <artifactId>google-auth-library-oauth2-http</artifactId>
    <version>1.14.0</version> <!-- 버전은 프로젝트에 맞게 조정 -->
</dependency>

 

추가 해준 후 maven reload 

 

그 다음 이전에 구글 클라우드에서 서비스계정 추가 후 발급받은 키 (혹시 없으면 이전글 보고 다시 발급)의 경로를 지정한다.

 

이제 데이터를 뽑아보자.

 2024년 1월 1일 부터 금일까지 도시별 접속자 데이터를 뽑아보자.

import com.google.analytics.data.v1beta.*;
import com.google.auth.oauth2.GoogleCredentials;

public class Main {

    public static void main(String[] args) throws Exception {
        // GA4 속성 ID를 설정합니다.
        String propertyId = ""; // 여기에 실제 GA4 속성 ID를 입력하세요.

        // 서비스 계정 JSON 파일 경로
        String credentialsPath = "z:\\data\\sodium-inverter-438611-e1-73a15dfbdbb7.json";

        // GoogleCredentials 생성 및 범위 설정
        GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream(credentialsPath))
                .createScoped("https://www.googleapis.com/auth/analytics.readonly");

        // BetaAnalyticsDataSettings를 사용하여 클라이언트 설정
        BetaAnalyticsDataSettings settings = BetaAnalyticsDataSettings.newBuilder()
                .setCredentialsProvider(() -> credentials)
                .build();

        // BetaAnalyticsDataClient 생성
        try (BetaAnalyticsDataClient analyticsData = BetaAnalyticsDataClient.create(settings)) {
            RunReportRequest request = RunReportRequest.newBuilder()
                    .setProperty("properties/" + propertyId)
                    .addDimensions(Dimension.newBuilder().setName("city")) // Dimension/Metric을 변경하여 다른 기준데이터 추출
                    .addMetrics(Metric.newBuilder().setName("activeUsers")) 
                    .addDateRanges(DateRange.newBuilder().setStartDate("2023-01-01").setEndDate("today"))
                    .build();

            // 보고서 실행
            RunReportResponse response = analyticsData.runReport(request);

            // 결과 출력
            System.out.println("GA4 결과:");
            for (Row row : response.getRowsList()) {
                System.out.println("지역 :" +row.getDimensionValues(0).getValue() + ", 접속자 : " + row.getMetricValues(0).getValue() + "명");
            }
        }
    }
}

 

 

결과 

쭉쭉 잘나온다.

 

아래 링크에서 검색 후 위 코드에서 Dimension / Metric 을 변경하여 다른 데이터들도 추출할 수 있다.

https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema?hl=ko

 

API 측정기준 및 측정항목  |  Google Analytics  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 API 측정기준 및 측정항목 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Data API에서 사용

developers.google.com

참고용!

 

 

끝!

반응형