Google Sheets में Google Analytics के डेटा का अपने-आप ऐक्सेस

निक मिहैलोवस्की, Google Analytics API टीम – अगस्त 2012

इस ट्यूटोरियल में बताया गया है कि Apps Script का इस्तेमाल करके, Google Sheets में मैनेजमेंट और कोर रिपोर्टिंग एपीआई को कैसे ऐक्सेस किया जा सकता है.


शुरुआती जानकारी

Google Sheets से Google Analytics का डेटा ऐक्सेस करने के लिए, Google Analytics API और Google Apps Script का इस्तेमाल किया जा सकता है. यह बहुत अहम है, क्योंकि इससे Analytics के डेटा के साथ, Google Sheets की सभी बेहतरीन सुविधाओं का इस्तेमाल किया जा सकता है. जैसे, शेयर करना, मिलकर काम करना, चार्ट बनाना, और विज़ुअलाइज़ेशन टूल.

इस ट्यूटोरियल में, आपको उस कोड के बारे में बताया गया है जो Google Apps Script का इस्तेमाल करके, Google Sheets में Google Analytics का डेटा ऐक्सेस करने के लिए ज़रूरी है.

खास जानकारी

इस ट्यूटोरियल में, Google Analytics API का इस्तेमाल करने के लिए, Apps Script एनवायरमेंट को रजिस्टर और कॉन्फ़िगर करने का तरीका बताया गया है. कॉन्फ़िगर होने के बाद, ट्यूटोरियल में बताया गया है कि Management API का इस्तेमाल करके, अनुमति वाले उपयोगकर्ता के लिए व्यू (प्रोफ़ाइल) आईडी को कैसे वापस पाया जा सकता है. इसके बाद, व्यू (प्रोफ़ाइल) आईडी का इस्तेमाल करके Core Reporting API की क्वेरी करने का तरीका जानें और Google से टॉप 250 मोबाइल सर्च कीवर्ड वापस पाएं. आखिर में, नतीजों को Google स्प्रेडशीट में डाला जाएगा. डेटा मिल जाने के बाद, ट्यूटोरियल में यह भी बताया गया है कि डेटा को अपने-आप वापस कैसे लाया जा सकता है.

Google Analytics API और Apps Script का इस्तेमाल करके कोई ऐप्लिकेशन बनाते समय, आपको आम तौर पर यह तरीका अपनाना होता है:

  • Google Sheets में Google Analytics API चालू करना
  • Google Analytics APIs का इस्तेमाल करना

आइए, हर चरण के बारे में विस्तार से जानते हैं.

Apps Script में Google Analytics API चालू करें

Google Sheets में अपने Google Analytics डेटा का ऐक्सेस चालू करने के लिए, यह तरीका अपनाएं:

  1. Google Sheets फ़ाइल बनाएं. इसे एक बढ़िया नाम दें.
  2. एक नई Apps स्क्रिप्ट बनाएं.
    1. मेन्यू में, एक्सटेंशन > Apps Script पर जाएं.
    2. अगर कोई मेन्यू पॉप-अप होता है, तो खाली प्रोजेक्ट पर क्लिक करें.
    3. प्रोजेक्ट को कोई नाम दें. पक्का करें कि उसका नाम अच्छा हो.

नई स्क्रिप्ट मिलने के बाद, आपको Google Analytics सेवा चालू करनी होगी.

  1. स्क्रिप्ट एडिटर में, संसाधन > Google की बेहतर सेवाएं... चुनें
  2. दिखाई देने वाले डायलॉग बॉक्स में, Google Analytics API के बगल में मौजूद चालू/बंद करें स्विच पर क्लिक करें.
  3. डायलॉग के सबसे नीचे, Google Developers Console के लिंक पर क्लिक करें.
  4. नए कंसोल में, फिर से Google Analytics API के बगल में मौजूद चालू/बंद करें स्विच पर क्लिक करें. (चालू होने के बाद, यह सीधे पेज पर सबसे ऊपर दिखेगा.)
  5. स्क्रिप्ट एडिटर पर वापस जाएं और डायलॉग में ठीक है पर क्लिक करें.

