Analytics Google API Error 403:“ ผู้ใช้ไม่มีบัญชี Google Analytics”


146

ฉันกำลังสร้างสคริปต์ตามคำแนะนำทีละขั้นตอนของ Google Analytics จากหน้านี้:

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

การอนุญาตจะทำโดยไม่มีปัญหาจนกว่าจะพยายามเข้าถึงข้อมูล โค้ดส่งคืนคือ 403 และข้อความแสดงข้อผิดพลาดคือ:

ผู้ใช้ไม่มีบัญชี Google Analytics ใด ๆ

ข้อความนี้ไม่มีเหตุผล: บัญชีของฉันมีข้อมูลการวิเคราะห์ของ Google การติดตามหลายเว็บไซต์และฉันสามารถเข้าถึงได้จากเว็บเบราว์เซอร์โดยไม่มีปัญหา ฉันอนุญาต Analytics API ผ่านคอนโซลของ Google API และการเข้าถึง API ทำให้ฉันมีข้อมูลที่ถูกต้อง

คำตอบ:


302

ฉันมีปัญหานี้เช่นกัน ฉันแก้ไขได้โดยเพิ่มที่อยู่อีเมลสำหรับบัญชีบริการของฉันในโปรไฟล์ Google Analytics ที่ฉันต้องการให้เข้าถึง

ฉันได้รับที่อยู่อีเมล (เช่น xxxxxx@developer.gserviceaccount.com) สำหรับบัญชีบริการโดยดูที่แท็บ "การเข้าถึง API" ในคอนโซล Google API

จากนั้นผมทำตามคำแนะนำของ Google สำหรับการเพิ่มที่อยู่อีเมลไปที่โปรไฟล์ ตอนนี้ทุกอย่างทำงานได้ตามที่คาดไว้

โชคดี!


8
นี่เป็นคำตอบที่ดีที่สุดฉันลองแล้วมันก็ใช้งานได้เหมือนเสน่ห์ !! ขอบคุณมาก @ เซบาสเตียน!
mongotop

1
หากคุณมีโปรไฟล์มากกว่าหนึ่งโปรไฟล์ในบัญชีของคุณและคุณต้องการเข้าถึงข้อมูลของพวกเขาโดยใช้ GA API คุณควรเพิ่ม xxxxx@developer.gserviceaccount.com ในโปรไฟล์ Analytics หรือมีวิธีที่มีประสิทธิภาพมากขึ้นโดยไม่ต้องใช้วิธีการด้วยตนเอง ขอบคุณ!
mongotop

2
@ Mongotop ยินดีต้อนรับ! น่าเสียดายที่ฉันไม่รู้จักวิธีที่มีประสิทธิภาพมากขึ้นในการทำเช่นนี้ - แจ้งให้เราทราบในความคิดเห็นหากคุณพบ
SM

1
หากคุณเพิ่มผู้ใช้ในระดับพร็อพเพอร์ตี้อย่าลืมเพิ่มผู้ใช้ไปยังมุมมองที่เหมาะสมเนื่องจากในบางครั้ง Analytics UI อาจทำให้เข้าใจผิด
tacone

1
คุณเป็นตำนานฉันใช้เวลาทั้งวันพยายามตั้งค่านี้
dspacejs

80

เพียงเพิ่มอีเมลของคุณ (รูปแบบ71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com)

ถึงผู้จัดการผู้ใช้:

ผู้ใช้ไม่มีบัญชี Google Analytics ใด ๆ

หวังว่ามันจะช่วยคุณ


2
น่าเศร้าที่ความผิดพลาดไม่หายไปไหน ข้อความ: GAPI: ไม่สามารถขอข้อมูลบัญชี ข้อผิดพลาด: "{" ข้อผิดพลาด ": {" ข้อผิดพลาด ": [{" โดเมน ":" ทั่วโลก "," เหตุผล ":" ไม่เพียงพอข้อตกลง "," ข้อความ ":" ผู้ใช้ไม่มีบัญชี Google Analytics "}]," รหัส ": 403," ข้อความ ":" ผู้ใช้ไม่มีบัญชี Google Analytics "}}"
JosFabre

1
@ ต่ำกว่า 3 ปีคำตอบนี้ยังคงใช้ได้ ฉันแค่หวังว่า Google จะปรับปรุงให้ดีขึ้น แต่ไม่ใช่ มันทำอย่างสมบูรณ์แบบ: D
itsnikolay

28

ฉันกำลังเผชิญกับปัญหาเดียวกัน แก้ไขได้โดยเพิ่มรหัสอีเมลของผู้ใช้บัญชีบริการ ( your account@yourwebsite-dev.iam.gserviceaccount.com) ลงในผู้ใช้ในบัญชี Analytics ของคุณภายใต้ -

