API'nin Alfa ve Beta kanalları desteklenmeye devam etmektedir. Beta kanalı, alfa sürümünde mevcut olan ve kararlı olarak kabul edilen ve gelecekte önemli bir değişikliğe uğraması beklenmeyen özelliklerin bir alt kümesini içerir. Yeni özellikler olgunlaştıkça Beta'ya eklenecek.
Bu belgede, mevcut kodun Google Analytics Management API v3'ten Google Analytics Admin API v1'e nasıl taşınacağı ile ilgili talimatlar ve iki API arasındaki temel farklara kısa bir genel bakış yer almaktadır.
Neden taşıma yapmam gerekiyor?
Uygulamanızın Google Analytics 4 mülkü oluşturması veya yapılandırması gerekiyorsa Admin API v1'i kullanmalıdır. Management API v3 yalnızca Universal Analytics mülkleriyle, Admin API v1 ise yalnızca Google Analytics 4 mülkleriyle çalışır.
Ön koşullar
Hızlı başlangıç kılavuzunu okuyarak Admin API v1 sürümünün temel özellikleri hakkında bilgi sahibi olmanız gerekir.
Başlayın
Başlamak için bir Google Analytics 4 mülkü hazırlayacak, Admin API v1'i etkinleştirecek ve ardından platformunuza uygun bir API istemci kitaplığı oluşturacaksınız.
Google Analytics 4 mülkü hazırlama
Admin API v1'i desteklemek için kodunuzu taşımadan önce web sitenizi Google Analytics 4 mülkü kullanacak şekilde taşımanız gerekir.
API'yi etkinleştirme
Seçili Google Cloud projenizde Admin API v1'i otomatik olarak etkinleştirmek için bu düğmeyi tıklayın.
Google Analytics Admin API'yi etkinleştirmeİstemci kitaplığı kullanma
İstemci kitaplığı yükleme
İstemci kitaplığı kullanıyorsanız programlama diliniz için Admin API v1 istemci kitaplığını yüklemeniz gerekir.
Java
Python
Node.js
.NET
PHP
Go
go get google.golang.org/genproto/googleapis/analytics/admin/v1alpha
İstemci kitaplığını başlatma
Admin API v1 istemci kitaplıkları, hızlı bir başlangıç yapmanız için tasarlanmıştır. Varsayılan olarak, istemci kitaplıkları hizmet hesabı kimlik bilgilerinizi otomatik olarak bulmaya çalışır.
Hizmet hesabı kimlik bilgilerini sağlamanın kolay bir yolu, GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini ayarlamaktır. API istemcisi, hizmet hesabı anahtarı JSON dosyasını bulmak için bu değişkenin değerini kullanır.
Örneğin, aşağıdaki komutu çalıştırıp hizmet hesabı JSON dosyasının yolunu kullanarak hizmet hesabı kimlik bilgilerini ayarlayabilirsiniz:
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
Aşağıda, Admin API v1 istemci kitaplıklarını başlatmak için yaygın olarak kullanılan kod snippet'leri bulunmaktadır.
Java
try (AnalyticsAdminServiceClient analyticsAdmin = AnalyticsAdminServiceClient.create()) {
Python
client = AlphaAnalyticsAdminClient()
.NET
AlphaAnalyticsAdminClient client = AlphaAnalyticsAdminClient.Create();
PHP
$client = new AlphaAnalyticsAdminClient();
Node.js
// Imports the Google Analytics Data API client library. const {AlphaAnalyticsAdminClient} = 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 AlphaAnalyticsAdminClient();
Bir ortam değişkeni kullanmak yerine, kimlik bilgileri bilgilerini başlatma sırasında açıkça bir API istemci örneğine geçirmek de mümkündür.
İstemci kitaplığı kullanmıyorsanız
Management API v3'ü istemci kitaplığı olmadan kullanıyorsanız ve bunu Admin API v1 ile devam etmek istiyorsanız kimlik bilgilerinizi kullanmaya devam edebilirsiniz.
Admin API tarafından sağlanan yeni HTTP uç noktası ve keşif belgesini kullanmanız gerekir:
Kodunuz bir Keşif belgesinden yararlanıyorsa bu belgeyi, Admin API v1 tarafından sağlanan keşif belgesine güncellemeniz gerekir:
Uç noktayı güncelledikten sonra, JSON sorgunuzu güncellemek için yeni istek yapısı ve Admin API kavramları hakkında bilgi edinmeniz gerekir.
Genel görevler
Hesapları yönet
Admin API v1, Management API v3'e benzer bir dizi Google Analytics hesap ve mülk yönetimi yöntemi sunar. Ayrıca Admin API v1, Google Analytics hesaplarını sağlama, silme ve güncelleme işlevleri sunar.
Admin API v1 mülk yönetimi yöntemleri yalnızca Google Analytics 4 mülklerini destekler.
Admin API v1'de görünüm (profil) kavramı yoktur.
Veri akışları Google Analytics 4'te kullanıma sunulduğundan belirli bilgiler artık mülk düzeyinde mevcut değildir. Örneğin,
websiteUrl
alanı artık mülk nesnesinin bir parçası değil,DataStream
varlığında yer almaktadır.
Hesap özetlerini listeleme
Admin API'nin accountSummaries
yöntemi, Management API v3'ün accountSummaries
yöntemine benzer şekilde, çağrıyı yapan tarafından erişilebilen tüm hesapların basit özetlerini döndürür.
Önemli bir fark, Admin API v1'in yalnızca Google Analytics 4 mülkleri hakkında bilgi döndürmesi, Management API v3 yanıtlarının ise Universal Analytics ile oluşturulan mülkler hakkında veri içermesidir. Tek bir çağrı kullanılarak her iki özellik türü hakkında bilgi almak mümkün değildir.
Google Analytics 4'te görünüm (profil) olmadığından Admin API tarafından döndürülen hesap özetleri görünüm (profil) bilgisi içermez.
Google Analytics 4 hesap özeti verileri, geçerli kullanıcıya sunulan hesapların/mülklerin kaynak ve görünen adlarıyla sınırlıdır.
account.get
ve property.get
yöntemlerini çağırarak yapılandırma verilerinin tamamını almak için özet yanıtının account
, property
alanlarında döndürülen kaynak adlarını kullanın.
Admin API v1 İsteği
GET https://analyticsadmin.googleapis.com/v1beta/accountSummaries?key=[YOUR_API_KEY]
Admin API v1 Yanıtı
{
"accountSummaries": [
{
"name": "accountSummaries/XXXXXX",
"account": "accounts/XXXXXX",
"displayName": "Test",
"propertySummaries": [
{
"property": "properties/XXXXXX",
"displayName": "Test App"
}
]
},
...
}
Management API v3 İsteği
GET https://analytics.googleapis.com/analytics/v3/management/accountSummaries?key=[YOUR_API_KEY]
Management API v3 Yanıtı
{
"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"
}
]
},
...
}
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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()
Hesapları listeleme
Admin API v1'in accounts.list
yöntemi, Management API v3'ün accounts.list
yöntemine benzer şekilde çağrıyı yapan tarafından erişilebilen tüm hesapları döndürür.
Admin API v1 İsteği
GET https://analyticsadmin.googleapis.com/v1beta/accounts?key=[YOUR_API_KEY]
Admin API v1 Yanıtı
{
"accounts": [
{
"name": "accounts/XXXXXX",
"createTime": "2020-02-21T00:17:33.282Z",
"updateTime": "2021-01-07T02:47:57.386Z",
"displayName": "Test Account",
"regionCode": "US"
},
...
}
Management API v3 İsteği
GET https://analytics.googleapis.com/analytics/v3/management/accounts?key=[YOUR_API_KEY]
Management API v3 Yanıtı
{
"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"
}
},
...
}
Admin API v1 yanıtının etkin kullanıcı izinleri hakkında bilgi veya Management API v3'te bulunan childLink
alanı hakkında bilgi içermediğini unutmayın.
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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)
Mülkleri yönetme
Mülkleri listeleme
Admin API v1'in properties.list
yöntemi, erişilebilir tüm Universal Analytics mülklerini döndüren Management API v3'ün webproperties.list
yöntemine benzer şekilde, çağrıyı yapan tarafından erişilebilen tüm Google Analytics 4 mülklerini döndürür.
websiteUrl
alanı artık Google Analytics 4'te mülk düzeyinde bulunmadığından mülkle ilişkili tüm veri akışlarını listelemek için properties.dataStreams/list
alanını kullanın ve bir akışla ilişkili web sitesi URL'sini almak için defaultUri
alanını arayın.
properties.list
isteğinin URL'sindeki filter
parametresini not edin. Parametrenin değeri, isteğin sonuçlarını filtrelemek için bir ifade içerir ve belirli bir Google Analytics hesap kimliğiyle ya da bağlı Firebase projesiyle ilişkilendirilen mülkleri listelemek için kullanılabilir.
Admin API v1 İsteği
GET https://analyticsadmin.googleapis.com/v1beta/properties?filter=parent:accounts/XXXXXX&key=[YOUR_API_KEY]
Admin API v1 Yanıtı
{
"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"
},
...
}
Management API v3 İsteği
GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties?key=[YOUR_API_KEY]
Management API v3 Yanıtı
{
"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"
}
},
...
}
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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()
Mülk alma
Admin API v1'in properties.get
yöntemi, Management API v3'ün webproperties.get
yöntemine benzer şekilde Google Analytics 4 mülküyle ilgili bilgileri döndürür.
Admin API'nin properties.get
yönteminin yalnızca Google Analytics 4 mülklerini desteklediğini unutmayın.
Admin API v1 İsteği
GET https://analyticsadmin.googleapis.com/v1beta/properties/XXXXXX?key=[YOUR_API_KEY]
Admin API v1 Yanıtı
{
"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"
}
Management API v3 İsteği
GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3?key=[YOUR_API_KEY]
Management API v3 Yanıtı
{
"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"
}
}
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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}")
Mülk oluştur
Admin API v1'in properties.create
yöntemi, Management API v3'ün webproperties.insert
yöntemine benzer şekilde yeni bir Google Analytics 4 mülkü oluşturur.
Admin API v1 İsteği
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"
}
Admin API v1 Yanıtı
{
"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"
}
Management API v3 İsteği
POST https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties?key=[YOUR_API_KEY]
{
"name": "Test",
"websiteUrl": "YOUR-WEBSITE-URL"
}
Management API v3 Yanıtı
{
"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"
}
}
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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_)
Mülk güncelleme/yama uygulama
Admin API v1'in properties.patch
yöntemi, Management API v3'ün webproperties.patch
yöntemine benzer şekilde Google Analytics 4 mülkünün yapılandırmasını günceller.
İsteğin URL'sinde, güncellenecek alanların virgülle ayrılmış listesini içeren updateMask
parametresini not edin. Bu listede bulunmayan alanlar güncellenmez. İstemci kitaplığı kullanıyorsanız yöntem imzasının bir parçası olarak update_mask
parametresi kullanılabilir.
Admin API v1 İsteği
PATCH https://analyticsadmin.googleapis.com/v1beta/properties/XXXXXX?updateMask=displayName,industryCategory&key=[YOUR_API_KEY]
{
"displayName": "New Property Name",
"industryCategory": "FINANCE"
}
Admin API v1 Yanıtı
{
"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"
}
Management API v3 İsteği
PATCH https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3?key=[YOUR_API_KEY]
{
"name": "New Property Name",
"industryVertical": "FINANCE"
}
Management API v3 Yanıtı
{
"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"
}
}
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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_)
Kullanıcıları yönetme
Google Analytics Admin API şu anda birkaç farklılık dışında, Management API v3'e benzer bir kullanıcı izinleri modeli uygulamaktadır.
- Kullanıcı izinlerini Google Analytics Admin API ile, Management API v3'teki
AccountUserLink
,WebPropertyUserLink
veProfileUserLink
kaynakları yerineAccessBinding
hesabı ve mülkAccessBinding
kaynaklarını kullanarak yönetirsiniz. - Google Analytics Admin API'deki mülk erişimi bağlamaları, örtülü izinleri veya hesap erişimi bağlamalarından devralınan izinleri içermez. Management API v3'te her kullanıcı bağlantısı, hem örtülü hem de devralınan izinleri içeren bir
permissions.effective
koleksiyonu içeriyordu.
AccessBinding
varlığı, bir kullanıcıyı (e-posta adresi) ve kullanıcıya verilen rollerin listesini içerir. AccessBinding
varlığı oluşturulabilir, güncellenebilir veya silinebilir.
Admin API v1 rol adları ile Management API v3 izni adları arasındaki eşleme aşağıdaki gibidir:
Admin API v1 rolü | Management API v3 izin adı |
---|---|
önceden tanımlanmışRoller/görüntüleyici | READ_AND_ANALYZE |
önceden tanımlanmış roller/analiz uzmanı | ORTAK ÇALIŞMA |
önceden tanımlanmışRoller/düzenleyici | DÜZENLE |
önceden tanımlanmışRoller/yönetici | MANAGE_USERS |
predefinedRoles/no-cost-data
ve predefinedRoles/no-revenue-data
rolleri Admin API v1'de kullanıma sunuldu ve Management API v3'te bunlara karşılık gelen bir eşleme yok.
Bu kılavuzda, hesap düzeyinde erişim bağlantılarının nasıl yönetileceği gösterilmektedir. Mülk düzeyindeki erişim bağlantılarını yönetmek için aynı süreci uygulayın ancak AccessBinding
hesabı yerine mülkAccessBinding
kaynaklarını ve yöntemlerini kullanın.
Hesap erişimi bağlamalarını listeleyin
Admin API v1'in accounts.accessBindings.list
yöntemi, Management API v3'ün accountUserLinks.list
yöntemine benzer şekilde bir hesaptaki tüm erişim bağlamalarını listeler.
Admin API v1 İsteği
GET https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings/XXXXXXXX
Admin API v1 Yanıtı
{
"accessBindings": [
{
"name": "accounts/XXXXXX/accessBindings/XXXXXX",
"user": "XXXXXX",
"roles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
]
}
]
}
Management API v3 İsteği
GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks?key=[YOUR_API_KEY]
Management API v3 Yanıtı
{
"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"
]
}
}
]
}
İstemci kitaplıklarını kullanarak Admin API'yi çağırmaya yönelik örnek kod:
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()
Hesap erişimi bağlantılarını güncelleyin
Admin API v1'in accounts.accessBindings.patch
yöntemi, bir hesabın erişim bağlamasını Management API v3'ün accountUserLinks.update
yöntemine benzer şekilde günceller.
Admin API v1 İsteği
PATCH https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings/XXXXXXXX
{
"roles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
]
}
Admin API v1 Yanıtı
{
"name": "accounts/XXXXXX/accessBindings/XXXXXXXX",
"user": "USER-EMAIL",
"directRoles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
]
}
Management API v3 İsteği
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"
]
}
}
Management API v3 Yanıtı
{
"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"
]
}
}
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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)
Hesap erişimi bağlamaları oluşturma
Admin API v1'in accounts.accessBindings.create
yöntemi bir hesapta Management API v3'ün accountUserLinks.insert
yöntemine benzer şekilde bir erişim bağlantısı oluşturur.
Admin API v1 İsteği
POST https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings
{
"roles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
],
"user": "USER-EMAIL"
}
Admin API v1 Yanıtı
{
"name": "accounts/XXXXXX/accessBindings/XXXXXXXX",
"user": "USER-EMAIL",
"roles": [
"predefinedRoles/editor",
"predefinedRoles/admin"
]
}
Management API v3 İsteği
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"
]
}
}
Management API v3 Yanıtı
{
"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"
]
}
}
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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)
Gruplama
Admin API v1, Management API v3'ün aksine çok parçalı/karma içerik türünü kullanarak birden fazla Google Analytics API çağrısının toplu olarak işlenmesini desteklemez.
Bunun yerine, toplu işlem API düzeyinde açık bir şekilde desteklenir. Admin API v1'in aşağıdaki yöntemleri toplu hale getirme işlevini destekler:
İstemci kitaplıklarını kullanarak Admin API v1'i çağırmaya yönelik örnek kod:
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()
API kotası değişiklikleri
Admin API v1, Management API v3'e kıyasla daha az kısıtlayıcı kotalar sunmaktadır.
- Admin API v1'e yapılan isteklerin sayısı, bir GCP projesinde varsayılan olarak dakika başına 600 istek ile sınırlandırılmıştır.
- Şu anda, GCP projesi başına Admin API v1 çağrısı sayısıyla ilgili günlük sınır kotası yoktur. Teorik olarak günlük maksimum istek sayısının hâlâ dakika başına istek sayısı kotasıyla sınırlı olduğunu unutmayın.
- Günlük yazma işlemi sayısıyla ilgili ayrı bir sınır kaldırılmıştır.