पीले रंग के एक छोटे से डायलॉग बॉक्स में पॉप-अप दिखेगा. इसमें लिखा होगा कि आपने अपनी स्क्रिप्ट में Google API की नई सेवा जोड़ ली है. अब आप अपनी पहली स्क्रिप्ट लिखने के लिए तैयार हैं.

Google Analytics API का इस्तेमाल करना

इस ट्यूटोरियल में यह स्क्रिप्ट, Google मोबाइल के सबसे लोकप्रिय 250 कीवर्ड के लिए, Google Analytics API के बारे में क्वेरी करेगी. इसके बाद, नतीजों को Google Sheets में उपलब्ध कराएगी. इस लक्ष्य को पूरा करने के लिए, स्क्रिप्ट को इन चरणों का पालन करना होगा:

  • अधिकृत उपयोगकर्ता का पहला दृश्य (प्रोफ़ाइल) फिर से पाएं.
  • डेटा के लिए Core Reporting API पर क्वेरी करें.
  • स्प्रेडशीट में डेटा डालें.

खाली प्रोजेक्ट में, यह फ़ंक्शन जोड़ें.

function runDemo() {
  try {

    var firstProfile = getFirstProfile();
    var results = getReportDataForProfile(firstProfile);
    outputToSpreadsheet(results);

  } catch(error) {
    Browser.msgBox(error.message);
  }
}

ऊपर दिए गए कोड में, try...catch ब्लॉक का इस्तेमाल एपीआई की किसी भी गड़बड़ी को हैंडल करने के लिए किया जाता है. अगर कोई गड़बड़ी होती है, तो प्रोग्राम चलने की प्रोसेस रुक जाएगी और गड़बड़ी, मैसेज बॉक्स में दिखेगी. try ब्लॉक में, फ़ंक्शन का इस्तेमाल करके, हर उस चरण को पूरा किया जाता है जिस पर स्क्रिप्ट जाएगी. आइए, अब इनमें से हर फ़ंक्शन के लिए कोड जोड़ें.

अनुमति वाले उपयोगकर्ता की पहली झलक (प्रोफ़ाइल) वापस पाएं

Google Analytics में, हर रिपोर्ट किसी व्यू (प्रोफ़ाइल) से जुड़ी होती है और उसकी पहचान एक व्यू (प्रोफ़ाइल) आईडी से की जाती है. इसलिए, रिपोर्ट डेटा के लिए कोई क्वेरी तय करते समय, आपको उस व्यू (प्रोफ़ाइल) का व्यू (प्रोफ़ाइल) आईडी भी बताना होगा जिससे आपको डेटा हासिल करना है.

Google Analytics Management API की मदद से, किसी उपयोगकर्ता के सभी खातों, वेब प्रॉपर्टी, और व्यू (प्रोफ़ाइल) इकाइयों को ऐक्सेस किया जा सकता है. इनमें से हर एक इकाई एक हैरारकी में होती है और उस उपयोगकर्ता के लिए व्यू (प्रोफ़ाइल) आईडी फिर से पाने के लिए, प्रोग्राम के हिसाब से इस हैरारकी को देखा जा सकता है.

दूसरा फ़ंक्शन जो हम लिखेंगे, वह मैनेजमेंट एपीआई की हैरारकी को पार करेगा और उपयोगकर्ता का पहला व्यू (प्रोफ़ाइल) दिखाएगा. इस कोड को कॉपी करके अपने Apps Script प्रोजेक्ट में चिपकाएं:

