このガイドでは、アプリケーションが User Deletion API へのリクエストを承認する方法について説明します。
リクエストの承認
ユーザーが Google アナリティクスのウェブサイトでアカウント情報を確認するには、最初に Google アカウントにログインする必要があります。同様に、ユーザーがアプリケーションに初めてアクセスする際には、アプリケーションによるデータへのアクセスを承認する必要があります。
アプリケーションからアナリティクス API に送信するすべてのリクエストには、認証トークンを含める必要があります。このトークンは Google でアプリケーションを識別するためにも使用されます。
認証プロトコルについて
リクエストを承認するために、アプリケーションは OAuth 2.0 を使用する必要があります。これ以外の認証プロトコルには対応していません。アプリケーションで「Google でログイン」を使用している場合、承認手続きの一部が自動化されます。
OAuth 2.0 を使用したリクエストの承認
アナリティクス API へのすべてのリクエストは、認証済みのユーザーによって承認される必要があります。
OAuth 2.0 の承認プロセス(「フロー」)の詳細は、開発対象のアプリケーションの種類によって若干異なりますが、次の一般的なプロセスはすべての種類のアプリケーションに当てはまります。
- アプリケーションの作成時に、Google API Console を使用してアプリケーションを登録します。すると、後で必要になるクライアント ID やクライアント シークレットなどの情報が Google から提供されます。
- Google API コンソールでアナリティクス API を有効にします(API が API コンソールに表示されない場合は、この手順をスキップしてください)。
- アプリケーションでユーザーデータにアクセスする必要がある場合は、特定のアクセスのスコープを Google にリクエストします。
- データをリクエストするアプリケーションの承認を求める Google の同意画面がユーザーに表示されます。
- ユーザーが承認すると、有効期間の短いアクセス トークンがアプリケーションに付与されます。
- アプリケーションは、リクエストにそのアクセス トークンを付与してユーザーデータをリクエストします。
- Google がそのリクエストとトークンが有効であると判断すると、リクエストされたデータが返されます。
プロセスによっては、更新トークンを使用して新しいアクセス トークンを取得するなど、追加の手順が必要になる場合もあります。各種アプリケーションのフローについて詳しくは、Google の OAuth 2.0 ドキュメントをご覧ください。
アナリティクス API で使用される OAuth 2.0 のスコープ情報は次のとおりです。
スコープ | 意味 |
---|---|
https://www.googleapis.com/auth/analytics.user.deletion |
User Deletion API を使用してデータを削除します。 |
OAuth 2.0 を使用してアクセスをリクエストする場合、アプリケーションを登録したときに Google から提供された情報(クライアント ID やクライアント シークレットなど)に加えて、スコープ情報が必要になります。
ヒント: Google API クライアント ライブラリで一部の承認プロセスを処理することもできます。これらのライブラリはさまざまなプログラミング言語で用意されています。詳細については、ライブラリとサンプルのページをご覧ください。
OAuth 2.0 の一般的フロー
次に、特定の OAuth 2.0 フローでの一般的な使用例を紹介します。
ウェブサーバー
このフローは、ユーザーの Google アナリティクス データへの自動アクセス、オフライン アクセス、またはスケジュール設定されたアクセスに適しています。
例:
- Google アナリティクスの最新のデータでユーザー ダッシュボードを自動更新する。
クライアント側
このフローは、ユーザーがブラウザ内で Google アナリティクスのデータにアクセスするために、アプリケーションを直接操作するアプリケーションに最適です。サーバー側の機能を使わずに済みますが、レポートの自動作成、オフライン作成、スケジュールに基づく作成には向いていません。
例:
- アナリティクス クエリ エクスプローラなどのブラウザベースのレポート ツール。
インストール済みアプリケーション
このフローは、パッケージとして配布され、ユーザーによってインストールされたアプリケーションを対象としています。このフローでは、アプリケーションまたはユーザーがブラウザにアクセスして認証フローを完了する必要があります。
例:
- パソコン(Windows または Mac)のデスクトップ ウィジェット。
- コンテンツ マネジメント システムのプラグイン - ウェブサーバーまたはクライアント側と比較してこのフローが優れているのは、1 つの API Console プロジェクトをアプリケーションに使用できる点です。これにより、統合されたレポートを作成でき、ユーザーによるインストールが容易になります。
サービス アカウント
サービス アカウントは、ご自身のアカウントの Google アナリティクス データに自動的、オフラインで、またはスケジュールどおりにアクセスする場合に適しています。たとえば、ご自身の Google アナリティクス データのライブ ダッシュボードを作成し、それを他のユーザーと共有することもできます。
アナリティクス API を利用するには、まずセットアップ ツールを使用する 必要が あります。このツールに表示される手順に従い、Google API コンソールでの新しい プロジェクトの作成、API の有効化、認証情報の作成を行うことができます。
新しいサービス アカウントを設定するには、以下の手順に従ってください。
- [認証情報を作成] > [サービス アカウント キー] をクリックします。
- サービス アカウントの公開鍵と秘密鍵を標準 P12 ファイルとしてダウンロードするか、Google API クライアント ライブラリで読み込むことのできる JSON ファイルとしてダウンロードするかを選択します。
新しい公開鍵と秘密鍵のペアが生成され、パソコンにダウンロードされます。 この鍵は再発行できませんので、大切に保管してください。
トラブルシューティング
次のような場合は承認に失敗します。
access_token
が期限切れになっているか、API に間違ったスコープを使用している場合は、401
ステータス コードが返されます。承認されたユーザーがビュー(プロファイル)にアクセスできない場合は、
403
ステータス コードが返されます。正しいユーザーが認証されていること、選択したビュー(プロファイル)がそのユーザーに実際に付与されていることを確認します。
OAuth 2.0 プレイグラウンド
このツールを使用すると、管理画面から承認フローを最後まで実行できます。このツールでは、承認済みのクエリを実行するために必要なすべての HTTP リクエスト ヘッダーも表示されます。ご自身のアプリケーションで承認を得ることができない場合は、OAuth 2.0 Playground 経由で承認を試してみてください。その後、Playground からの HTTP ヘッダーとリクエストと、アプリケーションが Google アナリティクスに送信している内容を比較できます。これにより、リクエストの形式が正しいかどうかを簡単に確認できます。
無効な承認
更新トークンを使用しようとすると、次のように invalid_grant
エラーが返されます。
- サーバーのクロックがネットワーク タイム プロトコル(NTP)と同期していない。
- 更新トークンの制限を超えている。
アプリケーションは 1 つの Google アナリティクス アカウントにアクセスする場合でも、複数の更新トークンをリクエストできます。
たとえば、ユーザーがアプリケーションを複数のマシンにインストールして、同じ Google アナリティクス アカウントにアクセスする場合は、マシンごとに個別のトークンが必要になります。更新トークンの数が制限を超えると、古いトークンは無効になります。アプリケーションで無効な更新トークンが使用されると、invalid_grant
エラーが返されます。
OAuth 2.0 クライアントと Google アナリティクス アカウントの組み合わせごとに、25 個の更新トークンが許可されます。同じクライアント/アカウントの組み合わせでアプリケーションが更新トークンのリクエストを繰り返した場合、26 回目のトークンの発行時点で最初に発行されたトークンが無効になります。27 回目になると、2 回目に発行されたトークンが無効になります。