Google Analytics
まとめ
| Item | 説明 |
|---|---|
| リリース状態 | 一般公開 |
| 製品 | Power BI (データセット) Power BI (データフロー) Power Apps (データフロー) Customer Insights (データフロー) |
| サポートされている認証の種類 | Google アカウント |
| 関数リファレンス ドキュメント | GoogleAnalytics.Accounts |
注意
デプロイ スケジュールにより、またホスト固有の機能があることにより、ある製品に存在する機能が他の製品にはない場合があります。
注意
2021 年 7月、Google は、埋め込みブラウザー フレームワークから Google アカウントへのサインインのサポートを停止します。 この変更により、Google へのサインインをサポートするには、Power BI Desktop を 2021 年 6 月のバージョンに更新する必要があります。
注意
このコネクタは、Google アナリティクス API の V4 を使用します。
前提条件
Google アナリティクスにサインインするには、Google アナリティクス アカウント (ユーザー名/パスワード) が必要です。
サポートされる機能
- インポート
Power Query Desktop から Google アナリティクス データへの接続
Google アナリティクス データに接続するには:
Power BI Desktop の [ホーム] リボンで [データを取得] を選択します。 左側のカテゴリで [オンライン サービス] を選んでから、 [Google アナリティクス] を選びます。 次に、 [接続](Connect) を選択します。

