Qiita의 Google 애널리틱스 보고서를 TreasureData로 보냅니다.

Qiita에는, GoogleAnalytics(GA)를 내장 기능 가 있다.

GA를 보면, 300 PV/Week 라는 소름 끼치는 수치・・・😞



이전에, 설정하고 있어 방치하고 있었지만, TD 블로그 하지만 Google Analytics의 로그를 Javascript SDK를 사용해 보내는 방법이 게재되었으므로, Qiita의 GA의 리포트를 트레져 데이터에 보내 봅니다.

설정 절차


  • Google Analytics Profile ID
  • Treasure Data API key
  • Standalone Google Script Service with Analytics API enabled.
  • Setup Google App Script
  • Setup Trigger to run the script

  • Google 웹로그 분석 프로필 ID 가져오기



    Google 웹로그 분석에 로그인한 상태에서 관리 페이지로 이동합니다.

    그러면 URL에 a<ACCOUNT_ID>w<WEB_PROPERTY_ID>p<PROFILE_ID>/가 부여되므로 p 이하의 값을 메모한다.
    예 : https://analytics.google.com/analytics/web/#management/Settings/a11111111w111111111p11111111/

    Treasure Data의 API KEY 얻기



    TreasureData에 가입한 상태에서 프로필 페이지에 액세스합니다.

    Generate New에서 Write Only Key를 신규 발행하여 메모한다.



    Google 애널리틱스 API 사용



    Google Console로 이동하여 Analytics API를 활성화합니다.
    Google App Script의 프로젝트와 같게 하기 위해서, 다음의 설정을 실시할 때에 자원->Developer Console 프로젝트를 열어, 스크립트가 관련지을 수 있고 있는 프로젝트로부터, 활성화를 하면(자) 쉬울지도 모른다.

    Google App Script에서 Javascript SDK를 사용하여 TD로 로그를 전송합니다.



    Google App Script에 로그인합니다.

    또한 위에서는 프로젝트에 Google Analytics API를 활성화했지만,
    Google App Script에서도 AnalyticsAPI를 활성화합니다(참고: GoogleAppsScript에서 Google Analytics API 사용).
    리소스 -> Google 확장 서비스에서 Google Analytics API(v3)를 활성화합니다.

    청인-씨스크립트 를 복사한다.

    그리고 복사 된 코드의 일부를 편집합니다.

    특히, groupBymetricssortBy 에서 사용할 수 있는 변수는 Analytics Reporting API V3 를 참조할 것. 덧붙여서, 현재 v4가 나오고 있으므로, 그 중 스크립트를 수정할 필요가 있을까 생각합니다.

    수정점 1: profileId 등을 위에서 준비한 값으로 변경
    INPUTS = {
      groupBy: ['country'],
      metrics:['visits'],
      sortBy:['visits'],
      profileId: 'YOUR_GA_PROFILE_ID',
      databaseName: 'google_analytics',
      tableName: 'sample_report',
      tdAPIKey: 'YOUR_TD_API_KEY'
    }
    

    수정점 2: 조건 확인을 제거합니다.
    -    if (!dimName.startsWith("ga:")) { dimName = "ga:" + dimName; }
    +    dimName = "ga:" + dimName;
    

    수정 3: 더 이상 사용되지 않는 함수 수정
    -  var yesterdayStr = Utilities.formatDate(yesterday, Session.getTimeZone(), 'yyyy-MM-dd');
    +  var yesterdayStr = Utilities.formatDate(yesterday, Session.getScriptTimeZone(), 'yyyy-MM-dd');
    



    함수를 선택하고 main를 선택하고 실행하면 국가별로 집계 된 PV 수가 출력됩니다.



    트리거 설정



    위에서 만든 스크립트는 트리거를 사용하여 정기적으로 실행됩니다. 아래의 설정으로 매일 1~2시경에 전날의 GA의 리포트를 TD에 출력할 수 있다.



    요약



    이번에는 Qiita의 데이터를 취득한 Google Analytics의 보고서를 Google App Script에서 TD의 Javascript SDK를 이용하여 정기적으로 데이터를 보내는 방법을 소개했습니다.

    좋은 웹페이지 즐겨찾기