勉強したことのメモ

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ドライブに保存
GASで特定サイトをスクレイピングし、画像をGoogleドライブに保存

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

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

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

GASとAdSense Management APIを使って前日分の売り上げをメール通知する方法
GASとAdSense Management APIを使って前日分の売り上げをメール通知する方法

Googleアドセンスの売り上げをチェックする際、いつもはアドセンスの管理画面に ...

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

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

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

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