Analytics Google API Error 403: “Pengguna tidak memiliki Akun Google Analytics apa pun”


146

Saya membuat skrip, berdasarkan panduan langkah demi langkah Google Analytics dari halaman ini:

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

Otorisasi dilakukan tanpa masalah, sampai mencoba mengakses data. Kode kembali adalah 403, dan pesan kesalahan adalah:

Pengguna tidak memiliki akun Google Analytics apa pun

Pesan ini tidak masuk akal: akun saya memiliki data analitik google, melacak beberapa situs web, dan saya dapat mengaksesnya dari browser web tanpa masalah. Saya telah mengizinkan API Analytics melalui konsol Google API, dan akses API memberi saya data yang benar.

Jawaban:


302

Saya punya masalah ini juga. Saya memperbaikinya dengan menambahkan alamat email untuk akun layanan saya ke profil Google Analytics yang saya inginkan untuk diakses.

Saya mendapat alamat email (seperti xxxxxx@developer.gserviceaccount.com) untuk akun layanan dengan mencari di bawah tab "Akses API" di konsol Google API.

Kemudian, saya mengikuti instruksi Google untuk menambahkan alamat email ke profil Analytics . Sekarang semuanya berjalan seperti yang diharapkan.

Semoga berhasil!


8
Ini adalah jawaban terbaik, saya mencobanya dan itu bekerja seperti pesona !! Terima kasih banyak @Sebastian!
mongotop

1
jika Anda memiliki lebih dari satu profil di akun Anda dan Anda ingin mengakses data mereka menggunakan GA API jika Anda terus menambahkan xxxxx@developer.gserviceaccount.com ke profil Analytics, atau ada cara yang lebih efisien tanpa melibatkan cara manual. Terima kasih!
mongotop

2
@ Longotop, terima kasih! Sayangnya saya tidak tahu cara yang lebih efisien untuk melakukan ini - beri tahu kami di komentar jika Anda menemukannya.
SM

1
Jika Anda menambahkan pengguna di tingkat Properti pastikan untuk menambahkannya ke tampilan yang tepat, karena UI Analytics terkadang menyesatkan
tacone

1
Kau seorang legenda, aku menghabiskan sepanjang hari mencoba mengatur ini.
dspacejs

80

Cukup tambahkan Anda diberi email (format 71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com)

untuk Manajer Pengguna:

Pengguna tidak memiliki akun Google Analytics apa pun

Semoga ini bisa membantu Anda


2
Sayangnya kesalahan itu tidak hilang. Pesan Tetap: GAPI: Gagal meminta data akun. Kesalahan: "{" error ": {" error ": [{" domain ":" global "," reason ":" insufficientPermissions "," message ":" Pengguna tidak memiliki akun Google Analytics apa pun. "}]," kode ": 403," message ":" Pengguna tidak memiliki akun Google Analytics. "}}"
JosFabre

1
@Lev lebih dari 3 tahun jawaban ini masih valid. Saya hanya berharap Google memperbaikinya, tetapi tidak. Itu dilakukan dengan sempurna: D
itsnikolay

28

Saya menghadapi masalah yang sama. Itu diselesaikan dengan menambahkan id email dari pengguna akun layanan ( your account@yourwebsite-dev.iam.gserviceaccount.com), ke pengguna di akun Analytics Anda yang berada di bawah

Halaman Beranda Analytics -> Admin (panel kiri) -> Manajemen Pengguna -> tambah (klik tanda plus di sebelah kanan menu) -> Tambahkan Pengguna baru -> Tambahkan id email di masukkan alamat email.

masukkan deskripsi gambar di sini

Sekarang, ini akan menyelesaikan masalah.


1
Mengapa jawaban ini tidak diterima? Saya menghabiskan 2 hari mencoba mencari tahu mengapa mengikuti tutorial ini mengarahkan saya ke kesalahan ini.
Ragnar

8

Itu disebutkan dalam komentar di atas tetapi jika Anda menambahkan alamat email di bawah Manajemen Pengguna untuk akun Anda , itu tidak akan berfungsi. Anda harus mengklik Manajemen Pengguna di bawah bagian tampilan layar.

masukkan deskripsi gambar di sini


Saya tahu bertahun-tahun telah berlalu, tetapi sekarang saya menambahkan alamat ke akun , dan sepertinya berfungsi dengan baik.
Peter

saya tidak dapat melihat User Managementtautan di bawah Tampilan di ujung saya
aldrien.h

4

Anda juga akan mendapatkan kesalahan ini jika Anda belum pernah masuk dengan akun google yang Anda coba otentikasi.


6
Saya hanya akan meninggalkan ini di sini: Tautan ke antarmuka web Google Analytics
naXa

Dan di mana kata sandi untuk email? Saya mencoba kata sandi yang ditunjukkan google kepada saya sebelum mengunduh sertifikat .p12 tetapi tidak valid
ymakux

2

Saya mendapatkan kesalahan 403 sampai saya mengubah izin akun email dari dalam Google Analytics dari 'Baca & Analisis' ke yang lain, simpan, lalu ubah kembali izin menjadi 'Baca & Analisis' dan itu berhasil.


Ini membantu. Saya membuat "Akun Layanan" baru di bawah API & Auth / Kredensial; dan menyimpan pasangan kunci .p12. Saya kemudian pergi ke konsol manajemen pengguna Analytics, dan menambahkan alamat email Pengguna Layanan. Otorisasi .p12 menggunakan API PHP berfungsi, tetapi hanya jika saya mencentang "Baca & Analisis" hanya dalam daftar izin.
Johnny O

2

