Google 웹 로그 분석 오류 403 : '사용자에게 Google 웹 로그 분석 계정이 없습니다.'


146

이 페이지의 Google 웹 로그 분석 단계별 가이드를 기반으로 스크립트를 작성하고 있습니다.

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

데이터 액세스를 시도 할 때까지 문제없이 인증이 수행됩니다. 리턴 코드는 403이며 오류 메시지는 다음과 같습니다.

Google 웹 로그 분석 계정이없는 사용자

이 메시지는 의미가 없습니다. 내 계정에 Google 웹 로그 분석 데이터가 있고 여러 웹 사이트를 추적하고있어 문제없이 웹 브라우저에서 액세스 할 수 있습니다. Google API 콘솔을 통해 Analytics API를 허용했으며 API 액세스로 올바른 데이터를 얻을 수 있습니다.

답변:


302

나도이 문제가 있었다. 서비스 계정의 이메일 주소를 액세스하려는 Google 웹 로그 분석 프로필에 추가하여 문제를 해결했습니다.

Google API 콘솔의 "API 액세스"탭에서 서비스 계정의 이메일 주소 (xxxxxx@developer.gserviceaccount.com 등)를 얻었습니다.

그런 다음 웹 로그 분석 프로필에 이메일 주소를 추가하기위한 Google의 지침을 따랐습니다 . 이제 모든 것이 예상대로 작동합니다.

행운을 빕니다!


8
이것은 최고의 답변입니다, 나는 그것을 시도하고 매력처럼 작동합니다! 감사합니다 @Sebastian!
mongotop

1
계정에 프로필이 두 개 이상 있고 GA API를 사용하여 데이터에 액세스하려는 경우 xxxxx@developer.gserviceaccount.com을 웹 로그 분석 프로필에 계속 추가해야하거나 수동 방법을 사용하지 않고도보다 효율적인 방법을 사용할 수 있습니다. 감사!
mongotop

2
@mongotop 천만에요! 불행히도 나는 이것을하는보다 효율적인 방법을 모르겠습니다-의견이 있으면 의견을 알려주십시오.
SM

1
속성 수준에서 사용자를 추가하는 경우 웹 로그 분석 UI가 때때로 오도되기 때문에 적절한보기에 추가해야합니다.
tacone

1
당신은 전설입니다, 나는 하루 종일 이것을 설정하려고 노력했습니다.
dspacejs

80

당신에게 주어진 이메일을 추가하십시오 (형식 71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com)

사용자 관리자에게 :

Google 웹 로그 분석 계정이없는 사용자

도움이 되길 바랍니다


2
슬프게도 오류는 사라지지 않았습니다. 스틸 메시지 : GAPI : 계정 데이터를 요청하지 못했습니다. 오류 : "{"error ": {"errors ": [{"domain ":"global ","eason ":"insufficientPermissions ","message ":"사용자에게 Google 웹 로그 분석 계정이 없습니다. "}]," code ": 403,"message ":"사용자는 Google 웹 로그 분석 계정이 없습니다. "}}"
JosFabre

1
@Lev 3 년 이상이 답변은 여전히 ​​유효합니다. 방금 Google이 개선하기를 바랐지만 아닙니다. 완벽하게 이루어졌다 : D
itsnikolay

28

나는 같은 문제에 직면했다. your account@yourwebsite-dev.iam.gserviceaccount.com웹 로그 분석 계정의 사용자에게 서비스 계정 사용자 ( ) 의 이메일 ID를 추가하여 문제를 해결했습니다.

Analytics- 홈 페이지-> 관리 (왼쪽 창)-> 사용자 관리-> 추가 (메뉴 오른쪽의 더하기 부호를 클릭)-> 새 사용자 추가-> 이메일 주소 입력에 이메일 ID 추가

여기에 이미지 설명을 입력하십시오

이제 문제가 해결 될 것입니다.


1
왜이 대답이 받아 들여지지 않습니까? 이틀 동안이 튜토리얼을 따라 왜이 오류가 발생했는지 알아 내려고 노력합니다.
Ragnar

8

위의 설명에 언급되어 있지만 계정 의 사용자 관리 아래에 이메일 주소를 추가하면 작동하지 않습니다. 화면 의 보기 부분 에서 사용자 관리를 클릭해야합니다 .

여기에 이미지 설명을 입력하십시오


몇 년이 지났지 만 지금은 주소를 계정에 추가 했는데 제대로 작동하는 것 같습니다.
Peter

User Management내 끝보기
aldrien.h에서


2

Google Analytics 내부의 이메일 계정 권한을 '읽기 및 분석'에서 다른 것으로 변경하고 저장 한 다음 권한을 '읽기 및 분석'으로 다시 변경하고 작동 할 때까지 403 오류가 발생했습니다.