今回初めて Google アナリティクス コネクタを使用してデータを取得する場合は、サードパーティの通知が表示されます。 このメッセージが再び表示されないようにする場合は、 [Don't warn me again with this connector](今後、このコネクタで警告を表示しない) を選びます。 その後 [続行] を選択します。
Google アナリティクス アカウントにサインインするには、 [サインイン] を選びます。
![[サインイン] ボタンを選びます。](media/google-analytics/sign-in.png)
表示される [Google アカウントでサインイン] ウィンドウで、Google アナリティクス アカウントへのサインイン資格情報を指定します。 メール アドレスまたは電話番号を指定できます。 [次へ] を選択します。

Google アナリティクスのパスワードを入力し、 [次へ] を選びます。

Power BI Desktop が Google アカウントにアクセスできるようにするかどうかを確認するメッセージが表示されたら、 [許可] を選びます。

正常にサインインしたら、 [接続] を選びます。

接続が確立されると、自分がアクセス権を持つアカウントの一覧が表示されます。 アカウント、プロパティ、ビューをドリル スルーして、表示フォルダーに分類された値の選択を確認します。
選んだテーブルを 読み込む と、テーブル全体が Power BI Desktop に取り込まれます。または、 [データの変換] を選んでクエリを編集し、Power Query エディターを開くことができます。 次に、使用するデータのセットをフィルター処理して絞り込んでから、その絞り込んだデータ セットを Power BI Desktop に読み込みます。

Power Query Online から Google アナリティクス データへの接続
Google アナリティクス データに接続するには:
[Power Query - データ ソースの選択] ページで [Google アナリティクス] を選びます。
接続ページで、接続名を入力し、必要に応じてオンプレミス データ ゲートウェイを選びます。

[サインイン] を選んで Google アカウントにサインインします。
表示される [Google アカウントでサインイン] ウィンドウで、Google アナリティクス アカウントへのサインイン資格情報を指定します。 メール アドレスまたは電話番号を指定できます。 [次へ] を選択します。
注意
現在、Google アナリティクスのサインイン ダイアログ ボックスには、Power Query Desktop にサインインしていることが示されています。 この表現は将来変更される予定です。

Google アナリティクスのパスワードを入力し、 [次へ] を選びます。

Power BI Desktop が Google アカウントにアクセスできるようにするかどうかを確認するメッセージが表示されたら、 [許可] を選びます。

正常にサインインしたら、 [次へ] を選びます。
接続が確立されると、自分がアクセス権を持つアカウントの一覧が表示されます。 アカウント、プロパティ、ビューをドリル スルーして、表示フォルダーに分類された値の選択を確認します。
[データの変換] を選んで、Power Query エディターでクエリを編集します。 次に、使用するデータ セットをフィルター処理して絞り込んでから、その絞り込んだデータ セットを Power Apps に読み込みます。
制限事項と問題
Adobe Analytics データへのアクセスに関連する次の制限事項と問題に注意する必要があります。
Power BI の Google アナリティクス クォータ制限
Google アナリティクスの AP 要求の標準的な制限とクォータについては、「API リクエストの制限と割り当て」をご覧ください。 ただし、Power BI Desktop および Power BI サービスでは、次の拡張されたクエリ数を使用できます。
- 1 日あたりのクエリ数: 1,500,000
- 100 秒あたりのクエリ数: 4,000
トラブルシューティング
予期しないデータの検証
日付範囲がとても大きい場合、Google アナリティクスは値のサブセットのみを返します。 このセクションで説明しているプロセスを使用して、取得する日付を把握し、それらを手動で編集することができます。 さらに多くのデータが必要な場合は、日付範囲が異なる複数のクエリを追加できます。 表示されるはずのデータが返されるかどうかが不明な場合は、データ プロファイリングを使用して、返される内容を簡単に確認することもできます。
表示されているデータが Google アナリティクスから取得したものと同じであることを確認するには、Google の対話型ツールでクエリを自分で実行します。 Power Query がどのデータを取得しているかを把握するには、クエリ診断を使用して、どのクエリ パラメーターが Google アナリティクスに送信されているかを確認できます。
クエリ診断の手順に従って、 [追加したアイテム] に対して [ステップを診断する] を実行すると、生成された結果が診断の [Data Source Query](データ ソース クエリ) 列に表示されます。 これは、Google アナリティクスへの最初の接続上で、できるだけ少ない追加操作で実行することをお勧めします。それにより、Google アナリティクスから取得しているデータではなく Power Query 変換のデータが失われることのないようにすることができます。
クエリによっては、Google アナリティクスに対して生成された API 呼び出しを含む行が同じ場所に存在していない可能性があります。 しかし、単純な Google アナリティクス専用クエリの場合は、その列にコンテンツが含まれている最後の行として表示されるのが一般的です。
[Data Source Query](データ ソース クエリ) 列に、次のパターンのレコードが表示されます。
Request:
GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga:<GA Id>&metrics=ga:users&dimensions=ga:source&start-date=2009-03-12&end-date=2020-08-11&start-index=1&max-results=1000"aUser=<User>%40gmail.com HTTP/1.1
<Content placeholder>
Response:
HTTP/1.1 200 OK
Content-Length: -1
<Content placeholder>
このレコードから、分析ビュー (プロファイル) ID、メトリックの一覧 (この例では、ga:users のみ)、ディメンションの一覧 (この場合は参照ソース)、start-date と end-date、start-index、max-results (既定では、エディターに対して 1000 に設定)、quotaUser があることがわかります。
これらの値を Google アナリティクスの Query Explorer にコピーして、クエリから返されたものと同じデータが API によっても返されていることを検証できます。
エラーが日付範囲に関するものである場合は、簡単に修正できます。 詳細エディターに移動します。 次のような M クエリが作成されます (最小限。その上に他の変換が存在する可能性があります)。
let
Source = GoogleAnalytics.Accounts(),
#"<ID>" = Source{[Id="<ID>"]}[Data],
#"UA-<ID>-1" = #"<ID>"{[Id="UA-<ID>-1"]}[Data],
#"<View ID>" = #"UA-<ID>-1"{[Id="<View ID>"]}[Data],
#"Added Items" = Cube.Transform(#"<View ID>",
{
{Cube.AddAndExpandDimensionColumn, "ga:source", {"ga:source"}, {"Source"}},
{Cube.AddMeasureColumn, "Users", "ga:users"}
})
in
#"Added Items"
2 つのいずれかを行うことができます。 [日付] 列がある場合は、日付に基づいてフィルター処理できます。 これは、より簡単なオプションです。 日付で分割されることが気にならない場合は、後でグループ化することができます。
[日付] 列がない場合は、詳細エディターでクエリを手動で操作して、それを追加し、フィルター処理することができます。 次に例を示します。
let
Source = GoogleAnalytics.Accounts(),
#"<ID>" = Source{[Id="<ID>"]}[Data],
#"UA-<ID>-1" = #"<ID>"{[Id="UA-<ID>-1"]}[Data],
#"<View ID>" = #"UA-<ID>-1"{[Id="<View ID>"]}[Data],
#"Added Items" = Cube.Transform(#"<View ID>",
{
{Cube.AddAndExpandDimensionColumn, "ga:date", {"ga:date"}, {"Date"}},
{Cube.AddAndExpandDimensionColumn, "ga:source", {"ga:source"}, {"Source"}},
{Cube.AddMeasureColumn, "Organic Searches", "ga:organicSearches"}
}),
#"Filtered Rows" = Table.SelectRows(#"Added Items", each [Date] >= #date(2019, 9, 1) and [Date] <= #date(2019, 9, 30))
in
#"Filtered Rows"