勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

GASとGoogleアナリティクスを連携させ昨日分のアクセス数TOP3位のページタイトル及び合計アクセス数を取得する方法

  Google Apps Script Google

GASとGoogleアナリティクスを連携させて「昨日分のアクセス数TOP3位のページタイトルと当該ページのアクセス数」及び「昨日分の合計アクセス数」を取得したい。Google Analytics Data APIを使うことで実装できる模様。以下にソースコードと実装方法をメモ。

 

Google Analytics Data API

リファレンス

https://developers.google.com/analytics/devguides/reporting/data/v1?hl=ja

 

GASの準備

「サービス→Google Analytics Data API」を選択し追加しておく。今回はバージョンv1betaを使用した。

尚、似たようなAPIで「Analytics Reporting API」というのもあるので間違えないよう注意。

 

実装方法

ソースコード

function runReport() {

    //Google AnalyticsプロパティID
    const PROPERTY_ID = '【プロパティID】';

    //取得したいメトリクスの名前
    const METRIC_NAMES = ['screenPageViews'];

    //取得したいディメンジョンの名前
    const DIMENSION_NAMES = ['Date', 'pageTitle', 'eventName'];

    //取得期間の開始終了
    const START_DATE = 'yesterday';
    const END_DATE = 'yesterday';

    const metrics = METRIC_NAMES.map((x) => {
        const tmp = AnalyticsData.newMetric();
        tmp.name = x;
        return tmp;
    });

    const dimensions = DIMENSION_NAMES.map((x) => {
        const tmp = AnalyticsData.newDimension();
        tmp.name = x;
        return tmp;
    });

    const dateRange = AnalyticsData.newDateRange();
    dateRange.startDate = START_DATE;
    dateRange.endDate = END_DATE;

    const request = AnalyticsData.newRunReportRequest();
    request.dimensions = dimensions;
    request.metrics = metrics;
    request.dateRanges = dateRange;


    const report = AnalyticsData.Properties.runReport(request,'properties/' + PROPERTY_ID);
    if( !report.rows ){
        return;
    }

    let count = 1;
    let limit = 3;
    let all_pv = 0;
    let body = '';
    for( const row of report.rows ){
        const title = row.dimensionValues[1].value;
        const pv = Number(row.metricValues[0].value);

        if( count <= limit ){
            body += `${count}位 ${title} | ${pv}pv\n`;
        }

        count = count + 1;
        all_pv = all_pv + pv;
    }

    body += `合計${all_pv}pv`;

    console.log(body);

    return false;

}

書き換える場所

PROPERTY_IDは自サイトのプロパティIDを記述する。imitを書き換えることで上記〇位が設定できる。

その他連携

bodyに「昨日分のアクセス数TOP3位のページタイトルと当該ページのアクセス数」及び「昨日分の合計アクセス数」が入るので例えばだけど結果を指定のアドレスにメールを送りたい場合は以下過去記事を参考にGmail連携させる。

GASとGmailを連携させて受信メール検索及びメール送信

 - Google Apps Script Google

  関連記事

GASとLINEを連携させて通知メッセージを送る方法のメモ
GASとLINEを連携させて通知メッセージを送る方法のメモ

Google Apps ScriptとLINEを連携させ、LINEに何らかの通知 ...

GASで特定サイトをスクレイピングし、画像をGoogleドライブに保存
GASで特定サイトをスクレイピングし、画像をGoogleドライブに保存

Google Apps Scriptで特定のサイトにスクレイピングし、画像が掲載 ...

GASで祝日一覧(年月日と祝日名)データをJSON出力するAPIを作成
GASで祝日一覧(年月日と祝日名)データをJSON出力するAPIを作成

PHPのシステム案件で祝日を取得し、処理を行う箇所があった。Googleカレンダ ...

GASで「小説家になろう」サイトの更新通知をLINEに送る方法
GASで「小説家になろう」サイトの更新通知をLINEに送る方法

Google Apps Scriptの勉強として「小説家になろう」サイトの特定小 ...

GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法
GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法

GoogleスプレッドシートとPHPプログラムを連携させたいという案件をたまに見 ...