หน้าแรกของ Analytics -> ผู้ดูแลระบบ (บานหน้าต่างด้านซ้าย) -> การจัดการผู้ใช้ -> เพิ่ม (คลิกที่เครื่องหมายบวกที่ด้านขวาของเมนู) -> เพิ่มผู้ใช้ใหม่ -> เพิ่มรหัสอีเมลในการป้อนที่อยู่อีเมล

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้จะแก้ปัญหา


1
ทำไมคำตอบนี้ไม่ได้รับการยอมรับ? ฉันใช้เวลา 2 วันพยายามหาสาเหตุว่าทำไมการติดตามการสอนทำให้ฉันมีข้อผิดพลาดนี้
Ragnar

8

มันถูกกล่าวถึงในความคิดเห็นด้านบน แต่ถ้าคุณเพิ่มที่อยู่อีเมลภายใต้การจัดการผู้ใช้สำหรับบัญชีของคุณมันจะไม่ทำงาน คุณต้องคลิกที่การจัดการผู้ใช้ภายใต้ส่วนมุมมองของหน้าจอ

ป้อนคำอธิบายรูปภาพที่นี่


ฉันรู้ว่าหลายปีผ่านไปแล้ว แต่ตอนนี้ฉันได้เพิ่มที่อยู่ในบัญชีและดูเหมือนว่าจะใช้งานได้ดี
ปีเตอร์

ฉันไม่เห็นUser Managementลิงก์ภายใต้ View on my end
aldrien.h

4

คุณจะได้รับข้อผิดพลาดนี้หากคุณไม่เคยลงชื่อเข้าใช้ด้วยบัญชี Google ที่คุณพยายามตรวจสอบ


6
ฉันจะฝากสิ่งนี้ไว้ที่นี่: ลิงก์ไปยังเว็บอินเตอร์เฟสของ Google Analytics
naXa

และรหัสผ่านสำหรับอีเมลอยู่ที่ไหน ฉันพยายามรหัสผ่านที่ google แสดงให้ฉันก่อนดาวน์โหลดใบรับรอง. p12 แต่ไม่ถูกต้อง
ymakux

2

ฉันได้รับข้อผิดพลาด 403 จนกระทั่งเปลี่ยนสิทธิ์บัญชีอีเมลจากภายใน Google Analytics จาก 'อ่านและวิเคราะห์' เป็นอย่างอื่นบันทึกไว้แล้วเปลี่ยนสิทธิ์กลับเป็น 'อ่านและวิเคราะห์' และใช้งานได้


สิ่งนี้ช่วยได้ ฉันสร้าง "บัญชีบริการ" ใหม่ภายใต้ API & รับรองความถูกต้อง / ข้อมูลรับรอง; และบันทึกคู่คีย์. p12 จากนั้นฉันไปที่คอนโซลการจัดการผู้ใช้ Analytics และเพิ่มที่อยู่อีเมลของผู้ใช้บริการ อนุญาต. p12 โดยใช้ PHP API ทำงานได้ แต่ถ้าฉันตรวจสอบ "อ่านและวิเคราะห์" เฉพาะในรายการสิทธิ์
Johnny O

2

ในกรณีที่ไม่ได้ผลให้ลองเปิดไฟล์ JSON ที่คุณได้ดาวน์โหลดและค้นหา client_emailและคัดลอกที่อยู่อีเมลนั้นและเพิ่มลงในไฟล์ดู

คลิกที่

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 ขั้นตอนเหล่านี้ทำให้ฉันอยู่ใกล้มัน เพื่อความชัดเจนฉันพยายามทำให้ตัวอย่าง "HelloAnalytics.php" ของ Google ทำงานร่วมกับ OAuth (โต้ตอบกับผู้ใช้ที่เหมาะสมกับงาน cron ฯลฯ )

หลังจากเปิดใช้งาน Analytics API ฉันได้สร้าง "บัญชีบริการ" ใหม่ภายใต้ API & รับรองความถูกต้อง / ข้อมูลรับรอง; และบันทึกคู่คีย์. p12 จากนั้นฉันไปที่คอนโซลการจัดการผู้ใช้ Analytics และเพิ่มที่อยู่อีเมลของผู้ใช้บริการ

p12 ที่อนุมัติโดยใช้ PHP API ทำงานถ้าผมตรวจสอบการปิดเพียง "อ่านและวิเคราะห์" เท่านั้นในรายการสิทธิ์ หากฉันเพิ่ม "จัดการผู้ใช้" และ / หรือ "แก้ไข" ฉันจะได้รับ 403 หวังว่านี่จะเป็นประโยชน์ฉันกำลังขัดเรื่องนี้สองสามชั่วโมง ...


0

ฉันมีปัญหานี้ด้วยและฉันพบว่าปัญหาก็คือว่าฉันขอสิทธิ์มากเกินไป Developer Console บอกว่าต้องขอทั้ง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",
  ...
}

