Saluran Alfa dan Beta API akan terus didukung. Saluran beta berisi subset fitur yang tersedia di Alfa yang dianggap stabil dan tidak diperkirakan akan mengalami perubahan signifikan di masa mendatang. Fitur baru akan ditambahkan ke Beta setelah matang.
Dokumen ini memberikan petunjuk tentang cara memigrasikan kode yang ada dari Google Analytics Management API v3 ke Google Analytics Admin API v1 dan memberikan ringkasan singkat tentang perbedaan utama antara kedua API tersebut.
Mengapa saya perlu melakukan migrasi?
Jika aplikasi Anda perlu membuat atau mengonfigurasi properti Google Analytics 4, aplikasi tersebut harus menggunakan Admin API v1. Management API v3 hanya berfungsi dengan properti Universal Analytics, dan Admin API v1 hanya berfungsi dengan properti Google Analytics 4.
Prasyarat
Anda harus memahami dasar-dasar Admin API v1 dengan membaca panduan memulai cepat.
Mulai
Untuk memulai, siapkan properti Google Analytics 4, aktifkan Admin API v1, lalu siapkan library klien API yang sesuai untuk platform Anda.
Menyiapkan properti Google Analytics 4
Sebelum memigrasikan kode untuk mendukung Admin API v1, Anda harus memigrasikan situs untuk menggunakan properti Google Analytics 4.
Mengaktifkan API
Klik tombol ini untuk otomatis mengaktifkan Admin API v1 di Project Google Cloud yang Anda pilih.
Mengaktifkan Google Analytics Admin APIMenggunakan library klien
Menginstal library klien
Jika menggunakan library klien, Anda harus menginstal library klien Admin API v1 untuk bahasa pemrograman Anda.
Java
Python
Node.js
.NET
PHP
Go
go get google.golang.org/genproto/googleapis/analytics/admin/v1beta
Melakukan inisialisasi pada library klien
Library klien Admin API v1 didesain untuk membuat Anda memulai dengan cepat. Secara default, library klien akan otomatis mencoba menemukan kredensial akun layanan Anda.
Cara mudah untuk memberikan kredensial akun layanan adalah dengan menetapkan
variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS
, klien API akan menggunakan
nilai variabel ini untuk menemukan file JSON kunci akun layanan.
Misalnya, Anda dapat menetapkan kredensial akun layanan dengan menjalankan perintah berikut dan menggunakan jalur ke file JSON akun layanan:
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
Di bawah ini terdapat cuplikan kode yang biasa digunakan untuk melakukan inisialisasi pada library klien Admin API v1.
Java
try (AnalyticsAdminServiceClient analyticsAdmin = AnalyticsAdminServiceClient.create()) {
Python
client = BetaAnalyticsAdminClient()
.NET
BetaAnalyticsAdminClient client = BetaAnalyticsAdminClient.Create();
PHP
$client = new AlphaAnalyticsAdminClient();
Node.js
// Imports the Google Analytics Admin API client library. const analyticsAdmin = require('@google-analytics/admin'); // Using a default constructor instructs the client to use the credentials // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable. const analyticsAdminClient = new analyticsAdmin.AnalyticsAdminServiceClient();
Sebagai ganti menggunakan variabel lingkungan, Anda juga dapat meneruskan informasi kredensial ke instance klien API secara eksplisit selama inisialisasi.
Jika Anda tidak menggunakan library klien
Jika Anda menggunakan Management API v3 tanpa library klien dan ingin terus melakukannya dengan Admin API v1, Anda masih dapat menggunakan kredensial Anda.
Anda harus menggunakan endpoint HTTP baru dan dokumen penemuan yang disediakan oleh Admin API:
Jika kode Anda memanfaatkan Dokumen penemuan, Anda harus memperbaruinya ke dokumen penemuan yang disediakan oleh Admin API v1:
Setelah memperbarui endpoint, Anda perlu memahami struktur dan konsep permintaan baru Admin API untuk memperbarui kueri JSON Anda.
Tugas umum
Mengelola akun
Admin API v1 menyediakan kumpulan akun Google Analytics dan metode pengelolaan properti yang sebanding dengan Management API v3. Selain itu, Admin API v1 memperkenalkan fungsi untuk menyediakan, menghapus, memperbarui akun Google Analytics.
Hanya properti Google Analytics 4 yang didukung oleh metode pengelolaan properti Admin API v1.
Konsep tampilan (profil) tidak ada di Admin API v1.
Karena aliran data diperkenalkan di Google Analytics 4, informasi tertentu tidak ada lagi di tingkat properti. Misalnya, kolom
websiteUrl
kini ada di entitasDataStream
, bukan menjadi bagian dari objek properti.
Mencantumkan ringkasan akun
Metode accountSummaries
Admin API
menampilkan ringkasan singkat dari semua akun yang dapat diakses oleh pemanggil, mirip dengan
metode accountSummaries
Management API v3.
Perbedaan yang penting adalah Admin API v1 hanya menampilkan informasi tentang properti Google Analytics 4, sedangkan respons Management API v3 berisi data properti yang dibuat dengan Universal Analytics. Informasi tentang kedua jenis properti tidak dapat diambil menggunakan satu panggilan.
Karena tidak ada tampilan (profil) di Google Analytics 4, ringkasan akun yang ditampilkan oleh Admin API tidak berisi informasi tampilan (profil).
Data ringkasan akun Google Analytics 4 dibatasi pada resource dan nama tampilan akun/properti yang tersedia untuk pengguna saat ini.
Gunakan nama resource yang ditampilkan di kolom account
, property
dari respons ringkasan untuk mengambil data konfigurasi lengkap dengan memanggil metode account.get
dan property.get
.
Permintaan Admin API v1
GET https://analyticsadmin.googleapis.com/v1beta/accountSummaries?key=[YOUR_API_KEY]
Respons Admin API v1
{
"accountSummaries": [
{
"name": "accountSummaries/XXXXXX",
"account": "accounts/XXXXXX",
"displayName": "Test",
"propertySummaries": [
{
"property": "properties/XXXXXX",
"displayName": "Test App"
}
]
},
...
}
Permintaan Management API v3
GET https://analytics.googleapis.com/analytics/v3/management/accountSummaries?key=[YOUR_API_KEY]
Respons Management API v3
{
"kind": "analytics#accountSummaries",
"username": "XXXXXX",
"totalResults": 9,
"startIndex": 1,
"itemsPerPage": 1000,
"items": [
{
"id": "XXXXXX",
"kind": "analytics#accountSummary",
"name": "Test Account",
"webProperties": [
{
"kind": "analytics#webPropertySummary",
"id": "UA-XXXXXX",
"name": "Test Property",
"internalWebPropertyId": "XXXXXX",
"level": "STANDARD",
"websiteUrl": "XXXXXX",
"profiles": [
{
"kind": "analytics#profileSummary",
"id": "XXXXXX",
"name": "Test Profile",
"type": "WEB"
}
]
},
...
}
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient def list_account_summaries(transport: str = None) -> None: """ Prints summaries of all accounts accessible by the caller. Args: transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) results = client.list_account_summaries() print("Result:") for account_summary in results: print("-- Account --") print(f"Resource name: {account_summary.name}") print(f"Account name: {account_summary.account}") print(f"Display name: {account_summary.display_name}") print() for property_summary in account_summary.property_summaries: print("-- Property --") print(f"Property resource name: {property_summary.property}") print(f"Property display name: {property_summary.display_name}") print()
Mencantumkan akun
Metode accounts.list
Admin API v1
menampilkan semua akun yang dapat diakses oleh pemanggil, mirip dengan
metode accounts.list
Management API v3.
Permintaan Admin API v1
GET https://analyticsadmin.googleapis.com/v1beta/accounts?key=[YOUR_API_KEY]
Respons Admin API v1
{
"accounts": [
{
"name": "accounts/XXXXXX",
"createTime": "2020-02-21T00:17:33.282Z",
"updateTime": "2021-01-07T02:47:57.386Z",
"displayName": "Test Account",
"regionCode": "US"
},
...
}
Permintaan Management API v3
GET https://analytics.googleapis.com/analytics/v3/management/accounts?key=[YOUR_API_KEY]
Respons Management API v3
{
"kind": "analytics#accounts",
"username": "XXXXXX",
"totalResults": 9,
"startIndex": 1,
"itemsPerPage": 1000,
"items": [
{
"id": "XXXXXX",
"kind": "analytics#account",
"selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX",
"name": "Test Account",
"permissions": {
"effective": [
"COLLABORATE",
"EDIT",
"READ_AND_ANALYZE"
]
},
"created": "2020-02-21T00:17:33.282Z",
"updated": "2021-01-07T02:47:57.386Z",
"childLink": {
"type": "analytics#webproperties",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties"
}
},
...
}
Perhatikan bahwa respons Admin API v1 tidak menyertakan informasi tentang izin pengguna
yang efektif, atau kolom childLink
yang ada di
Management API v3.
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient from accounts_get import print_account def list_accounts(transport: str = None): """ Lists the Google Analytics accounts available to the current user. Args: transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) results = client.list_accounts() print("Result:") for account in results: print_account(account)
Mengelola properti
Mencantumkan properti
Metode properties.list
Admin API v1
menampilkan semua properti Google Analytics 4 yang dapat diakses oleh pemanggil, mirip dengan
metode webproperties.list
Management API v3 yang menampilkan semua properti Universal Analytics yang dapat diakses.
Karena kolom websiteUrl
tidak lagi ada di tingkat properti di
Google Analytics 4, gunakan
properties.dataStreams/list
untuk mencantumkan semua aliran data yang terkait dengan properti dan cari kolom
defaultUri
untuk mengambil URL situs yang terkait dengan aliran data.
Perhatikan parameter filter
di URL permintaan properties.list
. Nilai parameter ini berisi ekspresi untuk memfilter hasil permintaan dan dapat digunakan untuk mencantumkan properti yang terkait dengan ID akun Google Analytics tertentu, atau dengan project Firebase tertaut.
Permintaan Admin API v1
GET https://analyticsadmin.googleapis.com/v1beta/properties?filter=parent:accounts/XXXXXX&key=[YOUR_API_KEY]
Respons Admin API v1
{
"properties": [
{
"name": "properties/XXXXXX",
"parent": "accounts/XXXXXX",
"createTime": "2020-10-29T04:02:49.124Z",
"updateTime": "2020-10-29T04:02:49.124Z",
"displayName": "Test Property",
"timeZone": "America/Los_Angeles",
"currencyCode": "USD"
},
...
}
Permintaan Management API v3
GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties?key=[YOUR_API_KEY]
Respons Management API v3
{
"kind": "analytics#webproperties",
"username": "XXXXXX",
"totalResults": 33,
"startIndex": 1,
"itemsPerPage": 1000,
"items": [
{
"id": "UA-XXXXXX-1",
"kind": "analytics#webproperty",
"selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1",
"accountId": "XXXXXX",
"internalWebPropertyId": "XXXXXX",
"name": "Test Account",
"websiteUrl": "XXXXXX",
"level": "PREMIUM",
"profileCount": 4,
"industryVertical": "HEALTH",
"defaultProfileId": "XXXXXX",
"dataRetentionTtl": "INDEFINITE",
"dataRetentionResetOnNewActivity": true,
"permissions": {
"effective": [
"COLLABORATE",
"EDIT",
"READ_AND_ANALYZE"
]
},
"created": "2020-02-21T00:28:47.287Z",
"updated": "2021-01-27T21:39:22.704Z",
"parentLink": {
"type": "analytics#account",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX"
},
"childLink": {
"type": "analytics#profiles",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1/profiles"
}
},
...
}
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient from google.analytics.admin_v1alpha.types import ListPropertiesRequest def run_sample(): """Runs the sample.""" # TODO(developer): Replace this variable with your Google Analytics # account ID (e.g. "123456") before running the sample. account_id = "YOUR-GA-ACCOUNT-ID" list_properties(account_id) def list_properties(account_id: str, transport: str = None): """ Lists Google Analytics 4 properties under the specified parent account that are available to the current user. Args: account_id(str): The Google Analytics account ID. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) results = client.list_properties( ListPropertiesRequest(filter=f"parent:accounts/{account_id}", show_deleted=True) ) print("Result:") for property_ in results: print(property_) print()
Mendapatkan properti
Metode properties.get
Admin API v1
menampilkan informasi tentang properti Google Analytics 4, mirip dengan
metode webproperties.get
Management API v3.
Perhatikan bahwa metode properties.get
Admin API hanya mendukung properti
Google Analytics 4.
Permintaan Admin API v1
GET https://analyticsadmin.googleapis.com/v1beta/properties/XXXXXX?key=[YOUR_API_KEY]
Respons Admin API v1
{
"name": "properties/XXXXXX",
"parent": "accounts/XXXXXX",
"createTime": "2021-04-30T21:32:49.804Z",
"updateTime": "2021-04-30T21:32:49.804Z",
"displayName": "Test Property",
"industryCategory": "FINANCE",
"timeZone": "America/Los_Angeles",
"currencyCode": "USD"
}
Permintaan Management API v3
GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3?key=[YOUR_API_KEY]
Respons Management API v3
{
"id": "UA-XXXXXX-3",
"kind": "analytics#webproperty",
"selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3",
"accountId": "XXXXXX",
"internalWebPropertyId": "XXXXXX",
"name": "Test 2",
"websiteUrl": "YOUR-WEBSITE-URL",
"level": "STANDARD",
"profileCount": 0,
"industryVertical": "FINANCE",
"dataRetentionTtl": "MONTHS_26",
"dataRetentionResetOnNewActivity": true,
"permissions": {
"effective": [
"COLLABORATE",
"EDIT",
"MANAGE_USERS",
"READ_AND_ANALYZE"
]
},
"created": "2021-05-20T05:35:51.985Z",
"updated": "2021-05-20T05:41:39.219Z",
"parentLink": {
"type": "analytics#account",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX"
},
"childLink": {
"type": "analytics#profiles",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3/profiles"
}
}
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient from google.analytics.admin_v1alpha.types import IndustryCategory def run_sample(): """Runs the sample.""" # TODO(developer): Replace this variable with your Google Analytics 4 # property ID (e.g. "123456") before running the sample. property_id = "YOUR-GA4-PROPERTY-ID" get_property(property_id) def get_property(property_id: str, transport: str = None): """ Retrieves the Google Analytics 4 property details. Args: property_id(str): The Google Analytics Property ID. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) property_ = client.get_property(name=f"properties/{property_id}") print("Result:") print_property(property_) def print_property(property): """Prints the Google Analytics 4 property details.""" print(f"Resource name: {property.name}") print(f"Parent: {property.parent}") print(f"Display name: {property.display_name}") print(f"Create time: {property.create_time}") print(f"Update time: {property.update_time}") # print(f"Delete time: {property.delete_time}") # print(f"Expire time: {property.expire_time}") if property.industry_category: print(f"Industry category: {IndustryCategory(property.industry_category).name}") print(f"Time zone: {property.time_zone}") print(f"Currency code: {property.currency_code}")
Buat properti
Metode properties.create
Admin API v1
membuat properti Google Analytics 4 baru, mirip dengan
metode webproperties.insert
Management API v3.
Permintaan Admin API v1
POST https://analyticsadmin.googleapis.com/v1beta/properties?key=[YOUR_API_KEY]
{
"displayName": "Test Property",
"industryCategory": "AUTOMOTIVE",
"currencyCode": "USD",
"timeZone": "America/Los_Angeles",
"parent": "accounts/XXXXXX"
}
Respons Admin API v1
{
"name": "properties/XXXXXX",
"parent": "accounts/XXXXXX",
"createTime": "2021-05-20T09:16:08.458Z",
"updateTime": "2021-05-20T09:16:08.458Z",
"displayName": "Test Property",
"industryCategory": "AUTOMOTIVE",
"timeZone": "America/Los_Angeles",
"currencyCode": "USD"
}
Permintaan Management API v3
POST https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties?key=[YOUR_API_KEY]
{
"name": "Test",
"websiteUrl": "YOUR-WEBSITE-URL"
}
Respons Management API v3
{
"id": "UA-XXXXXX-3",
"kind": "analytics#webproperty",
"selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3",
"accountId": "XXXXXX",
"internalWebPropertyId": "XXXXXX",
"name": "Test",
"websiteUrl": "YOUR-WEBSITE-URL",
"level": "STANDARD",
"profileCount": 0,
"dataRetentionTtl": "MONTHS_26",
"dataRetentionResetOnNewActivity": true,
"permissions": {
"effective": [
"COLLABORATE",
"EDIT",
"MANAGE_USERS",
"READ_AND_ANALYZE"
]
},
"created": "2021-05-20T05:35:51.985Z",
"updated": "2021-05-20T05:35:51.985Z",
"parentLink": {
"type": "analytics#account",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX"
},
"childLink": {
"type": "analytics#profiles",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3/profiles"
}
}
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient from google.analytics.admin_v1alpha.types import Property def run_sample(): """Runs the sample.""" # !!! ATTENTION !!! # Running this sample may change/delete your Google Analytics account # configuration. Make sure to not use the Google Analytics account ID from # your production environment below. # TODO(developer): Replace this variable with your Google Analytics # account ID (e.g. "123456") before running the sample. account_id = "YOUR-GA-ACCOUNT-ID" create_property(account_id) def create_property(account_id: str, transport: str = None): """ Creates a Google Analytics 4 property. Args: account_id(str): The Google Analytics Account ID. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) property_ = client.create_property( property=Property( parent=f"accounts/{account_id}", currency_code="USD", display_name="Test property", industry_category="OTHER", time_zone="America/Los_Angeles", ) ) print("Result:") print(property_)
Memperbarui/mem-patch properti
Metode properties.patch
Admin API v1
memperbarui konfigurasi properti Google Analytics 4, mirip dengan
metode webproperties.patch
Management API v3.
Perhatikan parameter updateMask
di URL permintaan, yang berisi daftar kolom yang dipisahkan koma
yang akan diperbarui. Kolom yang tidak ada dalam daftar ini tidak akan diperbarui. Jika
menggunakan library klien, parameter update_mask
akan tersedia sebagai bagian dari
tanda tangan metode.
Permintaan Admin API v1
PATCH https://analyticsadmin.googleapis.com/v1beta/properties/XXXXXX?updateMask=displayName,industryCategory&key=[YOUR_API_KEY]
{
"displayName": "New Property Name",
"industryCategory": "FINANCE"
}
Respons Admin API v1
{
"name": "properties/XXXXXX",
"parent": "accounts/XXXXXX",
"createTime": "2021-04-30T21:32:49.804Z",
"updateTime": "2021-05-20T09:25:14.810Z",
"displayName": "New Property Name",
"industryCategory": "FINANCE",
"timeZone": "America/Los_Angeles",
"currencyCode": "USD"
}
Permintaan Management API v3
PATCH https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3?key=[YOUR_API_KEY]
{
"name": "New Property Name",
"industryVertical": "FINANCE"
}
Respons Management API v3
{
"id": "UA-XXXXXX-3",
"kind": "analytics#webproperty",
"selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3",
"accountId": "XXXXXX",
"internalWebPropertyId": "XXXXXX",
"name": "New Property Name",
"websiteUrl": "XXXXXX",
"level": "STANDARD",
"profileCount": 0,
"industryVertical": "FINANCE",
"dataRetentionTtl": "MONTHS_26",
"dataRetentionResetOnNewActivity": true,
"permissions": {
"effective": [
"COLLABORATE",
"EDIT",
"MANAGE_USERS",
"READ_AND_ANALYZE"
]
},
"created": "2021-05-20T05:35:51.985Z",
"updated": "2021-05-20T05:41:39.219Z",
"parentLink": {
"type": "analytics#account",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX"
},
"childLink": {
"type": "analytics#profiles",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3/profiles"
}
}
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient from google.analytics.admin_v1alpha.types import Property from google.protobuf.field_mask_pb2 import FieldMask def run_sample(): """Runs the sample.""" # !!! ATTENTION !!! # Running this sample may change/delete your Google Analytics account # configuration. Make sure to not use the Google Analytics property ID from # your production environment below. # TODO(developer): Replace this variable with your Google Analytics 4 # property ID (e.g. "123456") before running the sample. property_id = "YOUR-GA4-PROPERTY-ID" update_property(property_id) def update_property(property_id: str, transport: str = None): """ Updates the Google Analytics 4 property. Args: property_id(str): The Google Analytics Property ID. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) # This call updates the display name, industry category and time zone of the # property, as indicated by the value of the `update_mask` field. # The property to update is specified in the `name` field of the `Property` # instance. property_ = client.update_property( property=Property( name=f"properties/{property_id}", display_name="This is an updated test property", industry_category="GAMES", time_zone="America/New_York", ), update_mask=FieldMask(paths=["display_name", "time_zone", "industry_category"]), ) print("Result:") print(property_)
Kelola pengguna
Google Analytics Admin API saat ini menerapkan model izin pengguna yang mirip dengan Management API v3, tetapi dengan beberapa perbedaan.
- Anda mengelola izin pengguna dengan Google Analytics Admin API menggunakan resource
akun
AccessBinding
dan propertiAccessBinding
, bukan resourceAccountUserLink
,WebPropertyUserLink
, danProfileUserLink
di Management API v3. - Binding akses properti di Google Analytics Admin API tidak menyertakan izin tersirat atau izin yang diwarisi dari binding akses akun. Di Management API v3, setiap link pengguna berisi koleksi
permissions.effective
yang mencakup izin tersirat dan yang diwarisi.
Entity AccessBinding
berisi pengguna (alamat email) dan daftar peran
yang diberikan kepada pengguna. Entity AccessBinding
dapat dibuat, diperbarui, atau
dihapus.
Pemetaan antara nama peran Admin API v1 dan nama izin Management API v3 adalah sebagai berikut:
Peran Admin API v1 | Nama izin Management API v3 |
---|---|
peran bawaan/penonton | READ_AND_ANALYZE |
peran/analis yang telah ditentukan | COLLABORATE |
peran/editor bawaan | EDIT |
peran bawaan/admin | MANAGE_USERS |
Peran predefinedRoles/no-cost-data
, predefinedRoles/no-revenue-data
diperkenalkan di Admin API v1 dan tidak memiliki pemetaan yang sesuai di Management API v3.
Panduan ini menunjukkan cara mengelola binding akses tingkat akun. Untuk mengelola
binding akses tingkat properti, ikuti proses yang sama, tetapi gunakan resource
properti
AccessBinding
dan
metode sebagai pengganti akun
AccessBinding
.
Mencantumkan binding akses akun
Metode accounts.accessBindings.list
Admin API v1
mencantumkan semua binding akses pada akun, mirip dengan
metode accountUserLinks.list
Management API v3.
Permintaan Admin API v1
GET https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings/XXXXXXXX
Respons Admin API v1
{
"accessBindings": [
{
"name": "accounts/XXXXXX/accessBindings/XXXXXX",
"user": "XXXXXX",
"roles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
]
}
]
}
Permintaan Management API v3
GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks?key=[YOUR_API_KEY]
Respons Management API v3
{
"kind": "analytics#entityUserLinks",
"totalResults": 1,
"startIndex": 1,
"itemsPerPage": 1000,
"items": [
{
"id": "XXXXXX:XXXXXX",
"kind": "analytics#entityUserLink",
"selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks/XXXXXX:XXXXXX",
"entity": {
"accountRef": {
"id": "XXXXXX",
"kind": "analytics#accountRef",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX",
"name": "This is a test account"
}
},
"userRef": {
"kind": "analytics#userRef",
"id": "XXXXXX",
"email": "XXXXXX"
},
"permissions": {
"effective": [
"COLLABORATE",
"EDIT",
"MANAGE_USERS",
"READ_AND_ANALYZE"
],
"local": [
"EDIT",
"MANAGE_USERS"
]
}
}
]
}
Kode contoh untuk memanggil Admin API menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient def run_sample(): """Runs the sample.""" # TODO(developer): Replace this variable with your Google Analytics # account ID (e.g. "123456") before running the sample. account_id = "YOUR-GA-ACCOUNT-ID" list_account_access_bindings(account_id) def list_account_access_bindings(account_id: str, transport: str = None): """ Lists access bindings under the specified parent account. Args: account_id(str): The id of the account. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) results = client.list_access_bindings(parent=f"accounts/{account_id}") print("Result:") for access_binding in results: print(access_binding) print()
Memperbarui binding akses akun
Metode accounts.accessBindings.patch
Admin API v1
memperbarui binding akses akun, mirip dengan
metode accountUserLinks.update
Management API v3.
Permintaan Admin API v1
PATCH https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings/XXXXXXXX
{
"roles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
]
}
Respons Admin API v1
{
"name": "accounts/XXXXXX/accessBindings/XXXXXXXX",
"user": "USER-EMAIL",
"directRoles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
]
}
Permintaan Management API v3
PUT https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks/XXXXXX%3A104236685715552897132?key=[YOUR_API_KEY]
{
"entity": {
"accountRef": {
"id": "XXXXXX"
}
},
"userRef": {
"email": "XXXXXX"
},
"permissions": {
"local": [
"EDIT",
"MANAGE_USERS"
]
}
}
Respons Management API v3
{
"id": "XXXXXX:104236685715552897132",
"kind": "analytics#entityUserLink",
"selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks/XXXXXX:104236685715552897132",
"entity": {
"accountRef": {
"id": "XXXXXX",
"kind": "analytics#accountRef",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX",
"name": "This is a test account"
}
},
"userRef": {
"kind": "analytics#userRef",
"id": "104236685715552897132",
"email": "XXXXXX"
},
"permissions": {
"effective": [
"COLLABORATE",
"EDIT",
"MANAGE_USERS",
"READ_AND_ANALYZE"
],
"local": [
"EDIT",
"MANAGE_USERS"
]
}
}
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient from google.analytics.admin_v1alpha.types import AccessBinding def run_sample(): """Runs the sample.""" # !!! ATTENTION !!! # Running this sample may change/delete your Google Analytics account # configuration. Make sure to not use the Google Analytics property ID from # your production environment below. # TODO(developer): Replace this variable with your Google Analytics # account ID (e.g. "123456") before running the sample. account_id = "YOUR-GA-ACCOUNT-ID" # TODO(developer): Replace this variable with your Google Analytics # account access binding ID (e.g. "123456") before running the sample. account_access_binding_id = "YOUR-ACCOUNT-ACCESS-BINDING-ID" update_account_access_binding(account_id, account_access_binding_id) def update_account_access_binding( account_id: str, account_access_binding_id: str, transport: str = None ): """ Updates the account access binding. Args: account_id(str): The Google Analytics Account ID. account_access_binding_id(str): Google Analytics account access binding ID. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) # This call updates the roles of the access binding. The access binding to # update is specified in the `name` field of the `AccessBinding` instance. access_binding = client.update_access_binding( access_binding=AccessBinding( name=f"accounts/{account_id}/accessBindings/{account_access_binding_id}", roles=["predefinedRoles/collaborate"], ), ) print("Result:") print(access_binding)
Membuat binding akses akun
Metode accounts.accessBindings.create
Admin API v1
membuat binding akses di akun, mirip dengan
metode accountUserLinks.insert
Management API v3.
Permintaan Admin API v1
POST https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings
{
"roles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
],
"user": "USER-EMAIL"
}
Respons Admin API v1
{
"name": "accounts/XXXXXX/accessBindings/XXXXXXXX",
"user": "USER-EMAIL",
"roles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
]
}
Permintaan Management API v3
POST https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks?key=[YOUR_API_KEY]
{
"entity": {
"accountRef": {
"id": "XXXXXX"
}
},
"userRef": {
"email": "XXXXXX"
},
"permissions": {
"local": [
"EDIT",
"MANAGE_USERS"
]
}
}
Respons Management API v3
{
"id": "XXXXXX:114236685715552897132",
"kind": "analytics#entityUserLink",
"selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks/XXXXXX:114236685715552897132",
"entity": {
"accountRef": {
"id": "XXXXXX",
"kind": "analytics#accountRef",
"href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX",
"name": "This is a test account"
}
},
"userRef": {
"kind": "analytics#userRef",
"id": "114236685715552897132",
"email": "XXXXXX"
},
"permissions": {
"effective": [
"COLLABORATE",
"EDIT",
"MANAGE_USERS",
"READ_AND_ANALYZE"
],
"local": [
"EDIT",
"MANAGE_USERS"
]
}
}
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient from google.analytics.admin_v1alpha.types import ( AccessBinding, CreateAccessBindingRequest, ) def run_sample(): """Runs the sample.""" # !!! ATTENTION !!! # Running this sample may change/delete your Google Analytics account # configuration. Make sure to not use the Google Analytics account ID from # your production environment below. # TODO(developer): Replace this variable with your Google Analytics # account ID (e.g. "123456") before running the sample. account_id = "YOUR-GA-ACCOUNT-ID" # TODO(developer): Replace this variable with an email address of the user to # link. This user will be given access to your account after running the # sample. email_address = "TEST-EMAIL-ADDRESS" create_account_access_binding(account_id, email_address) def create_account_access_binding( account_id: str, email_address: str, transport: str = None ): """ Creates a access binding for the account. Args: account_id(str): The Google Analytics Account ID. email_address(str): Email address of the access binding user. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) access_binding = client.create_access_binding( CreateAccessBindingRequest( parent=f"accounts/{account_id}", access_binding=AccessBinding( user=email_address, roles=["predefinedRoles/read"] ), ) ) print("Result:") print(access_binding)
Pengelompokan
Admin API v1 tidak mendukung pengelompokan beberapa panggilan Google Analytics API menggunakan jenis konten multibagian/campuran, tidak seperti Management API v3.
Sebagai gantinya, pengelompokan didukung secara eksplisit pada API level. Metode Admin API v1 berikut mendukung fungsi pengelompokan:
Kode contoh untuk memanggil Admin API v1 menggunakan library klien:
Python
from google.analytics.admin import AnalyticsAdminServiceClient from google.analytics.admin_v1alpha.types import ( AccessBinding, BatchCreateAccessBindingsRequest, CreateAccessBindingRequest, ) def run_sample(): """Runs the sample.""" # !!! ATTENTION !!! # Running this sample may change/delete your Google Analytics account # configuration. Make sure to not use the Google Analytics account ID from # your production environment below. # TODO(developer): Replace this variable with your Google Analytics # account ID (e.g. "123456") before running the sample. account_id = "YOUR-GA-ACCOUNT-ID" # TODO(developer): Replace this variable with an email address of the user to # link. This user will be given access to your account after running the # sample. email_address = "TEST-EMAIL-ADDRESS" batch_create_account_access_binding(account_id, email_address) def batch_create_account_access_binding( account_id: str, email_address: str, transport: str = None ): """ Creates a access binding for the account using a batch call. Args: account_id(str): The Google Analytics Account ID. email_address(str): Email address of the access binding user. transport(str): The transport to use. For example, "grpc" or "rest". If set to None, a transport is chosen automatically. """ client = AnalyticsAdminServiceClient(transport=transport) response = client.batch_create_access_bindings( BatchCreateAccessBindingsRequest( parent=f"accounts/{account_id}", requests=[ CreateAccessBindingRequest( access_binding=AccessBinding( user=email_address, roles=["predefinedRoles/read"], ) ) ], ) ) print("Result:") for access_binding in response.access_bindings: print(access_binding) print()
Perubahan kuota API
Admin API v1 memperkenalkan kuota yang tidak terlalu ketat dibandingkan dengan Management API v3.
- Secara default, jumlah permintaan ke Admin API v1 dibatasi kapasitasnya hingga 600 permintaan per menit untuk project GCP.
- Saat ini, tidak ada kuota batas harian pada jumlah panggilan Admin API v1 per project GCP. Perhatikan bahwa secara teori jumlah maksimum permintaan per hari masih dibatasi oleh kuota permintaan per menit.
- Batas terpisah pada jumlah operasi penulisan per hari telah dihapus.