निर्यात · Google Sheets

NowMetrix के मेट्रिक्स Google Sheets में रखें

Google Apps Script का उपयोग करके रोज़ाना का NowMetrix डेटा सुरक्षित रूप से प्राप्त करें, स्प्रेडशीट को तय शेड्यूल पर ताज़ा करें और उसे गणनाओं, साझा करने या Looker Studio रिपोर्ट के लिए उपलब्ध रखें।

कनेक्शन कैसे काम करता है

स्प्रेडशीट ग्राहक के नियंत्रण वाला एक छोटा डेटा सेतु होती है:

NowMetrix REST API → Google Apps Script → Google Sheet → optional Looker Studio report

डेटा Google Analytics में आयात नहीं किया जाता। Apps Script आपकी API कुंजी के साथ चुने गए NowMetrix एंडपॉइंट को अनुरोध भेजता है और प्राप्त पंक्तियों को स्प्रेडशीट में लिखता है। इसके बाद Looker Studio उस वर्कशीट को अलग डेटा स्रोत के रूप में इस्तेमाल कर सकता है।

यह व्यवस्था हर घंटे या रोज़ाना की रिपोर्टिंग के लिए उपयुक्त है। Google Sheets और Looker Studio डेटा को कैश करते हैं, इसलिए न्यूज़रूम की हर सेकंड की निगरानी के लिए NowMetrix डैशबोर्ड का उपयोग करें।

1. API कुंजी और स्प्रेडशीट तैयार करें

  1. NowMetrix में सेटिंग्स → API खोलें और Google Sheets नाम वाली अलग कुंजी बनाएँ।
  2. कुंजी दिखाई देने पर उसे पूरा कॉपी करें। बाद में इसे दोबारा प्रदर्शित नहीं किया जा सकता।
  3. जिस वेबसाइट का डेटा निर्यात करना है, उसका ट्रैकर ID नोट करें।
  4. नई Google Sheet बनाएँ, जैसे NowMetrix Export
  5. स्प्रेडशीट का समय क्षेत्र NowMetrix ट्रैकर के समय क्षेत्र के समान रखें।

नीचे दिया गया उदाहरण /v1/overview से पिछली 30 दैनिक पंक्तियाँ निर्यात करता है। प्रत्येक पंक्ति में तारीख, ट्रैकर, ट्रैकर का समय क्षेत्र, पृष्ठदृश्य और विज़िट होते हैं।

2. API कुंजी को स्क्रिप्ट प्रॉपर्टीज़ में रखें

Google Sheet में एक्सटेंशन → Apps Script चुनें। फिर:

  1. गियर आइकन से प्रोजेक्ट सेटिंग्स खोलें।
  2. स्क्रिप्ट प्रॉपर्टीज़ के अंतर्गत स्क्रिप्ट प्रॉपर्टी जोड़ें चुनें।
  3. नीचे दी गई दो प्रॉपर्टीज़ जोड़ें:
प्रॉपर्टी मान
NOWMETRIX_API_KEY nm_ से शुरू होने वाली आपकी कुंजी
NOWMETRIX_TRACKER_ID निर्यात किया जाने वाला ट्रैकर ID
API कुंजी को कभी भी स्प्रेडशीट सेल, रिपोर्ट पैरामीटर, स्क्रिप्ट के स्रोत, URL या लॉग संदेश में न रखें। स्क्रिप्ट प्रॉपर्टीज़ इसे वर्कशीट से बाहर रखती हैं, लेकिन Apps Script प्रोजेक्ट में संपादन की अनुमति वाले लोगों पर फिर भी भरोसा होना चाहिए।

3. निर्यात स्क्रिप्ट जोड़ें

Code.gs की सामग्री को इस स्क्रिप्ट से बदलें। यह कॉन्फ़िगरेशन की जाँच करती है, स्प्रेडशीट की पहुँच को वर्तमान दस्तावेज़ तक सीमित रखती है, API त्रुटियों को संभालती है और सफल रिस्पॉन्स मिलने के बाद ही वर्कशीट को बदलती है।

/**
 * @OnlyCurrentDoc
 */

const NOWMETRIX_BASE_URL = 'https://api.nowmetrix.com';

