Bu eğitim, bir Google Analytics hesabına erişmek, Analytics API'lerini sorgulamak, API yanıtlarını yönetmek ve sonuçları almak için atılması gereken adımları adım adım açıklar. Bu eğiticide Core Reporting API v3.0, Management API v3.0 ve OAuth2.0 kullanılmıştır.
1. Adım: Analytics API'yi etkinleştirme
Google Analytics API'yi kullanmaya başlamak için önce kurulum aracını kullanmanız gerekir. Bu araç, Google API Konsolu'nda proje, API'yi etkinleştirme ve kimlik bilgileri oluşturma konusunda size yol gösterir.
İstemci kimliği oluşturma
Kimlik bilgileri sayfasından:
- Kimlik Bilgisi Oluştur'u tıklayın ve OAuth istemci kimliği'ni seçin.
- UYGULAMA TÜRÜ için Web uygulaması'nı seçin.
- Kimlik bilgilerine ad verin.
- Yetkili JAVASCRIPT HARİCİ İÇERİKLER'i http://localhost:8080 olarak ayarlayın
- YETKİLİĞİ YENİDEN YÖNLENDİRME URI'lerini http://localhost:8080/oauth2callback olarak ayarlayın
- Oluştur'u tıklayın.
2. Adım: Örneği ayarlama
HelloAnalytics.html
adlı bir dosya oluşturmanız gerekecek. Bu dosya, örneğimizde HTML ve JavaScript kodunu içerecektir.
- Aşağıdaki kaynak kodunu kopyalayın veya
HelloAnalytics.html
adresine indirin. '<YOUR_CLIENT_ID>'
kısmını müşteri kimliğinizle değiştirin. oluşturabilirsiniz.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello Analytics - A quickstart guide for JavaScript</title> </head> <body> <button id="auth-button" hidden>Authorize</button> <h1>Hello Analytics</h1> <textarea cols="80" rows="20" id="query-output"></textarea> <script> // Replace with your client ID from the developer console. var CLIENT_ID = '<YOUR_CLIENT_ID>'; // Set authorized scope. var SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']; function authorize(event) { // Handles the authorization flow. // `immediate` should be false when invoked from the button click. var useImmdiate = event ? false : true; var authData = { client_id: CLIENT_ID, scope: SCOPES, immediate: useImmdiate }; gapi.auth.authorize(authData, function(response) { var authButton = document.getElementById('auth-button'); if (response.error) { authButton.hidden = false; } else { authButton.hidden = true; queryAccounts(); } }); } function queryAccounts() { // Load the Google Analytics client library. gapi.client.load('analytics', 'v3').then(function() { // Get a list of all Google Analytics accounts for this user gapi.client.analytics.management.accounts.list().then(handleAccounts); }); } function handleAccounts(response) { // Handles the response from the accounts list method. if (response.result.items && response.result.items.length) { // Get the first Google Analytics account. var firstAccountId = response.result.items[0].id; // Query for properties. queryProperties(firstAccountId); } else { console.log('No accounts found for this user.'); } } function queryProperties(accountId) { // Get a list of all the properties for the account. gapi.client.analytics.management.webproperties.list( {'accountId': accountId}) .then(handleProperties) .then(null, function(err) { // Log any errors. console.log(err); }); } function handleProperties(response) { // Handles the response from the webproperties list method. if (response.result.items && response.result.items.length) { // Get the first Google Analytics account var firstAccountId = response.result.items[0].accountId; // Get the first property ID var firstPropertyId = response.result.items[0].id; // Query for Views (Profiles). queryProfiles(firstAccountId, firstPropertyId); } else { console.log('No properties found for this user.'); } } function queryProfiles(accountId, propertyId) { // Get a list of all Views (Profiles) for the first property // of the first Account. gapi.client.analytics.management.profiles.list({ 'accountId': accountId, 'webPropertyId': propertyId }) .then(handleProfiles) .then(null, function(err) { // Log any errors. console.log(err); }); } function handleProfiles(response) { // Handles the response from the profiles list method. if (response.result.items && response.result.items.length) { // Get the first View (Profile) ID. var firstProfileId = response.result.items[0].id; // Query the Core Reporting API. queryCoreReportingApi(firstProfileId); } else { console.log('No views (profiles) found for this user.'); } } function queryCoreReportingApi(profileId) { // Query the Core Reporting API for the number sessions for // the past seven days. gapi.client.analytics.data.ga.get({ 'ids': 'ga:' + profileId, 'start-date': '7daysAgo', 'end-date': 'today', 'metrics': 'ga:sessions' }) .then(function(response) { var formattedJson = JSON.stringify(response.result, null, 2); document.getElementById('query-output').value = formattedJson; }) .then(null, function(err) { // Log any errors. console.log(err); }); } // Add an event listener to the 'auth-button'. document.getElementById('auth-button').addEventListener('click', authorize); </script> <script src="https://apis.google.com/js/client.js?onload=authorize"></script> </body> </html>
3. Adım: Örneği çalıştırın
Analytics API'yi etkinleştirdikten sonra, örnek örnek kodu çalıştırmaya hazır olan örnek kaynak kodunu ayarlayın.
HelloAnalytics.html
öğesini web sunucunuzda yayınlayın ve tarayıcınıza yükleyin.Yetkilendir düğmesini tıklayın ve Google Analytics için erişim yetkisi verin.
Bu adımları tamamladığınızda örnek, yetkili kullanıcının ilk Google Analytics görünümünün adını (profili) ve son yedi gündeki oturum sayısını gösterir.
Yetkili Analytics hizmet nesnesiyle artık Management API'si başvuru dokümanlarında bulunan tüm kod örneklerini çalıştırabilirsiniz. Örneğin, kodu accountSummaries.list yöntemini kullanacak şekilde değiştirmeyi deneyebilirsiniz.