Önemli: Bu yönteme yönelik API istekleri için artık https://www.googleapis.com/auth/youtube.readonly
kapsamına erişim gerekiyor.
Bu yöntem sayesinde birçok farklı Analytics raporu alabilirsiniz. Her istek, bir kanal kimliği veya içerik sahibi, başlangıç tarihi, bitiş tarihi ve en az bir metrik belirtmek için sorgu parametrelerini kullanır. Ayrıca boyutlar, filtreler ve sıralama talimatları gibi ek sorgu parametreleri de sağlayabilirsiniz.
- Metrikler, video görüntüleme sayısı veya derecelendirmeler (beğenme ve beğenmeme sayısı) gibi kullanıcı etkinliğinin ayrı ayrı ölçümlerdir.
- Boyutlar, verileri birleştirmek için yaygın olarak kullanılan ölçütlerdir (ör. kullanıcı etkinliğinin gerçekleştiği tarih veya kullanıcıların bulunduğu ülke). Raporlarda, her veri satırında benzersiz bir boyut değerleri kombinasyonu bulunur.
- Filtreler, alınacak verileri belirten boyut değerleridir. Örneğin, belirli bir ülke, belirli bir video veya bir video grubuna ilişkin verileri alabilirsiniz.
Not: İçerik sahibi raporlarına yalnızca YouTube İş Ortağı Programı'na katılan YouTube içerik iş ortakları erişebilir.
Yaygın kullanım alanları
İstek
HTTP isteği
GET https://youtubeanalytics.googleapis.com/v2/reports
Tüm YouTube Analytics API istekleri yetkilendirilmelidir. Yetkilendirme kılavuzu, yetkilendirme jetonlarını almak için OAuth 2.0 protokolünün nasıl kullanılacağını açıklar.
YouTube Analytics API istekleri aşağıdaki yetkilendirme kapsamlarını kullanır:
Nişan dürbünleri | |
---|---|
https://www.googleapis.com/auth/yt-analytics.readonly | YouTube içeriğinize ilişkin YouTube Analytics raporlarını görüntüleyin. Bu kapsam, görüntüleme sayısı ve puan sayısı gibi kullanıcı etkinliği metriklerine erişim sağlar. |
https://www.googleapis.com/auth/yt-analytics-monetary.readonly | YouTube içeriğinize ilişkin YouTube Analytics mali raporlarını görüntüleyin. Bu kapsam, kullanıcı etkinliği metriklerinin yanı sıra tahmini gelir ve reklam performansı metriklerine erişim sağlar. |
https://www.googleapis.com/auth/youtube | YouTube hesabınızı yönetin. Kanal sahipleri, YouTube Analytics API'de YouTube Analytics gruplarını ve grup öğelerini yönetmek için bu kapsamı kullanır. |
https://www.googleapis.com/auth/youtubepartner | YouTube öğelerini ve YouTube'daki ilişkili içeriği görüntüleyin ve yönetin. İçerik sahipleri, YouTube Analytics API'de YouTube Analytics gruplarını ve grup öğelerini yönetmek için bu kapsamı kullanır. |
Parametreler
Aşağıdaki tablolarda, sorgu raporlarını almak amacıyla API istekleri için gerekli ve isteğe bağlı sorgu parametreleri listelenmiştir. Tabloda listelenen standart sorgu parametreleri de isteğe bağlıdır ve birçok Google API'si tarafından desteklenir.
Parametreler | ||
---|---|---|
Gerekli parametreler | ||
endDate |
string YouTube Analytics verilerinin getirilmesi için bitiş tarihi. Değer YYYY-MM-DD biçiminde olmalıdır.API yanıtı, sorgu sırasında sorgudaki tüm metriklerin kullanılabilir olduğu son güne kadar olan verileri içerir. Bu nedenle, örneğin istek 5 Temmuz 2017 bitiş tarihini belirtiyorsa ve istenen tüm metriklerin değerleri yalnızca 3 Temmuz 2017'ye kadar kullanılabiliyorsa bu tarih, verilerin yanıta dahil edileceği son tarih olur. (İstenen metriklerden bazılarının verileri 4 Temmuz 2017 için kullanılabilir olsa bile bu durum geçerlidir.) Not: API'nin 1. sürümünde bu parametrenin adı end-date |
|
ids |
string YouTube Analytics verilerini aldığınız YouTube kanalını veya içerik sahibini tanımlar.
|
|
metrics |
string views veya likes,dislikes gibi YouTube Analytics metriklerinin virgülle ayrılmış listesi. Alabileceğiniz raporların ve her bir raporda kullanılabilen metriklerin bir listesi için kanal raporları veya içerik sahibi raporları ile ilgili dokümanlara bakın. (Metrikler belgesinde tüm metriklerin tanımları yer alır.)
|
|
startDate |
string YouTube Analytics verilerini getirmenin başlangıç tarihi. Değer YYYY-MM-DD biçiminde olmalıdır.Not: API'nin 1. sürümünde bu parametrenin adı
start-date |
|
İsteğe Bağlı Parametreler | ||
currency |
string API'nin şu tahmini gelir metriklerini belirtmek için kullanacağı para birimi: estimatedRevenue, estimatedAdRevenue, estimatedRedPartnerRevenue, grossRevenue, cpm, playbackBasedCpm. API'nin bu metrikler için döndürdüğü değerler, günlük olarak değişen döviz kurları kullanılarak hesaplanır. Bu metriklerin hiçbiri için istek yapılmazsa parametre yok sayılır. Parametre değeri, aşağıdaki para birimi listesinde bulunan üç harfli ISO 4217 para birimi kodudur. Desteklenmeyen bir para birimi belirtilirse API hata döndürür. Varsayılan değer USD değeridir. |
|
dimensions |
string YouTube Analytics boyutlarının video veya ageGroup,gender gibi virgülle ayrılmış listesi. Alabileceğiniz raporların ve bu raporlar için kullanılan boyutların bir listesi için kanal raporları veya içerik sahibi raporları ile ilgili dokümanlara bakın. (Boyutlar belgesinde tüm boyutların tanımları yer alır.)
|
|
filters |
string YouTube Analytics verileri alınırken uygulanması gereken filtrelerin listesi. Kanal raporları ve içerik sahibi raporlarına ilişkin dokümanlar, her bir raporu filtrelemek için kullanılabilecek boyutları ve Boyutlar dokümanında bu boyutları tanımlar. Bir istekte birden fazla filtre kullanılıyorsa bu filtreleri noktalı virgülle ( ; ) birleştirdiğinizde döndürülen sonuç tablosu her iki filtreyi de karşılayacaktır. Örneğin, filters parametre değeri video==dMH0bHeiRNg;country==IT olduğunda sonuç grubu İtalya'daki belirli bir videonun verilerini içerecek şekilde kısıtlar.Bir filtre için birden fazla değer belirtme API; video , playlist ve channel filtreleri için birden fazla değer belirtme özelliğini destekler. API yanıtının filtrelenmesi gereken video, oynatma listesi veya kanal kimliklerinin ayrı bir listesini belirtin. Örneğin, filters parametre değeri video==pd1FJh59zxQ,Zhawgd0REhA;country==IT ise sonuç grubunu İtalya'daki belirli videoların verilerini içerecek şekilde kısıtlar. Parametre değeri en fazla 500 kimlik belirtebilir.Aynı filtre için birden çok değer belirtirken söz konusu filtreyi istek için belirttiğiniz boyutlar listesine de ekleyebilirsiniz. Bu, filtre belirli bir rapor için desteklenen boyut olarak listelenmemiş olsa bile geçerlidir. Filtreyi boyutlar listesine eklerseniz API, sonuçları gruplandırmak için filtre değerlerini de kullanır. Örneğin, bir kanalın trafik kaynağı raporunu aldığınızı varsayalım. Bu rapor, izleyicilerin kanalın video içeriğine ulaşma yöntemine göre görüntüleme istatistiklerini toplar. Ayrıca, isteğinizin filters parametresi isteğinin, verilerinin döndürülmesi gereken 10 videonun listesini tanımladığını varsayalım.
|
|
includeHistoricalChannelData |
boolean Not: Bu parametre yalnızca içerik sahibi raporları için geçerlidir. API yanıtının, kanalların içerik sahibine bağlanmasından önceki döneme ait izlenme süresi ve görüntüleme verilerini içermesi gerekip gerekmediğini belirtir. Varsayılan parametre değeri olan false , API yanıtının yalnızca kanalların içerik sahibine bağlandığı tarihlere ait izlenme süresi ve görüntüleme verilerini içerdiği anlamına gelir.Farklı kanalların farklı tarihlerde bir içerik sahibine bağlanmış olabileceğini unutmayın. API isteği birden çok kanal için veri alıyorsa ve parametre değeri false ise API yanıtı, ilgili her bir kanalın bağlantı tarihine dayalı veriler içerir. Parametre değeri true ise API yanıtı, API isteğinde belirtilen tarihlerle eşleşen verileri içerir.Not: API'nin 1. sürümünde bu parametrenin adı include-historical-channel-data |
|
maxResults |
integer Yanıta dahil edilecek maksimum satır sayısı. Not: API'nin 1. sürümünde bu parametrenin adı max-results |
|
sort |
string YouTube Analytics verilerinin sıralama düzenini belirleyen boyut veya metriklerin virgülle ayrılmış listesi. Sıralama düzeni varsayılan olarak artan düzendedir. - öneki, azalan sıralama düzenine neden olur.
|
|
startIndex |
integer Alınacak ilk varlığın 1 tabanlı dizini. (Varsayılan değer 1 'tir.) Bu parametreyi, max-results parametresiyle birlikte sayfalara ayırma mekanizması olarak kullanın.Not: API'nin 1. sürümünde bu parametrenin adı start-index |
|
Standart Parametreler | ||
access_token |
Geçerli kullanıcı için OAuth 2.0 jeton.
|
|
alt |
Bu parametre, yalnızca JSON yanıtlarını destekleyen API'nin 2. sürümünde desteklenmez. API yanıtının veri biçimi.
|
|
callback |
Geri çağırma işlevi.
|
|
prettyPrint |
Girintiler ve satır sonları içeren yanıtı döndürür.
|
|
quotaUser |
Bu parametre, API'nin 1. sürümünde desteklenmekte olup kullanımdan kaldırılmıştır. Bu parametre, API'nin 2. sürümünde desteklenmez. | |
userIp |
Bu parametre, API'nin 1. sürümünde desteklenmekte olup kullanımdan kaldırılmıştır. Bu parametre, API'nin 2. sürümünde desteklenmez. |
İstek içeriği
Bu yöntemi çağırırken istek gövdesi göndermeyin.
Yanıt
alt
parametre tanımında belirtildiği gibi, API yanıtları JSON veya CSV biçiminde döndürebilir. Her tür için yanıt gövdesiyle ilgili bilgiler aşağıda gösterilmektedir:
{ "kind": "youtubeAnalytics#resultTable", "columnHeaders": [ { "name": string, "dataType": string, "columnType": string }, ... more headers ... ], "rows": [ [ {value}, {value}, ... ] ] }
Özellikler | |
---|---|
kind |
string Bu değer, API yanıtına dahil edilen veri türünü belirtir. query yöntemi için kind özellik değeri youtubeAnalytics#resultTable olur. Ancak API diğer yöntemleri desteklerse bu yöntemlerin API yanıtları, başka kind özellik değerlerini de beraberinde getirebilir. |
columnHeaders[] |
list Bu değer, rows alanlarında döndürülen verilerle ilgili bilgileri belirtir. columnHeaders listesindeki her öğe, virgülle ayrılmış verilerin listesini içeren rows değerinde döndürülen bir alanı tanımlar.columnHeaders listesi, API isteğinde belirtilen boyutlarla başlar ve ardından API isteğinde belirtilen metrikler gelir. Hem boyutların hem de metriklerin sırası, API isteğindeki sıralamayla eşleşir.Örneğin, API isteği dimensions=ageGroup,gender&metrics=viewerPercentage parametrelerini içeriyorsa API yanıtı, sütunları şu sırayla döndürür: ageGroup ,gender ,viewerPercentage . |
columnHeaders[].name |
string Boyut veya metriğin adı. |
columnHeaders[].columnType |
string Sütunun türü ( DIMENSION veya METRIC ). |
columnHeaders[].dataType |
string Sütundaki verilerin türü ( STRING , INTEGER , FLOAT vb.). |
rows[] |
list Liste, sonuç tablosunun tüm satırlarını içerir. Listedeki her öğe, tek bir veri satırına karşılık gelen virgülle ayrılmış verileri içeren bir dizidir. Virgülle ayrılmış veri alanlarının sırası, columnHeaders alanında listelenen sütunların sıralamasıyla eşleşir.Belirli bir sorgu için kullanılabilecek veri yoksa rows öğesi yanıttan çıkarılır.day boyutu olan bir sorgunun yanıtında son günler için satır bulunmaz. |
day, views, likes, ... "2012-01-01", 12.0, 3, ... "2012-01-02", 16.0, 2, ... "2012-01-03", 18.0, 8, ... ...
Örnekler
Not: Aşağıdaki kod örnekleri, desteklenen tüm programlama dillerini temsil etmeyebilir. Desteklenen dillerin listesi için istemci kitaplıkları dokümanlarına bakın.
JavaScript
Bu örnek, 2017 takvim yılı için yetkilendiren kullanıcının kanalındaki günlük görüntüleme sayısını ve diğer metrikleri almak amacıyla YouTube Analytics API'yi çağırır. Örnekte, Google API'leri JavaScript istemci kitaplığı kullanılır.Bu örneği yerel olarak ilk kez çalıştırmadan önce projeniz için yetkilendirme kimlik bilgilerini ayarlamanız gerekir:
- Google API Konsolu'nda bir proje oluşturun veya seçin.
- Projeniz için YouTube Analytics API'yi etkinleştirin.
- Kimlik bilgileri sayfasının en üstünde, OAuth izin ekranı sekmesini seçin. Bir E-posta adresi seçin, daha önce ayarlanmamışsa Ürün adı girin ve Kaydet düğmesini tıklayın.
- Credentials (Kimlik Bilgileri) sayfasında Create credentials (Kimlik bilgisi oluştur) düğmesini tıklayın ve Oauth istemci kimliği'ni seçin.
- Web uygulaması uygulama türünü seçin.
- Yetkilendirilmiş JavaScript kaynakları alanına kod örneğini sunacağınız URL'yi girin. Örneğin,
http://localhost:8000
veyahttp://yourserver.example.com
gibi bir değer kullanabilirsiniz. Yetkili yönlendirme URI'leri alanını boş bırakabilirsiniz. - Kimlik bilgilerinizi oluşturma işlemini tamamlamak için Oluştur düğmesini tıklayın.
- İletişim kutusunu kapatmadan önce, kod örneğine girmeniz gereken istemci kimliğini kopyalayın.
Ardından, örneği yerel bir dosyaya kaydedin. Örnekte, aşağıdaki satırı bulun ve YOUR_CLIENT_ID kısmını yetkilendirme kimlik bilgilerinizi oluştururken aldığınız istemci kimliğiyle değiştirin.
gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
Artık örneği gerçekten test etmeye hazırsınız:
- Yerel dosyayı bir web tarayıcısından açın ve tarayıcıda hata ayıklama konsolunu açın. İki düğme görüntüleyen bir sayfa görmeniz gerekir.
- Kullanıcı yetkilendirme akışını başlatmak için Yetkilendir ve yükle düğmesini tıklayın. Uygulamaya kanal verilerinizi alma yetkisi verirseniz tarayıcıda şu satırların yazdırıldığını görürsünüz:
Sign-in successful GAPI client loaded for API
- Yukarıdaki satırlar yerine bir hata mesajı görürseniz komut dosyasını projeniz için ayarladığınız yetkili yönlendirme URI'sinden yüklediğinizi ve istemci kimliğinizi yukarıda açıklandığı gibi koda yerleştirdiğinizi onaylayın.
- API'yi çağırmak için execute düğmesini tıklayın. Tarayıcıda konsola yazdırılan bir
response
nesnesi görürsünüz. Bu nesnederesult
özelliği, API verilerini içeren bir nesneyle eşlenir.
<script src="https://apis.google.com/js/api.js"></script> <script> function authenticate() { return gapi.auth2.getAuthInstance() .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"}) .then(function() { console.log("Sign-in successful"); }, function(err) { console.error("Error signing in", err); }); } function loadClient() { return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2") .then(function() { console.log("GAPI client loaded for API"); }, function(err) { console.error("Error loading GAPI client for API", err); }); } // Make sure the client is loaded and sign-in is complete before calling this method. function execute() { return gapi.client.youtubeAnalytics.reports.query({ "ids": "channel==MINE", "startDate": "2017-01-01", "endDate": "2017-12-31", "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained", "dimensions": "day", "sort": "day" }) .then(function(response) { // Handle the results here (response.result has the parsed body). console.log("Response", response); }, function(err) { console.error("Execute error", err); }); } gapi.load("client:auth2", function() { gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'}); }); </script> <button onclick="authenticate().then(loadClient)">authorize and load</button> <button onclick="execute()">execute</button>
Python
Bu örnek, 2017 takvim yılı için yetkilendiren kullanıcının kanalındaki günlük görüntüleme sayısını ve diğer metrikleri almak amacıyla YouTube Analytics API'yi çağırır. Örnekte, Google API'leri Python istemci kitaplığı kullanılır.Bu örneği yerel olarak ilk kez çalıştırmadan önce projeniz için yetkilendirme kimlik bilgilerini ayarlamanız gerekir:
- Google API Konsolu'nda bir proje oluşturun veya seçin.
- Projeniz için YouTube Analytics API'yi etkinleştirin.
- Kimlik bilgileri sayfasının en üstünde, OAuth izin ekranı sekmesini seçin. Bir E-posta adresi seçin, daha önce ayarlanmamışsa Ürün adı girin ve Kaydet düğmesini tıklayın.
- Credentials (Kimlik Bilgileri) sayfasında Create credentials (Kimlik bilgisi oluştur) düğmesini tıklayın ve Oauth istemci kimliği'ni seçin.
- Diğer uygulama türünü seçip "YouTube Analytics API Hızlı Başlangıç Kılavuzu" adını girip Oluştur düğmesini tıklayın.
- Açılan iletişim kutusunu kapatmak için Tamam'ı tıklayın.
- İstemci kimliğinin sağındaki (JSON'u indir) düğmesini tıklayın.
- İndirilen dosyayı çalışma dizininize taşıyın.
Ayrıca, Python için Google API'leri İstemci Kitaplığı'nı ve bazı ek kitaplıkları da yüklemeniz gerekir:
pip install --upgrade google-api-python-client pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
Artık örneği gerçekten test etmeye hazırsınız:
- Aşağıdaki kod örneğini çalışma dizininize kopyalayın.
- Örnekte,
CLIENT_SECRETS_FILE
değişkeninin değerini, yetkilendirme kimlik bilgilerinizi ayarladıktan sonra indirdiğiniz dosyanın konumuyla eşleşecek şekilde güncelleyin. - Bir terminal penceresinde örnek kodu çalıştırın:
python yt_analytics_v2.py
- Yetkilendirme akışını tamamlayın. Yetkilendirme akışı tarayıcınızda otomatik olarak yüklenebilir veya kimlik doğrulama URL'sini bir tarayıcı penceresine kopyalamanız gerekebilir. Gerekiyorsa, yetkilendirme akışının sonunda tarayıcıda görüntülenen yetkilendirme kodunu terminal pencerenize yapıştırın ve [return] düğmesini tıklayın.
- API sorgusu yürütülür ve JSON yanıtı terminal penceresine çıkar.
# -*- coding: utf-8 -*- import os import google.oauth2.credentials import google_auth_oauthlib.flow from googleapiclient.discovery import build from googleapiclient.errors import HttpError from google_auth_oauthlib.flow import InstalledAppFlow SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly'] API_SERVICE_NAME = 'youtubeAnalytics' API_VERSION = 'v2' CLIENT_SECRETS_FILE = 'YOUR_CLIENT_SECRET_FILE.json' def get_service(): flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES) credentials = flow.run_console() return build(API_SERVICE_NAME, API_VERSION, credentials = credentials) def execute_api_request(client_library_function, **kwargs): response = client_library_function( **kwargs ).execute() print(response) if __name__ == '__main__': # Disable OAuthlib's HTTPs verification when running locally. # *DO NOT* leave this option enabled when running in production. os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1' youtubeAnalytics = get_service() execute_api_request( youtubeAnalytics.reports().query, ids='channel==MINE', startDate='2017-01-01', endDate='2017-12-31', metrics='estimatedMinutesWatched,views,likes,subscribersGained' dimensions='day', sort='day' )
Deneyin.
Bu API'yi çağırmak ve API isteğini ve yanıtını görmek için APIs Explorer kullanın.