function fetchNowMetrix(path) {
  const properties = PropertiesService.getScriptProperties();
  const apiKey = properties.getProperty('NOWMETRIX_API_KEY');
  const trackerId = properties.getProperty('NOWMETRIX_TRACKER_ID');

  if (!apiKey || !trackerId) {
    throw new Error('NOWMETRIX_API_KEY or NOWMETRIX_TRACKER_ID is missing.');
  }

  const separator = path.includes('?') ? '&' : '?';
  const url = NOWMETRIX_BASE_URL
    + path
    + separator
    + 'site=' + encodeURIComponent(trackerId);

  const response = UrlFetchApp.fetch(url, {
    method: 'get',
    headers: {
      Authorization: 'Bearer ' + apiKey,
      Accept: 'application/json'
    },
    muteHttpExceptions: true
  });

  const status = response.getResponseCode();
  const body = response.getContentText();

  if (status < 200 || status >= 300) {
    throw new Error('NowMetrix API returned HTTP ' + status + ': ' + body);
  }

  return JSON.parse(body);
}

function toSheetDate(value) {
  const parts = value.split('-').map(Number);
  return new Date(parts[0], parts[1] - 1, parts[2]);
}

function syncNowMetrixDaily() {
  const result = fetchNowMetrix('/v1/overview?days=30');
  const rows = result.daily.map(day => [
    toSheetDate(day.date),
    result.site,
    result.timezone,
    day.pageviews,
    day.visits
  ]);

  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getSheetByName('Daily')
    || spreadsheet.insertSheet('Daily');
  const values = [
    ['date', 'tracker', 'timezone', 'pageviews', 'visits'],
    ...rows
  ];

  sheet.clearContents();
  sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
  sheet.setFrozenRows(1);
  sheet.getRange(1, 1, 1, values[0].length).setFontWeight('bold');

  if (rows.length > 0) {
    sheet.getRange(2, 1, rows.length, 1).setNumberFormat('yyyy-mm-dd');
    sheet.getRange(2, 4, rows.length, 2).setNumberFormat('#,##0');
  }

  sheet.autoResizeColumns(1, values[0].length);
}

स्रोत में NOWMETRIX_API_KEY को वास्तविक कुंजी से न बदलें। स्क्रिप्ट इसे रनटाइम पर स्क्रिप्ट प्रॉपर्टीज़ से पढ़ती है। सबसे ऊपर @OnlyCurrentDoc रखें: इससे Google आपके खाते की सभी स्प्रेडशीट के बजाय इसी स्प्रेडशीट की पहुँच माँगता है।

4. स्क्रिप्ट सहेजकर एक बार चलाएँ

  1. ऊपर बाएँ कोने में प्रोजेक्ट का नाम NowMetrix Google Sheets Export रखें।
  2. डिस्क आइकन या कीबोर्ड शॉर्टकट से Apps Script प्रोजेक्ट सहेजें।
  3. संपादक के टूलबार में फ़ंक्शन मेनू से syncNowMetrixDaily चुनें।
  4. फ़ंक्शन मेनू के पास चलाएँ चुनें।
डिप्लॉय न चुनें। यह निर्यात वेब ऐप, निष्पादन योग्य API, ऐड-ऑन या लाइब्रेरी नहीं है और इसके लिए किसी डिप्लॉयमेंट की आवश्यकता नहीं है। फ़ंक्शन को सीधे संपादक में चलाएँ।

5. अपने Apps Script प्रोजेक्ट को अधिकृत करें

स्क्रिप्ट पहली बार चलने पर Google अनुमति माँगता है। अनुमतियों की समीक्षा करें चुनें और वह Google खाता चुनें जिसका स्प्रेडशीट पर स्वामित्व है।

निजी, स्वयं बनाए गए Apps Script प्रोजेक्ट के लिए Google ने इस ऐप का सत्यापन नहीं किया है जैसी चेतावनी सामान्य है। Google द्वारा दिखाया गया डेवलपर ईमेल आपका अपना Google खाता होना चाहिए। यह प्रोजेक्ट NowMetrix का Google ऐप नहीं है और NowMetrix को आपके Google खाते की पहुँच नहीं देता।

  1. पुष्टि करें कि Apps Script प्रोजेक्ट आपने बनाया है और डेवलपर ईमेल आपका है।
  2. चेतावनी स्क्रीन पर उन्नत चुनें।
  3. अपने नाम वाले प्रोजेक्ट पर जाएँ। निजी प्रोजेक्ट का सत्यापन न होने के कारण Google इस लिंक को असुरक्षित बता सकता है।
  4. माँगी गई अनुमतियों की समीक्षा करें और अनुमति दें या जारी रखें चुनें।
