on
구글 애널리틱스 API 자바 연결방법 정리글
구글 애널리틱스 API 자바 연결방법 정리글
반응형
자바에서 구글 애널리틱스 API를 연결해 주기에 앞서
API를 사용하려면
Maven 혹은 Gradle을 사용할 수 있어야 하고
'구글 계정'과 '구글 애널리틱스 계정'이
꼭 있어야 가능하다
다음으로 구글 애널리틱스 API와 연결하는 예제는
위 링크에서 볼 수 있는데
영어기 때문에 그냥 건너뛰고
내 블로그를 참조하자
먼저 HelloAnalyticsReporting.java
파일을 만든 뒤에
아래 코드를 복사, 붙여넣기를 해준다
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import java.io.FileInputStream; import java.io.IOException; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import com.google.api.services.analyticsreporting.v4.AnalyticsReportingScopes; import com.google.api.services.analyticsreporting.v4.AnalyticsReporting; import com.google.api.services.analyticsreporting.v4.model.ColumnHeader; import com.google.api.services.analyticsreporting.v4.model.DateRange; import com.google.api.services.analyticsreporting.v4.model.DateRangeValues; import com.google.api.services.analyticsreporting.v4.model.GetReportsRequest; import com.google.api.services.analyticsreporting.v4.model.GetReportsResponse; import com.google.api.services.analyticsreporting.v4.model.Metric; import com.google.api.services.analyticsreporting.v4.model.Dimension; import com.google.api.services.analyticsreporting.v4.model.MetricHeaderEntry; import com.google.api.services.analyticsreporting.v4.model.Report; import com.google.api.services.analyticsreporting.v4.model.ReportRequest; import com.google.api.services.analyticsreporting.v4.model.ReportRow; public class HelloAnalyticsReporting { private static final String APPLICATION_NAME = "Hello Analytics Reporting"; private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); private static final String KEY_FILE_LOCATION = ""; private static final String VIEW_ID = ""; public static void main(String[] args) { try { AnalyticsReporting service = initializeAnalyticsReporting(); GetReportsResponse response = getReport(service); printResponse(response); } catch (Exception e) { e.printStackTrace(); } } /** * Initializes an Analytics Reporting API V4 service object. * * @return An authorized Analytics Reporting API V4 service object. * @throws IOException * @throws GeneralSecurityException */ private static AnalyticsReporting initializeAnalyticsReporting() throws GeneralSecurityException, IOException { HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential credential = GoogleCredential .fromStream(new FileInputStream(KEY_FILE_LOCATION)) .createScoped(AnalyticsReportingScopes.all()); // Construct the Analytics Reporting service object. return new AnalyticsReporting.Builder(httpTransport, JSON_FACTORY, credential) .setApplicationName(APPLICATION_NAME).build(); } /** * Queries the Analytics Reporting API V4. * * @param service An authorized Analytics Reporting API V4 service object. * @return GetReportResponse The Analytics Reporting API V4 response. * @throws IOException */ private static GetReportsResponse getReport(AnalyticsReporting service) throws IOException { // Create the DateRange object. DateRange dateRange = new DateRange(); dateRange.setStartDate("7DaysAgo"); dateRange.setEndDate("today"); // Create the Metrics object. Metric sessions = new Metric() .setExpression("ga:sessions") .setAlias("sessions"); Dimension pageTitle = new Dimension().setName("ga:pageTitle"); // Create the ReportRequest object. ReportRequest request = new ReportRequest() .setViewId(VIEW_ID) .setDateRanges(Arrays.asList(dateRange)) .setMetrics(Arrays.asList(sessions)) .setDimensions(Arrays.asList(pageTitle)); ArrayList requests = new ArrayList(); requests.add(request); // Create the GetReportsRequest object. GetReportsRequest getReport = new GetReportsRequest() .setReportRequests(requests); // Call the batchGet method. GetReportsResponse response = service.reports().batchGet(getReport).execute(); // Return the response. return response; } /** * Parses and prints the Analytics Reporting API V4 response. * * @param response An Analytics Reporting API V4 response. */ private static void printResponse(GetReportsResponse response) { for (Report report: response.getReports()) { ColumnHeader header = report.getColumnHeader(); List dimensionHeaders = header.getDimensions(); List metricHeaders = header.getMetricHeader().getMetricHeaderEntries(); List rows = report.getData().getRows(); if (rows == null) { System.out.println("No data found for " + VIEW_ID); return; } for (ReportRow row: rows) { List dimensions = row.getDimensions(); List metrics = row.getMetrics(); for (int i = 0; i < dimensionHeaders.size() && i < dimensions.size(); i++) { System.out.println(dimensionHeaders.get(i) + ": " + dimensions.get(i)); } for (int j = 0; j < metrics.size(); j++) { System.out.print("Date Range (" + j + "): "); DateRangeValues values = metrics.get(j); for (int k = 0; k < values.getValues().size() && k < metricHeaders.size(); k++) { System.out.println(metricHeaders.get(k).getName() + ": " + values.getValues().get(k)); } } } } } }
코드를 옮겨넣은 뒤에는
Gradle의 경우에는 build.gradle 파일에서
dependencies {} 안에
implementation 'com.google.apis:google-api-services-analyticsreporting:v4-rev20211020-1.32.1'
위 코드를 넣고 다시 구축해주면 되고
Maven의 경우에는 pom.xml 파일에서
안에
com.google.apis google-api-services-analyticsreporting v4-rev20211020-1.32.1
위 코드를 넣고 다시 구축해주면 된다
다음으로 위 링크의
구글 클라우드 플랫폼으로 접속한 후
구글 애널리틱스에 접근하기 위한
계정을 설정해줘야 하는데
왼쪽 상단의 프로젝트 선택을 누른 뒤
프로젝트 선택 팝업창이 열리면
우측의 새 프로젝트를 눌러준다
여기서 프로젝트 이름을 설정하고 만들기
다음으로는 구글 클라우드 플랫폼 왼쪽의 메뉴를 누른 뒤
API 및 서비스 > 라이브러리를 눌러주자
검색창에서 Analytics로 검색하면
Google Analytics Reporting API가 보일텐데
이걸 선택한 뒤 사용을 눌러주자
사용을 누르면 위와 같이
Analytics Reporting API 화면으로 이동한 것이 보이는데
왼쪽 메뉴의 '사용자 인증 정보'를 누른 뒤
상단에서 '+ 사용자 인증 정보 만들기'를 누르고
'서비스 계정'을 눌러주자
서비스 계정 이름 / 서비스 계정 ID를 입력한 뒤
완료를 눌러준다
여기서 서비스 계정 하단의
이메일 부분을 복사해 놓은 뒤
오른쪽의 서비스 계정 관리를 눌러주자
(서비스 계정을 만들었는데 나오지 않을 경우 새로고침)
서비스 계정 관리 화면에서
우측의 작업 부분의 키 관리를 눌러주면
위와 같은 화면이 나오는데
왼쪽의 키 추가를 누른 뒤
새 키 만들기를 누른다
여기서 JSON을 선택한 후 만들기를 눌러주면
위와 같은 JSON 파일을 받을 수 있는데
이 파일을 잘 가지고 있다가 글 아래에서 사용한다
(파일을 다시 생성할 수 없기 때문에 주의할 것
분실 시에는 새 키 만들기를 다시 해야 함)
이제 구글 애널리틱스로 돌아간 뒤에
첫 화면에서 하단의 관리 버튼을 누르고
관리자 화면에서 계정 액세스 관리를 눌러주자
여기서 우측 상단의 + 버튼을 누른 뒤
아까 만들어둔 서비스 계정의 이메일
(~.iam.gserviceaccount.com 으로 끝나는)
을 넣어준 후 표준 역할은 관리로 설정하고
추가를 눌러주자
이제 기본 세팅은 다 끝났으니
HelloAnalyticsReporting.java 에서
KEY_FILE_LOCATION, VIEW_ID를 변경해줘야 하는데
KEY_FILE_LOCATION은 아까 새 키 만들면서 생성된
JSON 파일의 위치를 말하는데
private static final String KEY_FILE_LOCATION = "C:\\workspace\\analytics-web\\src\\main\\resources\\userdata\\파일명.json";
이런 식으로 경로를 잡아주면 된다
다음은 VIEW_ID인데
구글 애널리틱스로 접속한 후
하단의 관리를 눌러주자
다음으로 관리 화면에서
오른쪽의 보기 설정을 클릭해주면
이렇게 보기 ID가 나오는데
이 값을 VIEW_ID에 넣어주면 된다
이제 기나긴 세팅이 모두 끝났으니
한번 구동을 시켜보면
구동이 잘 되는 것이 보인다
반응형
from http://wakestand.tistory.com/674 by ccl(A) rewrite - 2021-11-09 12:27:17