勉強したことのメモ

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を使ってみて感じたメリットとデメリット

Google Apps Scriptを色々勉強した中で感じたメリットとデメリット ...

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

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

GASとGoogleカレンダを連携し暦通りではない店休日を取得する方法

小売店等のサイトで営業日カレンダーみたいなものを表示させる際に今まではPHPで管 ...

GASを利用してGmailに届いたメール内容をGoogleスプレッドシートに記入する方法

WordPressのContact Form7から送信した内容をGmailで受け ...

GASでGoogleカレンダーと連携してイベントの取得・追加・削除

Google Apps Scriptの勉強としてGoogleカレンダーと連携させ ...