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

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

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


इसके बारे में जानकारी

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

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

खास जानकारी

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

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

  • Google Sheets में Google Analytics API चालू करना
  • Google Analytics API के साथ काम करें

आइए, हर चरण की पूरी जानकारी पाएं.

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

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

  1. 'Google Sheets' फ़ाइल बनाएं. इसे एक अच्छा नाम दें.
  2. नई Apps Script बनाएं.
    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 के साथ काम करना

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

  • अनुमति वाले उपयोगकर्ता का पहला व्यू (प्रोफ़ाइल) फिर से पाएं.
  • डेटा के लिए कोर रिपोर्टिंग एपीआई की क्वेरी करें.
  • डेटा को स्प्रेडशीट में डालें.

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

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 मैनेजमेंट एपीआई से, उपयोगकर्ता के सभी खातों, वेब-प्रॉपर्टी, और व्यू (प्रोफ़ाइल) इकाइयों का ऐक्सेस मिलता है. इनमें से हर इकाई एक क्रम में शामिल होती है. साथ ही, आप अनुमति पा चुके उपयोगकर्ता के लिए, व्यू (प्रोफ़ाइल) आईडी पाने के लिए, क्रम के हिसाब से इस क्रम का इस्तेमाल कर सकते हैं.

हम जो दूसरा फ़ंक्शन लिखेंगे वह मैनेजमेंट एपीआई की हैरारकी को पार करेगा और उपयोगकर्ता के पहले व्यू (प्रोफ़ाइल) की जानकारी देगा. अपने 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 ब्लॉक इस गड़बड़ी का पता लगा लेगा और उपयोगकर्ता को मैसेज प्रिंट कर देगा.

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

डेटा के लिए कोर रिपोर्टिंग एपीआई की क्वेरी करें.

व्यू (प्रोफ़ाइल) आईडी मिलने के बाद, Google Analytics रिपोर्ट डेटा के लिए, वेबसाइट रिपोर्टिंग एपीआई का इस्तेमाल किया जा सकता है. इस सेक्शन में, आप 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 तरीके का इस्तेमाल करके कोर रिपोर्टिंग एपीआई क्वेरी बनाई जाती है. इस तरीके में कई ऐसे पैरामीटर शामिल किए जाते हैं जो वापस पाने के लिए रिपोर्ट का टाइप बताते हैं. हर कोर रिपोर्टिंग एपीआई क्वेरी में ज़रूरी और वैकल्पिक पैरामीटर का एक सेट होता है. ज़रूरी पैरामीटर को पैरामीटर के तौर पर पास किया जाता है. हालांकि, वैकल्पिक पैरामीटर को ऑब्जेक्ट के तौर पर पास किया जाता है.

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

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

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

हमारी स्क्रिप्ट में आखिरी चरण में, कोर रिपोर्टिंग एपीआई से मिले नतीजों को 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 लिंक पर क्लिक करें. एक नया डायलॉग बॉक्स पॉप-अप होगा और आप यह कॉन्फ़िगर कर सकेंगे कि आप किस ईमेल पर गड़बड़ियां भेजना चाहते हैं.

नतीजा

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

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

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