도움이되었습니다. APIs & Auth / Credentials에 새로운 "서비스 계정"을 만들었습니다. .p12 키 페어를 저장했습니다. 그런 다음 웹 로그 분석 사용자 관리 콘솔로 이동하여 서비스 사용자의 이메일 주소를 추가했습니다. PHP API를 사용한 .p12 인증은 작동하지만 권한 목록 에서만 "읽기 및 분석"을 체크 아웃 한 경우에만 가능 합니다.
Johnny 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.

1

403 오류가 발생했습니다. 이 단계는 나를 둘러싸고 있습니다. 분명히하기 위해 Google의 샘플 "HelloAnalytics.php"를 OAuth (cron 작업 등에 적합한 sans 사용자 상호 작용)로 작업하려고했습니다.

Analytics API를 활성화 한 후 API 및 인증 / 인증서 아래에 새로운 "서비스 계정"을 만들었습니다. .p12 키 페어를 저장했습니다. 그런 다음 웹 로그 분석 사용자 관리 콘솔로 이동하여 해당 서비스 사용자의 이메일 주소를 추가했습니다.

내가 선택을 해제하면 PHP API를 사용하여 .P12 인증 작동 "읽기 및 분석" 에만 사용 권한 목록에서. "사용자 관리"및 / 또는 "편집"을 추가하면 403이 표시됩니다. 이것이 도움이 되길 바랍니다.


0

나는이 문제도 가지고 있었고 문제는 너무 많은 권한을 요청했다는 것을 알았습니다. 개발자 콘솔에서 권한 http://www.googleapis.com/auth/analytics http://www.googleapis.com/auth/analytics.readonly 권한 을 모두 요청합니다 . 나는 또한 sub주장을 사용할 때 작동하지 않았습니다 . sub그 운영 토큰 구글에 지시 주장은 액세스를 발행하는 다른 사용자를 대신하여 - 내 경우 서비스 계정을 소유하고있는 Google 계정을. 나는 analytics권한을 제거하고 analytics.readonly하위 주장을 고수했습니다 .

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

발행 된 Bearer 토큰을 사용하면 완전히 다른 Google 계정이 소유하지만 내 Gmail 사용자 (me.example@gmail.com)와 공유 된 (읽기 전용) 프로필에 대해 Google Analytics 쿼리를 만들 수 있습니다 (적어도 일부). .


1
Google 웹 로그 분석 클라이언트 SDK를 사용할 때 하위 항목은 무엇입니까?
Dejell

나는 이것이 효과가 있었기를 바란다! Google_Auth_Exception [401] : OAuth2 토큰을 새로 고치는 동안 오류가 발생했습니다. } '
SEoF 2016 년

나는 당신이 그것을 유지하는 것이 좋습니다. 우리는 여전히 이것을 사용하여 몇 분마다 GA의 실시간 데이터를 가져옵니다. 모두 bash를 사용합니다.
mogsie

0

나는 이것을 확인함으로써 이것을 고칠 수 있었다.

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

위의 애플리케이션 이름 변수 'X'는 GA 대시 보드의 계정 이름이 아니라 속성 이름입니다. 필자의 경우 액세스하려는 사이트의 실제 URL이었습니다.

혼란 스럽지만 고맙게 해결되었습니다 (Google 덕분에 아닙니다!)


이 'X'를 찾으려고합니다. 스크린 샷을 게시 할 수 있습니까?
Dejell

0

"sub"인수를 제공하지 않기 때문에 문제가 발생합니다. 당사가이를 제공하지 않는 한 전화는 긴 서비스 계정 이메일을 대신하여 이루어집니다.

따라서 이미 보고서에 액세스 권한을 부여한 이메일과 함께 하위 인수를 제공하면 문제가 해결됩니다.


0

Google 웹 로그 분석에 로그인하지 않았기 때문에 같은 오류가 발생했습니다. 분석 계정에 로그인하여 문제를 해결했습니다.


0

어떤 권한을 부여하지 않을 때 우리가 얻을이 메시지 client_email는에 구글 alalytics , client_email당신이 가지고있다 JSON 파일에서 . client_email앱에서 사용중인 권한을 부여 하려면 Google 웹 로그 분석 사이트로 이동 하여 "관리자 (설정 아이콘)"를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

메뉴 목록이 표시되면 "사용자 관리보기"를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

"+"아이콘과 "사용자 추가"가 표시됩니다.

여기에 이미지 설명을 입력하십시오

당신이 그것을 클릭하면, 당신 client_email은 "이메일 주소 필드"에 추가하고 저장해야합니다, 당신은 갈 것입니다!

여기에 이미지 설명을 입력하십시오


-1

API를 사용하려는 사용자가 GA 서비스를 사용하도록 설정하지 않았습니다.
구글 계정만으로는 충분하지 않습니다 .

...하지만 Google 계정 만 있어도 Analytics에 대한 액세스 권한이 자동으로 부여되지는 않습니다. 먼저 간단한 일회성 프로세스 인 Google Analytics에 등록해야합니다.


-1

서비스 계정을 사용하는 대신이 스레드의 최상위 답변에 따라 새 사용자 권한을 추가해야 할 필요성을 회피 할 수 있습니다. 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.