function getFirstProfile() {
  var accounts = Analytics.Management.Accounts.list();
  if (accounts.getItems()) {
    var firstAccountId = accounts.getItems()[0].getId();

    var webProperties = Analytics.Management.Webproperties.list(firstAccountId);
    if (webProperties.getItems()) {

      var firstWebPropertyId = webProperties.getItems()[0].getId();
      var profiles = Analytics.Management.Profiles.list(firstAccountId, firstWebPropertyId);

      if (profiles.getItems()) {
        var firstProfile = profiles.getItems()[0];
        return firstProfile;

      } else {
        throw new Error('No views (profiles) found.');
      }
    } else {
      throw new Error('No webproperties found.');
    }
  } else {
    throw new Error('No accounts found.');
  }
}

इस फ़ंक्शन में, सबसे पहले Analytics.Management.Accounts.list तरीके का इस्तेमाल करके खातों के कलेक्शन के बारे में क्वेरी की जाती है. अगर अनुमति वाले उपयोगकर्ता के पास Google Analytics खाते हैं, तो पहले खाते का आईडी वापस मिल जाता है. इसके बाद, वेब प्रॉपर्टी कलेक्शन के बारे में क्वेरी करने के लिए, Analytics.Management.Webproperties.list तरीके को कॉल किया जाता है और पिछले चरण में मिला खाता आईडी पास किया जाता है. अगर वेब प्रॉपर्टी मौजूद हैं, तो आखिर में व्यू (प्रोफ़ाइल) कलेक्शन के लिए Analytics.Management.Profiles.list तरीके का इस्तेमाल करके क्वेरी की जाती है. खाता आईडी और वेब प्रॉपर्टी आईडी, दोनों को इस तरीके में पैरामीटर के तौर पर पास किया जाता है. अगर व्यू (प्रोफ़ाइल) मौजूद हैं, तो पहला व्यू (प्रोफ़ाइल) दिखाया जाता है.

अगर किसी भी समय एपीआई से जुड़ी कोई गड़बड़ी होती है या एपीआई से मिले रिस्पॉन्स में कोई नतीजा नहीं मिलता, तो गड़बड़ी वाला मैसेज दिखता है. साथ ही, मैसेज में बताया जाता है कि कोई नतीजा नहीं मिला. ऊपर दिए गए runDemo फ़ंक्शन में catch ब्लॉक इस गड़बड़ी को पकड़ लेगा और उपयोगकर्ता को मैसेज प्रिंट कर देगा.

स्क्रिप्ट मिलने के बाद, अब वह रिपोर्टिंग डेटा के लिए क्वेरी कर सकती है.

डेटा के लिए Core Reporting API पर क्वेरी करें.

व्यू (प्रोफ़ाइल) आईडी मिलने के बाद, Google Analytics रिपोर्ट के डेटा की क्वेरी करने के लिए, Core Reporting API का इस्तेमाल किया जा सकता है. इस सेक्शन में, आपको Apps Script का इस्तेमाल करके, इस एपीआई के बारे में क्वेरी करने का तरीका पता चलेगा.

अपने Apps Script प्रोजेक्ट में, यह कोड जोड़ें:

function getReportDataForProfile(firstProfile) {

  var profileId = firstProfile.getId();
  var tableId = 'ga:' + profileId;
  var startDate = getLastNdays(14);   // 2 weeks (a fortnight) ago.
  var endDate = getLastNdays(0);      // Today.

  var optArgs = {
    'dimensions': 'ga:keyword',              // Comma separated list of dimensions.
    'sort': '-ga:sessions,ga:keyword',       // Sort by sessions descending, then keyword.
    'segment': 'dynamic::ga:isMobile==Yes',  // Process only mobile traffic.
    'filters': 'ga:source==google',          // Display only google traffic.
    'start-index': '1',
    'max-results': '250'                     // Display the first 250 results.
  };

  // Make a request to the API.
  var results = Analytics.Data.Ga.get(
      tableId,                    // Table id (format ga:xxxxxx).
      startDate,                  // Start-date (format yyyy-MM-dd).
      endDate,                    // End-date (format yyyy-MM-dd).
      'ga:sessions,ga:pageviews', // Comma seperated list of metrics.
      optArgs);

  if (results.getRows()) {
    return results;

  } else {
    throw new Error('No views (profiles) found');
  }
}

