Skip to content
NodeJS로 Google Analytics에 연결하여 데이터를 조회하는 기본 코드이다.
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
test
.gitignore
README.md
app.js
npm-debug.log
package.json

README.md

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

1. Google Api Console 서비스 계정(service account) 만들기

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

참고

You can’t perform that action at this time.