アナリティクスGoogle APIエラー403:「ユーザーはGoogleアナリティクスアカウントを持っていません」


147

このページのGoogleアナリティクスのステップバイステップガイドに基づいて、スクリプトを作成しています。

https://developers.google.com/analytics/resources/tutorials/hello-analytics-api

承認は、データにアクセスしようとするまで、問題なく行われます。戻りコードは403で、エラーメッセージは次のとおりです。

ユーザーはGoogle Analyticsアカウントを持っていません

このメッセージは意味がありません。私のアカウントにはGoogleアナリティクスデータがあり、複数のウェブサイトを追跡しています。ウェブブラウザから問題なくアクセスできます。Google APIコンソールを介してAnalytics APIを許可しましたが、APIアクセスにより正しいデータが得られます。

回答:


302

私もこの問題を抱えていました。サービスアカウントのメールアドレスを、アクセスしたいGoogleアナリティクスプロファイルに追加して修正しました。

Google APIコンソールの[API Access]タブで、サービスアカウントのメールアドレス(xxxxxx@developer.gserviceaccount.comなど)を取得しました。

次に、Googleの指示に従って、Analyticsプロファイルにメールアドレスを追加しました。これですべてが期待どおりに機能しています。

幸運を!


8
これがベストアンサーです。試してみたところ、魅力のようでした!@Sebastianに感謝します!
mongotop

1
アカウントに複数のプロファイルがあり、GA APIを使用してそれらのデータにアクセスする場合は、xxxxx @ developer.gserviceaccount.comをAnalyticsプロファイルに追加し続けるか、手動の方法を使用せずにより効率的な方法があります。ありがとう!
mongotop '11

2
@mongotopどういたしまして!残念ながら、これを行うためのより効率的な方法はわかりません。見つけた場合はコメントでお知らせください。
SM

1
プロパティレベルでユーザーを追加する場合は、アナリティクスUIが誤解を招く場合があるため、適切なビューに追加してください
tacone

1
あなたは伝説です、私はこれをセットアップするために一日中過ごしました。
dspacejs 2015

80