function getLastNdays(nDaysAgo) {
  var today = new Date();
  var before = new Date();
  before.setDate(today.getDate() - nDaysAgo);
  return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd');
}

कोड के पहले हिस्से में, Analytics.Data.Ga.get तरीके का इस्तेमाल करके Core Reporting API क्वेरी बनाई जाती है. इस तरीके में कई तरह के पैरामीटर स्वीकार किए जाते हैं, जो यह बताते हैं कि किस तरह की रिपोर्ट को वापस पाना है. हर Core Reporting API की क्वेरी में ज़रूरी और वैकल्पिक पैरामीटर का एक सेट होता है. ज़रूरी पैरामीटर, तरीके को पैरामीटर के तौर पर पास किए जाते हैं, जबकि वैकल्पिक पैरामीटर को ऑब्जेक्ट के तौर पर पास किया जाता है.

table ID पैरामीटर ज़रूरी है. इसे व्यू (प्रोफ़ाइल) आईडी के साथ ga: प्रीफ़िक्स को जोड़कर बनाया जाता है. यह कोड, पिछले चरण में मिले व्यू (प्रोफ़ाइल) आईडी का इस्तेमाल करके, टेबल आईडी बनाता है. शुरू और खत्म होने की तारीख भी ज़रूरी होती है और फिर से पाने के लिए डेटा की तारीख की सीमा भी बताई जाती है. दोनों की गिनती आज की तारीख के आधार पर की जाती है. इसके लिए, getLastNdays फ़ंक्शन का इस्तेमाल किया जाता है. आखिर में, सभी वैकल्पिक पैरामीटर optArgs ऑब्जेक्ट का इस्तेमाल करके फ़ंक्शन को पास किए जाते हैं.

जब Analytics.Data.Ga.get तरीका काम करता है, तो Core Reporting API को अनुरोध भेजा जाता है. अगर कोई गड़बड़ी होती है, तो उसे try...catch ब्लॉक में पकड़ लिया जाता है, जिसके बारे में आउटर runDemo तरीके में बताया गया है. अनुरोध पूरा होने पर, नतीजे दिखाए जाते हैं.

किसी स्प्रेडशीट में डेटा डालें

हमारी स्क्रिप्ट का आखिरी चरण, कोर रिपोर्टिंग एपीआई से मिले नतीजों को Google Sheets में आउटपुट करना है. outputToSpreadsheet तरीके से यह काम करता है. अपने प्रोजेक्ट में यह कोड जोड़ें:

function outputToSpreadsheet(results) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet();

  // Print the headers.
  var headerNames = [];
  for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) {
    headerNames.push(header.getName());
  }
  sheet.getRange(1, 1, 1, headerNames.length)
      .setValues([headerNames]);

  // Print the rows of data.
  sheet.getRange(2, 1, results.getRows().length, headerNames.length)
      .setValues(results.getRows());
}

यह फ़ंक्शन, सबसे पहले ऐक्टिव स्प्रेडशीट में एक नई शीट डालता है. इसके बाद, यह शीट में सभी हेडर और रिपोर्टिंग डेटा डाल देता है. Google Sheets में डेटा डालने के तरीके के बारे में ज़्यादा सलाह पाने के लिए, स्प्रेडशीट में डेटा स्टोर करने से जुड़े ट्यूटोरियल में JavaScript ऑब्जेक्ट से स्प्रेडशीट में डेटा लिखना लेख पढ़ें.

स्क्रिप्ट चलाएं

प्रोजेक्ट में सभी कोड जोड़ने के बाद, अब इसे चलाया जा सकता है.

  • स्क्रिप्ट एडिटर टूलबार में, 'फ़ंक्शन चुनें' ड्रॉपडाउन में, runDemo चुनें.
  • इसके बाद, play बटन पर क्लिक करें.

इसे पहली बार चलाने पर, आपको एक पॉप-अप बॉक्स दिखेगा. इसमें, आपको इस स्क्रिप्ट को अपने Google Analytics खाते का डेटा ऐक्सेस करने की अनुमति देनी होगी.

