Google Analytics の API を使ってアシストコンバージョンをとりたいが、通常のセッション数などを取得できる Core Reporting API にはアシストコンバージョンという指標は無く取得することができない。 Multi-Channel Funnels Reporting API を使うことでその指標は取得できるようになる。がトラップがあり、やりたいことはできなかったので、タイトルが過去形。
なお MCF API のドキュメントにあるサンプルでは Java で書かれているが、言語別のライブラリが持っているインターフェースはおよそ同じなので、読み換えればよい。
PHP ならこんな具合にして MCF をコールできる。
// セッション準備
session_start();
// API利用のための認証
//==================================================
$client = new \Google_Client();
// クライアントキー、シークレットの設定
// Developer Console で登録すると発行される
$client->setClientId('...');
$client->setClientSecret('...');
// オフラインアクセスを付与するとリフレッシュトークンを使って無期限にアクセスできる
$client->setAccessType('offline');
// 認証画面を都度表示する
$client->setApprovalPrompt('force');
// リダイレクトURLの設定
// Developer Console で設定した値と合わせないとエラーになる
$client->setRedirectUri('.....');
// アクセス権限の設定
$client->addScope([\Google_Service_Analytics::ANALYTICS_READONLY]);
// 認証が通ってくるとcodeがついてくるのでコレを利用して認証を通す
if (!empty($_GET['code'])) {
unset($_SESSION['refresh_token']);
$client->fetchAccessTokenWithAuthCode($_GET['code']);
$_SESSION['refresh_token'] = $client->getRefreshToken();
} else {
// リフレッシュトークンがなければ認証URLに飛ばす
// とりあえず試すならセッションから読み込むと良い。
if (empty($_SESSION['refresh_token'])) {
header('Location: ' . $client->createAuthUrl());
exit;
}
// リフレッシュトークンで認証する
$client->refreshToken($_SESSION['refresh_token']);
}
// Google Analytics とのやり取りするオブジェクト準備
//==================================================
$analytics = new \Google_Service_Analytics($client);
// MCF API を実行する
//==================================================
$gaRequestResult = $analytics->data_mcf->get(
// プロファイルID
'ga:......',
// 開始日
'30daysAgo',
// 終了日
'yesterday',
// 取得するメトリクス
'mcf:assistedConversions',
// 追加のオプション
[
'dimensions' => 'mcf:source',
'filters' => 'mcf:source=@.',
]
);
// 結果確認
//==================================================
var_dump($gaRequestResult);
この例だと、流入元別のアシストコンバージョンを30日前から昨日まで範囲で取得する。また流入元の値に “.” が含まれていることを条件とする。 流入元とは言うが (direct) のような値も入ってきて厄介。そこで「"." が含まれていること」にすればドメインが付いているものだけ抜けるという仕組み。
Google Developer Console で、このあたりから API 登録をすると動かせるようになる。
https://console.cloud.google.com/apis/dashboard
しかし、実はこの MCF API にはトラップがある。それはディメンションの設定にある。
Google Analytics の画面上からはデバイス別のアシストコンバージョンを確認することができるが API からはこれを確認するすべはない。ドキュメントを見ても MCF API のディメンションにはデバイスの話はない。
ディメンションと指標のリファレンス | アナリティクス Multi-Channel Funnels Reporting API | Google Developers
また MCF API を呼ぶときにディメンションに Core Reporting API の値を設定してもエラーになってしまう。逆に Core Reporting API を呼び出すときに MCF API のもの(アシストコンバージョンなど)を設定してもエラーになる。
ちなみに Core Reporting API で使える指標はここ。
Dimensions & Metrics Explorer | アナリティクス Reporting API v4 | Google Developers
まあ。アシストコンバージョンそんな重要じゃねーからよくね、って話なのかもしれない。