勉強したことのメモ

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でNintendo Storeをチェックし指定したソフトが〇円以下の際に通知する方法

Google Apps Scriptを利用してNintendo Storeをスク ...

GASを使ってみて感じたメリットとデメリット

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

GASで特定サイトにログインした後にスクレイピングを行う方法

Google Apps Scriptの勉強として特定サイトにログインし、その後に ...

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

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

GASとChatworkを連携してメッセージを送信する方法

Google Apps Scriptの勉強として「Chatwork」と連携させて ...