'अनुमति दें' पर क्लिक करें.

क्लिक करने पर, google.com पर होस्ट किया गया नया पेज खुलेगा. साथ ही, आपसे इस स्क्रिप्ट को अपने डेटा का ऐक्सेस देने के लिए कहा जाएगा. 'अनुमति दें' पर क्लिक करने के बाद, आपको पुष्टि करने वाले पेज पर रीडायरेक्ट किया जाएगा. इस स्थिति में, अब स्क्रिप्ट आपके Google Analytics डेटा को ऐक्सेस कर सकेगी और इसका इस्तेमाल जारी रखा जा सकेगा.

स्क्रिप्ट चलने के बाद, Google Sheets वाली विंडो पर क्लिक करें. आपको एपीआई से मिला सभी कीवर्ड डेटा दिखेगा या आपको गड़बड़ी के मैसेज वाला एक मैसेज बॉक्स दिखेगा.

स्क्रिप्ट को ऑटोमेट करें

अब आपके पास एक स्क्रिप्ट होनी चाहिए, जो Google Analytics API पर क्वेरी कर रही हो. अब आप हर रात नया डेटा पाने के लिए, इस स्क्रिप्ट को ऑटोमेट कर सकते हैं. Apps Script की मदद से, triggers सुविधा का इस्तेमाल करके ऑटोमेशन को बहुत आसान बनाया जा सकता है.

इस स्क्रिप्ट को ऑटोमेट करने के लिए, नीचे दिया गया तरीका अपनाएं:

  • स्क्रिप्ट एडिटर के टूलबार में, Resources -> All your triggers... पर क्लिक करें
  • Add a new trigger पर क्लिक करें. ट्रिगर डायलॉग बॉक्स दिखेगा.
  • हर रात runDemo तरीके को एक्ज़ीक्यूट करने के लिए, ट्रिगर कॉन्फ़िगर करें
    • Run ड्रॉपडाउन को इस पर सेट किया जाना चाहिए: runDemo
    • Events ड्रॉपडाउन को: Time-driven, Day timer, और Midnight to 1am पर सेट किया जाना चाहिए.

कॉन्फ़िगर किए जाने के बाद यह स्क्रिप्ट हर रात चलती है, जिससे आपको सुबह नया डेटा मिलता है.

अगर रात के समय कोई गड़बड़ी होती है, तो आपको इसकी सूचना दी जाएगी. अगर कोई गड़बड़ी होती है, तो Apps Script की मदद से, आपको ईमेल भेजकर सूचना दी जा सकती है. इसे कॉन्फ़िगर करने के लिए, ट्रिगर डायलॉग बॉक्स में, notifications लिंक पर क्लिक करें. एक नया डायलॉग बॉक्स पॉप-अप होगा. इसकी मदद से, यह कॉन्फ़िगर किया जा सकता है कि किस ईमेल पर गड़बड़ियां भेजी जाएंगी.

नतीजा

आपने अपनी स्क्रिप्ट को रजिस्टर कर लिया है और उसे ऐक्सेस करने की अनुमति दी है. व्यू (प्रोफ़ाइल) आईडी पाने के लिए, आपने मैनेजमेंट एपीआई से कई बार अनुरोध किया है. इसके बाद, आपने व्यू (प्रोफ़ाइल) आईडी का इस्तेमाल करके, Core Reporting API से क्वेरी की और उसे Google Sheets में आउटपुट किया.

ट्यूटोरियल में बताई गई तकनीकों का इस्तेमाल करने से, ज़्यादा मुश्किल विश्लेषण करने, अहम जानकारी पाने, कस्टम डैशबोर्ड बनाने, और मैन्युअल रिपोर्ट चलाने में लगने वाला समय बचता है.

यहां कुछ अन्य शानदार ट्यूटोरियल दिए गए हैं. इनसे आपको Google Analytics API और Google Apps Script का ज़्यादा से ज़्यादा फ़ायदा पाने में मदद मिल सकती है: