「植物のミカタ」のGoogle Analytics(以後GAと略す)から取得したpageviewsをチャットワークに送ってみる。
今回は、前日のpageviewsと日付けを取得してみる。
※pageviewsとは、閲覧されたページの合計数として定義される指標
実際のコードを書く前に今回のコードで必要なライブラリを取得しておく。
$ go get golang.org/x/oauth2 $ go get google.golang.org/api/analytics/v3
package main
import (
"bytes"
"log"
"net/http"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
analytics "google.golang.org/api/analytics/v3"
)
const PROFILE_ID = "***********" //GAのプロファイルID
func main() {
//認証資格情報を取得するHTTPクライアントを返す
client, err := google.DefaultClient(
oauth2.NoContext,
"https://www.googleapis.com/auth/analytics.readonly")
if err != nil {
log.Fatalf("Unable to read client : %v", err)
}
service, err := analytics.New(client)
if err != nil {
log.Fatalf("Unable to Access Google Analytics: %v", err)
}
//GAからデータを取得する
result, err := service.Data.Ga.Get("ga:"+PROFILE_ID, "yesterday", "yesterday", "ga:pageviews").Dimensions("ga:date").Do()
if err != nil {
log.Fatalf("Unable to get data: %v", err)
}
var res string //日付を入れる変数
var res1 string //PVを入れる変数
for _, row := range result.Rows {
res = row[0]
res1 = row[1]
}
/** ここからチャットワークAPIのコード **/
room_id := "********" //チャットワークのルームID
url := "https://api.chatwork.com/v2/rooms/" + room_id + "/messages"
//bodyの後には文字列がくる
param := "body=" + res + " " + "GA PV:" + res1
request, error := http.NewRequest("POST", url, bytes.NewBufferString(param))
if error != nil {
log.Fatal(error)
}
api_key := "**********" //チャットワークで取得したトークン
request.Header.Add("X-ChatWorkToken", api_key)
request.Header.Add("Content-Type", "application/x-www-form-urlencoded")
response, error := http.DefaultClient.Do(request)
response.Body.Close()
if error != nil {
log.Fatal(error)
}
//fmt.Println(response)
}
const PROFILE_ID = "*********"は、GAで登録したサイト毎に自動生成される番号のこと。
下の図の赤い部分に実際表示されている番号。

Data.Ga.Getの後は、Metrics、Dimentionの順番で取得したいデータを定義する。
ここでMetricsはga:"+PROFILE_ID, "yesterday", "yesterday", "ga:pageviews"までで、〇〇から〇〇までのの△の情報を取得するという意味になる。
ここでは、"yesterday"から"yesterday"までのpageviewsを取得するという意味になる。
Dimentionは、さらに詳しく指定したい時に指定する。ここでは、日付ga:dateを入れた。
後は、チャットワークへの自動送信なので、以前の過去記事を参考にした。
実行すると下記のようにチャットワークに投稿された。
※実行時はGoogle API Consoleで取得した認証情報が記載されたJSONファイルの読み込みが必要です。読み込み方法は下記のページに記載しています。
https://github.com/ryoko-saito/ga2cw





