Google 애널리틱스 실시간 사용자가 일정 수를 밑돌면 Slack에게 알림을 건너뜁니다.

코드를 수정했습니다. 맨 아래의 업데이트 내역을 확인합니다.

15분마다 Google 애널리틱스 실시간 사용자를 받고,
실시간 사용자가 일정 수를 밑도는 경우 Slack에 알립니다.



사용자 수는 숨겨져 있지만 알림은 이런 느낌입니다.

당초는 Google의 API를 이용해 실현할까라고 생각하고 있었습니다만,
Google Apps Script를 사용하면 쉽고 쉽게 구현할 수있었습니다.

스프레드시트 도구 > 스크립트 편집기에서 Google Apps Script를 시작합니다.



Google Apps Script를 시작하면 편집기가 표시되므로이 편집기에서 코딩합니다.



원하는 제목을 설정한 후 리소스 > Google 확장 프로그램에서 웹로그 분석을 사용 설정합니다.





이러한 서비스는 Google API 콘솔에서도 사용 설정해야 합니다.

와 주의사항이 있도록 위의 'Google API 콘솔' 링크에서도 사용 설정하세요.
이제 준비가 되었으므로 먼저 다음 코드를 붙여 넣습니다.
function execute() {
  var realTimeUserNumber = getRealTimeUserNumber()

  if (invalidRealTimeUserNumber(realTimeUserNumber))
    return

  slack('現在のユーザー数: ' + realTimeUserNumber);
}

function invalidRealTimeUserNumber(realTimeUserNumber) {
  const MINIMUM_USER_NUM_EACH_HOUR = {
     0: x,
     1: x,
     2: x,
     3: x,
     4: x,
     5: x,
     6: x,
     7: x,
     8: x,
     9: x,
    10: x,
    11: x,
    12: x,
    13: x,
    14: x,
    15: x,
    16: x,
    17: x,
    18: x,
    19: x,
    20: x,
    21: x,
    22: x,
    23: x,
    24: x
  };

  const RATIO = 0.7
  const CURRENT_HOUR = Utilities.formatDate(new Date(), "JST", "HH");  

  for(var hour in MINIMUM_USER_NUM_EACH_HOUR)
    if (hour == CURRENT_HOUR)
      Logger.log(MINIMUM_USER_NUM_EACH_HOUR[hour] * RATIO);
      return realTimeUserNumber > (MINIMUM_USER_NUM_EACH_HOUR[hour] * RATIO)

  slack('バグってます。 CURRENT_HOUR: ' + CURRENT_HOUR + ' realTimeUserNumber: ' + realTimeUserNumber + ' RATIO: ' + RATIO)
  return false;
}

function getRealTimeUserNumber() {
    return Analytics.Data.Realtime.get('ga:xxxxxx', 'rt:activeUsers').getRows();    
}

function slack(message) {
    const WebhookUrl = 'https://hooks.slack.com/services/hoge/piyo/fuga'

    var payload = {
      text: message,
      link_names: 1
    };

    UrlFetchApp.fetch(WebhookUrl, {
      method: "POST",
      payload: JSON.stringify(payload)
    });
}

개별적으로 수정이 필요한 3곳에 대해 설명합니다.
Analytics.Data.Realtime.get('ga:xxxxxx', 'rt:activeUsers').getRows();ga:xxxxx 에 Google Analytics의 뷰 ID를 설정합니다.
보기 ID는 웹로그 분석에서 확인할 수 있습니다.


const MINIMUM_USER_NUM_EACH_HOUR = { ...x에 사용자 수를 입력하십시오.invalidRealTimeUserNumberrealTimeUserNumber > (MINIMUM_USER_NUM_EACH_HOUR[hour] * RATIO) 와 같이 하고 있으므로, x 에 넣은 유저수보다 30% 적으면 slack에 통지하게 되어 있습니다.
const WebhookUrl = 'https://hooks.slack.com/services/hoge/piyo/fuga' 의 우변은 통지하는 Slack의 webhook의 URL로 변경합니다.https://team-name.slack.com/apps 에서 Incoming WebHooks를 검색하고 Add Configuration을 클릭하면 어떤 채널에 integration할지 묻기 때문에 채널을 선택하면 webhook URL이 발행됩니다.



마지막으로 15분마다 이 스크립트를 실행하도록 설정합니다.



참고한 URL



htp : // bg. 아 d마게. jp/? p=1353
htps //w w. 뭉친 m. 이. jp / chi ps에서 / ゔ ぁ sc 리 pt / 포 st8499. HTML
htps : // 아피. scck. 코 m / ps / 아
h tp // w w. 에서 vぉg. 아 tぁs. jp/2016/11/18/1364
htps // 메모 rdm. 이 m/가 s-ぉg/

전 기사



Google 애널리틱스 실시간 사용자가 일정 수를 밑돌면 Slack에게 알림을 건너뜁니다.

업데이트 내역



이하의 대응을 했으므로 코드를 갱신했습니다.
  • 실시간 사용자가 특정 수보다 낮지 않은 경우 알림이 날아가는 문제를 수정합니다.
  • 통지 조건 (실시간 사용자 수 <사용자 수 임계 값)의 사용자 수 임계 값을 통지 내용에 포함

  • 또한 코드의 이력 관리가 번거롭기 때문에 gist로했습니다.

    좋은 웹페이지 즐겨찾기