Skip to content

guruahn/get-google-analytics-data-by-nodejs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Get GoogleGA Data by NodeJS

Description

NodeJS로 Google Analytics에 연결하여 데이터를 조회하는 기본 코드이다. 기본 세팅은 nodejs-getting-started/1-hello-world에서 가져왔다.

사용된 패키지들

"dependencies": {
    "body-parser": "^1.15.2",
    "express": "^4.14.0",
    "node-rest-client": "2.0.1",
    "node-schedule": "0.1.8",
    "googleapis": "^14.1.0",
    "q": "^1.4.1",
    "urlencode": "1.1.0"
},
"devDependencies": {
    "cors": "^2.8.1",
    "mocha": "^3.0.2",
    "nodejs-repo-tools": "git+https://github.com/GoogleCloudPlatform/nodejs-repo-tools.git#21daa823090c43fb667157c8b5b0c3b7f45a8357",
    "supertest": "^2.0.0"
}
  1. body-parser, urlencode : Node.js 바디를 파싱해주는 미들웨어. 클라이언트에서 온 Request의 바디부분을 req.body 프로퍼티안에 파싱해준다.
  2. express : Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크
  3. node-rest-client : nodejs-getting-started/1-hello-world에 기본으로 들어있는 패키지. HTTP GET요청을 보내고 응답받는 로직을 손쉽게 구현할 수 있다. 여기서는 사용하지 않았지만 매우 유용하다.
  4. node-schedule : 역시 nodejs-getting-started/1-hello-world에 기본으로 들어있는 패키지. 리눅스의 크론잡같은 역할을 하는듯. 여기서는 사용하지 않았지만 매우 유용하다.
  5. googleapis : 구글 공식 지원하는 구글 API Node.js 라이브러리이다.
  6. q : 프로미스 구현을 위한 라이브러리이다.
  7. cors : 브라우저에서 이 서비스를 통해 데이터를 가져가도록 구현하려면 CORS문제를 해결해야할텐데 이를 매우 쉽게 해준다. Express/Connect 어플리케이션 안에서 사용할 수 있는 미들웨어.

나머지 모듈은 구글 클라우드에 배포하거나 테스트하는 모듈인데 아직 사용해보지 않아서 설명을 추가로 달지는 않았다. 하지만 유용할듯하니 남겨둔다.

Installation

service account setting 반드시 비공개 키 제공에 체크표시를 해야한다. 만들기를 누르면 파일이 다운될 것이다. 이 파일은 아래 키파일 변환에서 사용할 것이다.

2. 키파일 변환(key.p12 to key.pem)

아래 명령어를 통해 위에서 받은 키파일을 변환한다.

openssl pkcs12 -in key.p12 -nodes -nocerts > key.pem

3. 계정정보 입력

SERVICE_ACCOUNT_EMAIL에는 위에서 생성된 서비스 계정의 아이디를, SERVICE_ACCOUNT_KEY_FILE에는 위에서 변환한 key.pem파일의 경로를 입력한다.

/*Google API Console Service Account ID*/
var SERVICE_ACCOUNT_EMAIL = 'yourservice-000@example.iam.gserviceaccount.com';
/*Google API Console Service Account Key*/
var SERVICE_ACCOUNT_KEY_FILE = __dirname + '/key.pem'

4. Google Analytics 설정

위에서 얻은 SERVICE_ACCOUNT_EMAIL에 데이터 접근 권한을 줘야한다. 관리 > 계정 > 사용자관리 화면으로 이동한 후 하단에 다음 사용자에게 권한 추가 폼을 통해 해당 이메일 계정을 등록해야한다.

add permission

5. Google Analytics Api 파라미터 세팅

var params = {
  'auth': authClient,
  'ids': 'ga:********',
  'metrics': 'ga:sessions',
  'start-date': '5daysAgo',
  'end-date': 'today',
  'dimensions': 'ga:date'
}
  • authClient : 키파일과 얻고자하는 권한 정보가 담겨있는 객체이다.
  • ids : Anaytics view id(한글로 보기 ID)라고 하며 ga: prefix와 함께 쓴다. 구글분석도구 관리페이지에서 찾을 수 있는데 처음에는 찾기 쉽지않다. 계정ID로 착각하기 쉬운데 아니다. 아래 그림을 보면,

find google analytics view id #1

위처럼 관리자 화면에서 반드시 계정, 속성, 보기를 잘 선택한 후 설정 보기를 클릭한다. 그러면 아래와 같은 화면을 확인할 수 있을 것이다. 아래 화면에서 보기ID를 카피하면 된다.

find google analytics view id #2

더 자세한 안내가 필요하다면 Find your Google Analytics Tracking ID & View ID를 볼것.

  • metrics와 dimensions 속성은 Google Analytics로부터 얻고자하는 데이터의 타입에 대한 정보를 담고 있으며 위 예시에서는 웹사이트의 세션 수를 날짜별(x축)로 얻을 수 있다. 이는 쿼리 탐색기를 통해 테스트해볼 수 있고, 몇 번 해보면 직관적으로 이해가 될 것이다. 이 속성에 어떤 값을 세팅할 수 있는지는 Dimensions & Metrics Explorer를 통해 검색할 수 있다.
  • start-date, end-date : 데이터 쿼리를 보낼때 날짜 범위를 설정한다. 하루 단위를 보고 싶다면 두 속성을 동일한 날짜로 설정하면 된다.

6. 설치

$ npm start

참고

About

NodeJS로 Google Analytics에 연결하여 데이터를 조회하는 기본 코드이다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published