โทเค็น Bearer ที่ออกให้ทำให้ฉันสามารถค้นหา (อย่างน้อยบางส่วน) Google Analytics ไปยังโปรไฟล์ที่เป็นเจ้าของบัญชี Google ที่แตกต่างกันโดยสิ้นเชิง แต่มีการแชร์ (อ่านอย่างเดียว) กับผู้ใช้ gmail ของฉัน (me.example@gmail.com) .


1
เมื่อฉันใช้ SDK ลูกค้าของ Google Analytics คืออะไร
Dejell

ฉันหวังว่ามันใช้งานได้! ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันลองทำสิ่งเดียวกัน: Google_Auth_Exception [401]: เกิดข้อผิดพลาดในการรีเฟรชโทเค็น OAuth2 ข้อความ: '{"ข้อผิดพลาด": "unauthorized_client", "error_description": "ไคลเอ็นต์หรือขอบเขตที่ร้องขอ }'
SEoF

ฉันแนะนำให้คุณเก็บไว้ เรายังใช้สิ่งนี้เพื่อดึงข้อมูลเรียลไทม์จาก GA ทุกสองสามนาทีโดยใช้ bash ไม่น้อย!
mogsie

0

ฉันจัดการเพื่อแก้ไขปัญหานี้โดยทำให้แน่ใจว่า

ลูกค้า = Google :: APIClient.new (: application_name => 'X',: application_version => '1')

ตัวแปรชื่อแอปพลิเคชัน 'X ด้านบนเป็นชื่อบัญชีในแผงควบคุม GA ไม่ใช่ชื่อพร็อพเพอร์ตี้ซึ่งในกรณีของฉันคือ URL จริงของเว็บไซต์ที่ฉันต้องการเข้าถึง

สับสน แต่ได้รับการแก้ไขแล้วขอบคุณ (ไม่ต้องขอบคุณ Google!)


ฉันพยายามค้นหา 'X' นี้ คุณสามารถโพสต์ภาพหน้าจอได้ไหม
Dejell

0

ปัญหาเกิดขึ้นเนื่องจากเราไม่ได้ระบุอาร์กิวเมนต์ "ย่อย" การโทรจะเกิดขึ้นในนามของอีเมลบัญชีบริการระยะยาว

ดังนั้นเพียงแค่ระบุอาร์กิวเมนต์ย่อยด้วยอีเมลที่คุณได้ให้สิทธิ์การเข้าถึงในรายงานและสิ่งต่าง ๆ ควรทำงานได้ดี!


0

ฉันได้รับข้อผิดพลาดเดียวกันเนื่องจากฉันไม่ได้ลงชื่อเข้าใช้ Google Analytics ดังนั้นฉันจึงแก้ไขมันได้โดยลงชื่อเข้าใช้บัญชีการวิเคราะห์


0

ข้อความนี้เราได้รับเมื่อได้รับอนุญาตไม่ได้รับอนุญาตให้client_emailอยู่ในalalytics Google , client_emailเป็นคุณได้จากแฟ้ม JSON เพื่อให้สิทธิ์แก่client_emailคุณที่คุณใช้ในแอพของคุณตรงไปที่ไซต์ Google Analyticsแล้วคลิก "ผู้ดูแลระบบ (ไอคอนการตั้งค่า)"

ป้อนคำอธิบายรูปภาพที่นี่

คุณจะได้รับรายชื่อเมนูจากนั้นคลิกที่ "ดูการจัดการผู้ใช้"

ป้อนคำอธิบายรูปภาพที่นี่

คุณจะเห็นไอคอน "+" และ "เพิ่มผู้ใช้"

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อคุณคลิกที่คุณจะต้องเพิ่มclient_emailใน "ที่อยู่อีเมล" และบันทึกคุณควรจะไป!

ป้อนคำอธิบายรูปภาพที่นี่


-1

ผู้ใช้ที่คุณพยายามใช้ API สำหรับยังไม่ได้เปิดใช้งานบริการ GA ของเขา
เพียงมีบัญชีผู้ใช้ Google ไม่เพียงพอ

... อย่างไรก็ตามเพียงแค่มีบัญชี Google ไม่อนุญาตให้คุณเข้าถึง Analytics โดยอัตโนมัติ ก่อนอื่นคุณต้องลงทะเบียน Google Analytics ซึ่งเป็นขั้นตอนง่าย ๆ เพียงครั้งเดียว ...


-1

แทนที่จะใช้บัญชีบริการคุณสามารถเลี่ยงขั้นตอนที่ต้องการเพิ่มสิทธิ์ผู้ใช้ใหม่ (ตามคำตอบยอดนิยมในชุดข้อความนี้) โดยใช้OAuth client IDข้อมูลประจำตัว

ไปที่แดชบอร์ดข้อมูลรับรอง APIและคลิก "สร้างข้อมูลรับรอง" -> "รหัสลูกค้า OAuth" หลังจากนั้นคุณควรได้รับรหัสลูกค้าและความลับของลูกค้าที่คุณจะต้องรับรองความถูกต้องของ API

ตอนนี้คุณสามารถใช้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.