Veri API'si sınırları ve kotaları

Data API için aşağıdaki sınırlar ve kotalar geçerlidir.

Kotalar nasıl uygulanır?

Google Analytics Data API v1'e gönderilen tüm istekler için bir Google Cloud projesi gerekir ve bu istekler, bu sayfada belirtilen kotalara tabidir. Kotalar, çağıran projeyi tanımlamak için kullanılan yöntemden bağımsız olarak tüketilir. Bu yöntemler arasında şunlar yer alır:

  • OAuth 2.0 kimlik bilgileriyle kimliği doğrulanmış istekler.
  • Yalnızca API anahtarı kullanılarak kimliği doğrulanan istekler.

API anahtarları, kota ve faturalandırma amacıyla bir isteği belirli bir Google Cloud projesiyle ilişkilendirmek için kullanılır. Projenizdeki kimlik bilgileri veya API anahtarı kullanılarak yapılan tüm API çağrıları, projenizin ve Google Analytics mülkünün geçerli kotalarına dahil edilir.

Kota kategorileri

Data API'nin dört istek kotası kategorisi vardır: Temel, Gerçek Zamanlı, Dönüşüm Hunisi ve Sohbet.

Core yöntemlerine yönelik API istekleri, Core kotalarını kullanır. Realtime yöntemlerine yönelik API istekleri, Realtime kotalarını kullanır. Dönüşüm hunisi yöntemlerine yönelik API istekleri, dönüşüm hunisi kotalarını kullanır. Chat yöntemlerine yönelik API istekleri, Chat kotalarını kullanır. Her istek yalnızca bir tür kota kullanır.

Kota kategorisi API yöntemleri
Core runReport, runPivotReport, batchRunReports, batchRunPivotReports, runAccessReport, getMetadata, checkCompatibility, createAudienceExports
Gerçek zamanlı runRealtimeReport
Dönüşüm hunisi runFunnelReport
Sohbet properties.chat

Analytics mülk kotaları

Tüm istekler mülk kotalarını tüketir.

Kota Adı Standart mülk sınırı Analytics 360 Mülk Sınırı
Mülk Başına Günlük Temel Jeton Sayısı 200.000 2.000.000
Mülk Başına Saatlik Temel Jeton Sayısı 40.000 400.000
Proje Başına Mülk Başına Saatlik Temel Jeton Sayısı 14.000 140.000
Mülk Başına Temel Eşzamanlı İstek Sayısı 10 50
Proje Başına Mülk Başına Saatlik Temel Sunucu Hatası Sayısı 10 50
Mülk Başına Günlük Gerçek Zamanlı Jeton Sayısı 200.000 2.000.000
Mülk Başına Saatlik Gerçek Zamanlı Jeton Sayısı 40.000 400.000
Proje Başına Mülk Başına Saatlik Gerçek Zamanlı Jeton Sayısı 14.000 140.000
Mülk Başına Gerçek Zamanlı Eşzamanlı İstek Sayısı 10 50
Proje Başına Mülk Başına Saatlik Gerçek Zamanlı Sunucu Hatası Sayısı 10 50
Mülk Başına Günlük Dönüşüm Hunisi Jetonu Sayısı 200.000 2.000.000
Mülk Başına Saatlik Dönüşüm Hunisi Jetonu Sayısı 40.000 400.000
Proje Başına Mülk Başına Saatlik Dönüşüm Hunisi Jetonu Sayısı 14.000 140.000
Mülk Başına Dönüşüm Hunisi Eşzamanlı İstek Sayısı 10 50
Proje Başına Mülk Başına Saatlik Dönüşüm Hunisi Sunucu Hatası Sayısı 10 50
Mülk Başına Günlük Sohbet Jetonu Sayısı 3.750.000 3.750.000
Tesis Başına Saatlik Sohbet Jetonu Sayısı 500.000 500.000
  • Eşzamanlı istekler, aynı anda yürütülen isteklerin sayısıyla ölçülür. Eşzamanlı istek sayınızı azaltmak için ek istek göndermeden önce önceki isteklerin tamamlanmasını bekleyin.
  • Sunucu hataları 500 ve 503 kodlarıdır. Sunucu hatası kotaları yalnızca bir istek sunucu hatasıyla sonuçlandığında ücretlendirilir. Bir proje ve mülk çifti için sunucu hataları kotaları tükendiğinde projeden mülke gönderilen tüm istekler engellenir. Hata yanıtlarının tam listesi için Hata Yanıtları başlıklı makaleyi inceleyin.
  • Her istek, hem Mülk Başına Saatlik Jeton hem de Proje Başına Mülk Başına Saatlik Jeton kotasını tüketir. Bu, "Saat Başına Mülk Başına Jeton" kotasının "Saat Başına Proje Başına Mülk Başına Jeton" kotasından önce tükenmesi için bir mülke 3'ten fazla proje tarafından erişilmesi gerektiği anlamına gelir.