अनुमति इसकी आवश्यकता क्यों है
वर्तमान स्प्रेडशीट की पहुँच इस Google Sheet में Daily वर्कशीट बनाना या अपडेट करना।
बाहरी सेवा से कनेक्ट करना https://api.nowmetrix.com पर HTTPS अनुरोध भेजना।
यदि डेवलपर ईमेल आपका नहीं है, प्रोजेक्ट आपने नहीं बनाया है या कोड उदाहरण से अलग है, तो रुक जाएँ। यदि Google आपकी सभी स्प्रेडशीट की पहुँच माँगे, तो रद्द करें और जाँचें कि @OnlyCurrentDoc Code.gs में सबसे ऊपर है, फिर सहेजकर फ़ंक्शन दोबारा चलाएँ।

यदि आपने पहले व्यापक स्प्रेडशीट पहुँच को स्वीकृति दे दी है, तो Google खाता → सुरक्षा → तृतीय-पक्ष ऐप्स और सेवाओं के कनेक्शन में प्रोजेक्ट हटाएँ। इसके बाद कम अनुमतियाँ माँगने के लिए सहेजी गई स्क्रिप्ट फिर चलाएँ।

Google इस प्राधिकरण प्रक्रिया और @OnlyCurrentDoc प्रतिबंध को अपनी Apps Script प्राधिकरण मार्गदर्शिका में समझाता है।

6. पहला निर्यात जाँचें

प्राधिकरण के बाद Apps Script का रन जारी रहता है। निष्पादन लॉग में निष्पादन पूरा हुआ दिखने तक प्रतीक्षा करें, फिर स्प्रेडशीट पर लौटकर नई Daily वर्कशीट खोलें। परिणाम कुछ ऐसा दिखना चाहिए:

date tracker timezone pageviews visits
2026-08-22 TRACKER_ID Europe/Zurich 81,240 53,210
2026-08-23 TRACKER_ID Europe/Zurich 77,480 50,195

7. स्वचालित अपडेट शेड्यूल करें

Apps Script में घड़ी आइकन से ट्रिगर खोलें और एक ट्रिगर जोड़ें:

फ़ंक्शन syncNowMetrixDaily
डिप्लॉयमेंट मुख्य
इवेंट स्रोत समय-आधारित
आवृत्ति हर घंटे, या दैनिक रिपोर्ट के लिए इससे कम बार

ट्रिगर उसे बनाने वाले Google खाते के अंतर्गत चलता है। उस खाते को सक्रिय रखें और Apps Script की विफलता सूचनाओं की समीक्षा करें। अनावश्यक रूप से बार-बार अनुरोध न भेजें: NowMetrix सार्वजनिक API वर्तमान में प्रत्येक ट्रैकर के लिए प्रति मिनट 20 अनुरोधों की अनुमति देती है, जो सभी कुंजियों और उपयोगकर्ताओं के बीच साझा होती है।

उदाहरण प्रत्येक सफल रन पर पिछले 30 दिनों की तालिका को बदल देता है। इससे दोहराई गई तारीखें नहीं आतीं और शीट संक्षिप्त रहती है।

8. Looker Studio में वर्कशीट का उपयोग करें

  1. Looker Studio में रिपोर्ट बनाएँ या खोलें।
  2. डेटा जोड़ें → Google Sheets चुनें।
  3. स्प्रेडशीट और Daily वर्कशीट चुनें।
  4. पहली पंक्ति को हेडर के रूप में इस्तेमाल करें और डेटा स्रोत कनेक्ट करें।
  5. पुष्टि करें कि date एक तारीख है और pageviews तथा visits संख्यात्मक मेट्रिक्स हैं।

अब आप समय-श्रृंखला चार्ट, स्कोरकार्ड, तालिकाएँ और pageviews / visits जैसे परिकलित फ़ील्ड बना सकते हैं। Looker Studio इसे अलग डेटा स्रोत के रूप में पढ़ता है; यह NowMetrix के मानों को Google Analytics इवेंट में नहीं बदलता।

Google शेष रिपोर्ट सेटिंग्स को अपनी Google Sheets कनेक्टर मार्गदर्शिका में समझाता है।

अन्य NowMetrix डेटा निर्यात करें