Untuk berjaga-jaga jika itu tidak berhasil, Cobalah untuk membuka file JSON Anda yang telah Anda unduh dan Cari client_emaildan salin alamat email itu dan tambahkan ke File Tampilan

Klik

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.

Jika itu masih tidak berhasil

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

1

Saya memukul kesalahan 403. Langkah-langkah ini membuat saya mengelilinginya. Untuk lebih jelasnya, saya mencoba untuk mendapatkan sampel Google "HelloAnalytics.php" yang bekerja dengan OAuth (tidak ada interaksi pengguna, cocok untuk pekerjaan cron dll).

Setelah mengaktifkan API Analytics, saya membuat "Akun Layanan" baru di bawah API & Auth / Kredensial; dan menyimpan pasangan kunci .p12. Saya kemudian pergi ke konsol manajemen pengguna Analytics, dan menambahkan alamat email Pengguna Layanan itu.

Otorisasi .p12 menggunakan API PHP berfungsi jika saya mencentang hanya "Baca & Analisis" hanya dalam daftar izin. Jika saya menambahkan "Kelola Pengguna" dan / atau "Edit", saya mendapatkan 403. Semoga ini bisa membantu, saya sedang mengerjakan ini selama beberapa jam ...


0

Saya memiliki masalah ini juga, dan saya menemukan bahwa masalahnya adalah saya telah meminta terlalu banyak izin. Konsol Pengembang mengatakan untuk meminta keduanya http://www.googleapis.com/auth/analytics dan http://www.googleapis.com/auth/analytics.readonly izin. Ini tidak berfungsi ketika saya juga menggunakan subklaim. Sebuah subklaim menginstruksikan Google untuk mengeluarkan token akses yang beroperasi atas nama pengguna lain - dalam kasus saya akun Google yang memiliki account layanan. Saya menghapus analyticsizin dan terjebak dengan analytics.readonlysub klaim:

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

Token Bearer yang dikeluarkan memungkinkan saya untuk membuat (setidaknya beberapa) pertanyaan Google Analytics ke profil yang dimiliki oleh akun Google yang sama sekali berbeda, tetapi yang telah dibagikan (hanya baca) dengan pengguna gmail saya (me.example@gmail.com) .


1
Apa itu sub ketika saya menggunakan SDK klien Google Analytics?
Dejell

Saya berharap ini berhasil! Saya mendapatkan kesalahan berikut ketika saya mencoba melakukan hal yang sama: Google_Auth_Exception [401]: Kesalahan menyegarkan token OAuth2, pesan: '{"error": "unauthorized_client", "error_description": "klien tidak sah atau ruang lingkup yang diminta." } '
SEoF

Saya sarankan Anda terus melakukannya. Kami masih menggunakan ini untuk mengambil data waktu nyata dari GA setiap beberapa menit, semua menggunakan bash, tidak kurang!
mogsie

0

Saya berhasil memperbaikinya dengan memastikan bahwa

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

variabel nama aplikasi 'X di atas adalah nama ACCOUNT pada dasbor GA, bukan nama PROPERTI, yang dalam kasus saya adalah url sebenarnya dari situs yang ingin saya akses.

Membingungkan, tetapi untungnya diperbaiki (tanpa terima kasih ke Google!)


Saya mencoba menemukan ini 'X'. Bisakah Anda memposting tangkapan layar?
Dejell

0

Masalahnya terjadi karena kami tidak memberikan argumen "sub". Kecuali kami memberikan ini, panggilan terjadi atas nama email akun layanan panjang itu.

Jadi cukup berikan sub argumen, dengan email yang sudah Anda berikan akses dalam laporan dan semuanya akan berfungsi dengan baik!


0

Saya mendapat kesalahan yang sama, karena saya tidak masuk ke google analytics. Jadi saya telah menyelesaikannya dengan masuk ke akun analytics.


0

Pesan ini kami dapatkan ketika tidak ada izin yang diberikan client_email, di google alalytics , client_emailyang Anda dapatkan dari file JSON . untuk memberikan izin kepada client_emailAnda menggunakan di Aplikasi Anda, Kepala ke situs Google Analytics dan klik "Admin (ikon pengaturan)"

masukkan deskripsi gambar di sini

Anda akan mendapatkan daftar menu dengan benar, di sana klik "Lihat Manajemen Pengguna"

masukkan deskripsi gambar di sini

Di sana Anda akan melihat ikon "+", dan "tambahkan pengguna",

masukkan deskripsi gambar di sini

setelah Anda mengkliknya, Anda perlu menambahkan client_email"bidang alamat email" dan menyimpannya, Anda harus siap!

masukkan deskripsi gambar di sini


-1

Pengguna yang Anda coba gunakan untuk API, belum mengaktifkan layanan GA-nya.
Memiliki akun google saja tidak cukup .

... Namun, memiliki akun Google saja tidak secara otomatis memberi Anda akses ke Analytics. Pertama, Anda harus mendaftar untuk Google Analytics, satu kali, proses sederhana ...


-1

Alih-alih menggunakan akun layanan, Anda dapat mengesampingkan kebutuhan untuk menambahkan menambahkan izin pengguna baru (sesuai jawaban teratas di utas ini) dengan menggunakan OAuth client IDkredensial.

Buka dasbor kredensial API dan klik "Buat kredensial" -> "ID klien OAuth". Setelah itu Anda harus mendapatkan ID klien dan rahasia klien yang harus Anda otentikasi API.

Sekarang Anda dapat menggunakan OAuth2WebServerFlowuntuk mengautentikasi berdasarkan penggunaan. Berikut adalah contoh 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()
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.