Mülklerin saatte 120 eşikli istek göndermesine izin verilir. userAgeBracket, userGender, brandingInterest, audienceId ve audienceName boyutlarına eşik uygulanmış olabilir. Eşikler, raporları görüntüleyen kişilerin bağımsız kullanıcıların demografisi ve ilgi alanları üzerinde çıkarımlar yapmasına engel olmak için uygulanır.

Mülk jetonları kotası

Jetonlar, Google Analytics Data API v1'e gönderilen her istekte kullanılır. Ücretlendirilen jeton sayısı, isteğin karmaşıklığına bağlıdır. Çoğu istek için 10 veya daha az jeton ücreti alınır ancak Ask Advisor chat sorguları gibi daha karmaşık istekler daha fazla jeton tüketir.

Jeton kullanımını etkileyen faktörler

Bir isteğin tam jeton maliyeti, yürütme sırasında belirlenir. Bu nedenle, önceden kesin bir hesaplama yapmak zordur. Maliyet, isteğin kendisiyle ve Google Analytics mülkündeki temel verilerle ilgili faktörlerin birleşiminden etkilenir. Aşağıdaki faktörler maliyetlerin artmasına neden olabilir:

  • Satır sayısı: Daha fazla satır isteme.
  • Boyut ve metrik sayısı: Daha fazla sayıda boyut ve metrik ekleme.
  • Filtre karmaşıklığı: Karmaşık filtre ifadeleri kullanma.
  • Tarih aralığı uzunluğu: Daha uzun tarih aralıklarında sorgu yürütme.
  • Veri kardinalitesi: Yüksek kardinaliteli boyutlar (pagePath, özel boyutlar gibi birçok benzersiz değer), jeton maliyetini önemli ölçüde artırabilir.
  • Mülk etkinlik hacmi: Daha yüksek etkinlik hacmine sahip mülklerdeki sorgular, daha az veriye sahip bir mülkteki aynı sorgudan daha fazla jeton tüketebilir.

Jeton kullanımını izleme

Belirli API çağrılarınızın jeton maliyetini belirlemenin en etkili yolu, istek içeriğine "returnPropertyQuota": true parametresini eklemektir (runReport, batchRunReports, runPivotReport, batchRunPivotReports, runRealtimeReport ve runFunnelReport sürümlerinde desteklenir). API yanıtı, söz konusu istek tarafından kullanılan jetonları ve kalan kota bakiyelerini ayrıntılı olarak açıklayan PropertyQuota nesnesini içerir.

returnPropertyQuota ile örnek istek
POST https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport
{
  "dateRanges": [
    { "startDate": "7daysAgo", "endDate": "yesterday" }
  ],
  "dimensions": [
    { "name": "country" }
  ],
  "metrics": [
    { "name": "activeUsers" }
  ],
  "returnPropertyQuota": true
}
Örnek propertyQuota yanıt yükü

"returnPropertyQuota": true ayarlandığında yanıt, her alanın consumed ve remaining tam sayılarını içeren bir QuotaStatus barındırdığı bir propertyQuota nesnesi içerir:

{
  "dimensionHeaders": [
    { "name": "country" }
  ],
  "metricHeaders": [
    { "name": "activeUsers", "type": "TYPE_INTEGER" }
  ],
  "rows": [
    {
      "dimensionValues": [{ "value": "United States" }],
      "metricValues": [{ "value": "4820" }]
    }
  ],
  "propertyQuota": {
    "tokensPerDay": {
      "consumed": 1,
      "remaining": 199999
    },
    "tokensPerHour": {
      "consumed": 1,
      "remaining": 39999
    },
    "concurrentRequests": {
      "consumed": 0,
      "remaining": 10
    },
    "serverErrorsPerProjectPerHour": {
      "consumed": 0,
      "remaining": 10
    },
    "potentiallyThresholdedRequestsPerHour": {
      "consumed": 0,
      "remaining": 120
    },
    "tokensPerProjectPerHour": {
      "consumed": 1,
      "remaining": 13999
    }
  }
}

propertyQuota içindeki her alan, Analytics mülk kotaları'ndaki bir kotaya karşılık gelir. Tek bir API isteğinin jeton ücreti tokensPerDay, tokensPerHour ve tokensPerProjectPerHour'den aynı anda düşülür. Herhangi bir kota grubunda 0 istek kaldığında, ilgili mülke gönderilen sonraki istekler 429 RESOURCE_EXHAUSTED hatası döndürür.

429 RESOURCE_EXHAUSTED hatalarını önlemeyle ilgili en iyi uygulamalar
  • remaining bakiyelerini dinamik olarak izleyin: Yanıtlarda propertyQuota.tokensPerProjectPerHour.remaining ve propertyQuota.tokensPerHour.remaining değerlerini inceleyin ve kalan jeton sayısı güvenlik eşiğinin altına düştüğünde acil olmayan arka plan işlerini kısıtlayın veya duraklatın.
  • İlgili sorguları toplu olarak işleme: Tek bir HTTP çağrısında en fazla 5 raporu gruplandırmak ve HTTP gidiş dönüş ek yükünü azaltmak için batchRunReports veya batchRunPivotReports yöntemini kullanın (Bir gruptaki her raporun, jeton ve concurrentRequests kotaları için ayrı ayrı sayıldığını unutmayın).
  • Sorgu karmaşıklığını ve kardinaliteyi azaltın: İstekleri yalnızca ihtiyacınız olan boyut ve metriklerle sınırlayın, mümkün olduğunda dateRanges değerini kısaltın ve sık yapılan yoklama sorgularında birden fazla yüksek kardinaliteli boyutu (ör. pagePath veya fullPageUrl) birleştirmekten kaçının.
  • Eşzamanlı istekleri kontrol edin: İstekleri sıraya alın veya çalışan havuzu boyutunu sınırlandırın. Böylece, devam eden istekler concurrentRequests sınırının (Standart için 10, Analytics 360 için 50) altında kalır.
  • Yeniden deneme sınırlarıyla eksponansiyel geri yükleme uygulayın: Bir istek 429 RESOURCE_EXHAUSTED, 500 INTERNAL veya 503 UNAVAILABLE ile başarısız olursa Hata yanıtları bölümünde açıklandığı gibi kesilmiş eksponansiyel geri yükleme kullanarak yeniden deneyin.

Chat jetonu kullanımı ve izleme

Ask Advisor chat isteklerinde jetonlar; model hesaplama, akıl yürütme ve temel veri alma maliyetlerini temsil eder. Chat'te jeton tüketimi şunlardan etkilenir:

  • Sorgu ve analiz kapsamı: İstenen analizin karmaşıklığı ve kapsamı.
  • Model giriş ve çıkış jetonları: İşlenen içerik verilerinin ve oluşturulan yanıt anlatımının hacmi.
  • Düşünme token'ları: Bulguları sentezlemek için gereken model akıl yürütme adımları.
  • Yürütme gecikmesi: Çok adımlı veri keşifleri için gereken işleme süresi.

Sohbet jetonu kullanımını izlemek için ChatRequest dosyanızda "returnPropertyQuota": true değerini ayarlayın. Yanıt, tüketilen ve kalan bakiyeleri içeren tokensPerDay ve tokensPerHour alanlarını içeren PropertyChatQuota nesnesini içerir.