उपयोग का मामला एंडपॉइंट का उदाहरण शीट के लिए सुझाया गया व्यवहार
दैनिक पृष्ठदृश्य और विज़िट /v1/overview?days=30 ट्रैकर और तारीख के आधार पर पंक्तियाँ बदलें या अपडेट करें
कल के शीर्ष पृष्ठ /v1/recap?preset=yesterday&limit=100 दिन में एक बार जोड़ें या वर्तमान परिणाम बदलें
वर्तमान लाइव स्नैपशॉट /v1/realtime रुझान बनाते समय रिस्पॉन्स टाइमस्टैम्प के साथ जोड़ें
वर्तमान ट्रैफ़िक स्रोत /v1/sources रिस्पॉन्स टाइमस्टैम्प के साथ जोड़ें या वर्तमान स्नैपशॉट बदलें
preset=last30 जैसा सारांश पूरे पिछले दायरे के कुल मान रखता है। इन मानों को हर दिन जोड़कर संलग्न न करें। जोड़ने योग्य लेख इतिहास के लिए yesterday जैसी पूरी हो चुकी अवधि निर्यात करें और प्रत्येक पंक्ति के साथ दायरा सहेजें।

सुरक्षा और साझा करने की जाँच-सूची

  • निर्यात के लिए अलग NowMetrix API कुंजी इस्तेमाल करें और केवल आवश्यक ट्रैकर की पहुँच दें।
  • कुंजी को केवल स्क्रिप्ट प्रॉपर्टीज़ या किसी अन्य सर्वर-पक्षीय गुप्त संग्रह में रखें।
  • Google Sheets की पहुँच को इसी दस्तावेज़ तक सीमित रखने के लिए स्क्रिप्ट में @OnlyCurrentDoc रखें।
  • कुंजी को सेल, फ़ॉर्मूला, रिपोर्ट पैरामीटर, URL, स्क्रीनशॉट या लॉग में कभी शामिल न करें।
  • Apps Script प्रोजेक्ट में संपादन की पहुँच सीमित रखें। संपादन की अनुमति वाले लोगों को विश्वसनीय उपयोगकर्ता मानना चाहिए।
  • स्क्रिप्ट को तभी अधिकृत करें जब Google डेवलपर के रूप में आपका अपना खाता दिखाए।
  • प्रत्येक NowMetrix खाते के लिए अलग ग्राहक-स्वामित्व वाली स्प्रेडशीट इस्तेमाल करें।
  • रिपोर्ट प्रकाशित करने से पहले Google Sheet और Looker Studio, दोनों की साझा करने की सेटिंग्स की समीक्षा करें।
  • यदि शीट, स्क्रिप्ट या Google खाते के साथ छेड़छाड़ होने की आशंका हो, तो API कुंजी तुरंत निरस्त करें।
API की पहुँच NowMetrix उपयोगकर्ता को अनुमत ट्रैकर के अनुसार निर्धारित होती है। यह पहुँच हटाने या कुंजी निरस्त करने से आगे के निर्यात रुक जाते हैं, लेकिन Google में पहले से कॉपी किया गया डेटा हटता नहीं है।

समस्या-समाधान

समस्या क्या जाँचें
HTTP 401 API कुंजी उपलब्ध नहीं है, अधूरी है, अमान्य है या निरस्त की जा चुकी है।
HTTP 403 API कुंजी को कॉन्फ़िगर किए गए ट्रैकर की पहुँच प्राप्त नहीं है।
HTTP 429 ट्रैकर की API दर सीमा पार हो गई है। ट्रिगर की आवृत्ति कम करें।
HTTP 503 विश्लेषण बैकएंड अस्थायी रूप से उपलब्ध नहीं है। मौजूदा शीट डेटा सुरक्षित रखें और बाद में फिर प्रयास करें।
Daily वर्कशीट उपलब्ध नहीं है syncNowMetrixDaily को मैन्युअल रूप से चलाएँ और Apps Script के निष्पादन विवरण देखें।
Google कहता है कि ऐप का सत्यापन नहीं हुआ है आपकी निजी स्क्रिप्ट के लिए यह सामान्य है। तभी आगे बढ़ें जब प्रोजेक्ट आपने बनाया हो और Google आपका अपना डेवलपर ईमेल दिखाए।
Google सभी स्प्रेडशीट की पहुँच माँगता है रद्द करें, @OnlyCurrentDoc को Code.gs में सबसे ऊपर जोड़ें, सहेजें और फ़ंक्शन फिर चलाएँ।
तारीखें गलत दिखाई देती हैं Google Sheet का समय क्षेत्र API से प्राप्त ट्रैकर के समय क्षेत्र के समान रखें।