与えられた電子メールを追加するだけです(の形式71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com

ユーザーマネージャへ:

ユーザーはGoogle Analyticsアカウントを持っていません

それがあなたを助けることを望みます


2
悲しいことに、エラーは消えませんでした。まだメッセージ:GAPI:アカウントデータのリクエストに失敗しました。エラー: "{"エラー ":{"エラー ":[{"ドメイン ":"グローバル "、"理由 ":" insufficientPermissions "、"メッセージ ":"ユーザーはGoogleアナリティクスアカウントを持っていません。 "}]、" code ":403、" message ":"ユーザーにはGoogleアナリティクスアカウントがありません。 "}}"
JosFabre

1
@Lev 3年以上この回答はまだ有効です。私はグーグルがそれを改善することを望みました、しかしいいえ。それは完全に行われました:D
itsnikolay

28

私は同じ問題に直面していました。サービスアカウントuser(your account@yourwebsite-dev.iam.gserviceaccount.com)のメールIDをAnalyticsアカウントのユーザーに追加することで解決しました

Analyticsホームページ->管理者(左ペイン)->ユーザー管理->追加(メニューの右側にあるプラス記号をクリック)->新しいユーザーを追加->メールアドレスを入力してメールIDを追加します。

ここに画像の説明を入力してください

これで問題が解決します。


1
なぜこの答えは受け入れられないのですか?2日かけて、チュートリアルに従ってこのエラーが発生する理由を調べてみました。
ラグナル

8

上記のコメントに記載されていますが、アカウントの [ユーザー管理]でメールアドレスを追加しても機能しません。画面のビュー部分の下にあるユーザー管理をクリックする必要があります。

ここに画像の説明を入力してください


何年も経過していることはわかっていますが、アドレスをアカウントに追加したところ、うまく機能しているようです。
ピーター

私のUser Managementビューの表示の下にリンクが表示されません
aldrien.h

4

youreで認証しようとしているGoogleアカウントでログインしたことがない場合にも、このエラーが発生します。


6
ここにはそのままにしておきます。Googleアナリティクスのウェブインターフェース
naXa

そして、電子メールのパスワードはどこにありますか?.p12証明書をダウンロードする前にgoogleが表示するパスワードを試しましたが、有効ではありません
ymakux

2

メールアカウントの権限をGoogleアナリティクス内から「読み取りと分析」から別のものに変更し、保存してから、権限を「読み取りと分析」に戻すまで、403エラーが発生して機能しました。


これは役に立ちました。APIとAuth / Credentialsの下に新しい「サービスアカウント」を作成しました。.p12キーペアを保存しました。次に、Analyticsユーザー管理コンソールに移動し、サービスユーザーのメールアドレスを追加しました。PHP APIを使用した.p12認証は機能しますが、アクセス許可リストでのみ[読み取りと分析]をオフにした場合のみです。
ジョニーO

2

それがうまくいかない場合に備えて、ダウンロードしたJSONファイルを開いて検索しclient_email、そのメールアドレスをコピーして、View Fileに追加してください。

クリック

Analytics-Home Page ->Admin(left pane) -> User Management -> add (click on plus sign on right side of the menu) -> Add new User -> Add the client_email address which you copied.

それでもうまくいかない場合

Analytics-Homepage-> Admin ->Views->User Management(Click on add(+) symbol, add this ccopied client_email address and give permissions and save it.

2

何の権限が付与されていないにときに我々が得るこのメッセージはclient_email、でGoogleのalalyticsclient_emailあなたが得ているJSONファイルからclient_emailアプリで使用している権限を付与するには、Googleアナリティクスサイトにアクセスして、[管理者(設定アイコン)]をクリックします。

ここに画像の説明を入力してください

メニューリストが表示されたら、[ユーザー管理の表示]をクリックします

ここに画像の説明を入力してください

「+」アイコンと「ユーザーの追加」が表示されます。

ここに画像の説明を入力してください

それをクリックしたらclient_email、「メールアドレスフィールド」に追加して保存する必要があります。

ここに画像の説明を入力してください


1

403エラーが発生しました。これらのステップで私はそれを回避しました。明確にするために、私はOAuthで動作するGoogleのサンプル「HelloAnalytics.php」を取得しようと試みていました(ユーザー操作とは異なり、cronジョブなどに適しています)。

Analytics APIを有効にした後、APIとAuth / Credentialsの下に新しい「サービスアカウント」を作成しました。.p12キーペアを保存しました。次に、Analyticsユーザー管理コンソールに移動し、そのサービスユーザーのメールアドレスを追加しました。

私はオフにチェックするとPHPのAPIを使用した.p12認可は作品だけで「読む&分析」のみの許可リストにします。「ユーザーの管理」または「編集」、あるいはその両方を追加すると、403が表示されます。これがお役に立てば幸いです。これを数時間試してみました...


0

APIを使用しようとしているユーザーは、GAサービスを有効にしていません。
単にグーグルアカウントを持っているだけでは十分ではありません

...ただし、Googleアカウントを持っているだけでは、アナリティクスへのアクセスが自動的に許可されるわけではありません。まず、Google Analyticsに登録する必要があります。これは1回限りの簡単なプロセスです...


0

私もこの問題を抱えていましたが、問題は多くの許可を要求したことです。開発者コンソールは、http://www.googleapis.com/auth/analytics http://www.googleapis.com/auth/analytics.readonly権限の両方を要求するように言っています。これも私がsubクレームを使用しているときには機能しませんでした。sub請求は、Googleが動作するアクセストークンを発行するように指示し、別のユーザーに代わって私の場合、サービスアカウントを所有しているGoogleアカウントを- 。私はanalytics許可を削除analytics.readonlyし、サブクレームで固執しました:

{
  "iss":"123123123123123-xxxxxxxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com",
  "sub":"me.example@gmail.com"
  "scope":"http://www.googleapis.com/auth/analytics",
  ...
}

発行されたベアラートークンを使用すると、完全に異なるGoogleアカウントによって所有されているが、Gmailユーザー(me.example@gmail.com)と共有(読み取り専用)されているプロファイルに対して(少なくとも一部)Google Analyticsクエリを実行できます。


1
Google AnalyticsクライアントSDKを使用している場合、サブとは何ですか?
Dejell 2014

これがうまくいけばいいのに!同じことを実行しようとすると、次のエラーが発生します。} '
SEoF 2015年

それを続けることをお勧めします。私たちはまだこれを使用して、GAからリアルタイムデータを数分ごとに取得し、すべてbashを使用しています。
mogsie

0

私は何とかしてこれを修正することができました

client = Google :: APIClient.new(:application_name => 'X'、:application_version => '1')

上記のアプリケーション名変数 'Xは、GAダッシュボードのACCOUNT名であり、PROPERTY名ではありません。私の場合は、アクセスしたいサイトの実際のURLでした。

混乱しますが、ありがたいことに修正されました(Googleに感謝しません!)


この「X」を見つけようとしています。スクリーンショットを投稿できますか?
Dejell 2014

0

「サブ」引数を提供しないため、問題が発生します。これを提供しない限り、電話はその長いサービスアカウントのメールに代わって行われます。

したがって、サブ引数を指定し、レポートでアクセス権を既に付与している電子メールを送信すれば、問題なく機能するはずです。


0

Googleアナリティクスにサインインしなかったため、同じエラーが発生しました。そのため、分析アカウントにサインインすることで解決しました。


0

サービスアカウントを使用する代わりに、次のコマンドを使用して、(このスレッドの上位の回答に従って)新しいユーザー権限を追加する必要を回避できます。 OAuth client ID認証情報。

行くAPI資格ダッシュボード [資格情報の作成]-> [OAuthクライアントID]をクリックします。その後、APIを認証するために必要なクライアントIDとクライアントシークレットを取得する必要があります。

これで、を使用OAuth2WebServerFlowして認証を使用できるようになります。これはpython3の例です:

from apiclient.discovery import build
from oauth2client.client import OAuth2WebServerFlow

# TODO: Fill these in...
CLIENT_ID = ''
CLIENT_SECRET = ''
VIEW_ID = ''

flow = OAuth2WebServerFlow(
    CLIENT_ID, CLIENT_SECRET,
    'https://www.googleapis.com/auth/analytics.readonly',
    redirect_uri='urn:ietf:wg:oauth:2.0:oob'
)

authorize_url = flow.step1_get_authorize_url()
print('Receive code from:\n%s\n' % authorize_url)
code = input('Enter code here:').strip()
credentials = flow.step2_exchange(code)

api = build('analyticsreporting', 'v4', credentials=credentials)
body={
    'reportRequests': [{
        'viewId': VIEW_ID,
        'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
        'metrics': [{'expression': 'ga:sessions'}],
        'dimensions': [{'name': 'ga:country'}]
    }]
}

data = api.reports().batchGet(body=body).execute()
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.