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 उस वर्कशीट को अलग डेटा स्रोत के रूप में इस्तेमाल कर सकता है।
1. API कुंजी और स्प्रेडशीट तैयार करें
- NowMetrix में सेटिंग्स → API खोलें और Google Sheets नाम वाली अलग कुंजी बनाएँ।
- कुंजी दिखाई देने पर उसे पूरा कॉपी करें। बाद में इसे दोबारा प्रदर्शित नहीं किया जा सकता।
- जिस वेबसाइट का डेटा निर्यात करना है, उसका ट्रैकर ID नोट करें।
- नई Google Sheet बनाएँ, जैसे NowMetrix Export।
- स्प्रेडशीट का समय क्षेत्र NowMetrix ट्रैकर के समय क्षेत्र के समान रखें।
नीचे दिया गया उदाहरण /v1/overview से पिछली 30 दैनिक पंक्तियाँ निर्यात करता है। प्रत्येक पंक्ति में तारीख, ट्रैकर, ट्रैकर का समय क्षेत्र, पृष्ठदृश्य और विज़िट होते हैं।
2. API कुंजी को स्क्रिप्ट प्रॉपर्टीज़ में रखें
Google Sheet में एक्सटेंशन → Apps Script चुनें। फिर:
- गियर आइकन से प्रोजेक्ट सेटिंग्स खोलें।
- स्क्रिप्ट प्रॉपर्टीज़ के अंतर्गत स्क्रिप्ट प्रॉपर्टी जोड़ें चुनें।
- नीचे दी गई दो प्रॉपर्टीज़ जोड़ें:
| प्रॉपर्टी | मान |
|---|---|
NOWMETRIX_API_KEY |
nm_ से शुरू होने वाली आपकी कुंजी |
NOWMETRIX_TRACKER_ID |
निर्यात किया जाने वाला ट्रैकर ID |
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. स्क्रिप्ट सहेजकर एक बार चलाएँ
- ऊपर बाएँ कोने में प्रोजेक्ट का नाम NowMetrix Google Sheets Export रखें।
- डिस्क आइकन या कीबोर्ड शॉर्टकट से Apps Script प्रोजेक्ट सहेजें।
- संपादक के टूलबार में फ़ंक्शन मेनू से
syncNowMetrixDailyचुनें। - फ़ंक्शन मेनू के पास चलाएँ चुनें।
5. अपने Apps Script प्रोजेक्ट को अधिकृत करें
स्क्रिप्ट पहली बार चलने पर Google अनुमति माँगता है। अनुमतियों की समीक्षा करें चुनें और वह Google खाता चुनें जिसका स्प्रेडशीट पर स्वामित्व है।
निजी, स्वयं बनाए गए Apps Script प्रोजेक्ट के लिए Google ने इस ऐप का सत्यापन नहीं किया है जैसी चेतावनी सामान्य है। Google द्वारा दिखाया गया डेवलपर ईमेल आपका अपना Google खाता होना चाहिए। यह प्रोजेक्ट NowMetrix का Google ऐप नहीं है और NowMetrix को आपके Google खाते की पहुँच नहीं देता।
- पुष्टि करें कि Apps Script प्रोजेक्ट आपने बनाया है और डेवलपर ईमेल आपका है।
- चेतावनी स्क्रीन पर उन्नत चुनें।
- अपने नाम वाले प्रोजेक्ट पर जाएँ। निजी प्रोजेक्ट का सत्यापन न होने के कारण Google इस लिंक को असुरक्षित बता सकता है।
- माँगी गई अनुमतियों की समीक्षा करें और अनुमति दें या जारी रखें चुनें।
| अनुमति | इसकी आवश्यकता क्यों है |
|---|---|
| वर्तमान स्प्रेडशीट की पहुँच | इस Google Sheet में Daily वर्कशीट बनाना या अपडेट करना। |
| बाहरी सेवा से कनेक्ट करना | https://api.nowmetrix.com पर HTTPS अनुरोध भेजना। |
@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 में वर्कशीट का उपयोग करें
- Looker Studio में रिपोर्ट बनाएँ या खोलें।
- डेटा जोड़ें → Google Sheets चुनें।
- स्प्रेडशीट और Daily वर्कशीट चुनें।
- पहली पंक्ति को हेडर के रूप में इस्तेमाल करें और डेटा स्रोत कनेक्ट करें।
- पुष्टि करें कि
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 कुंजी तुरंत निरस्त करें।
समस्या-समाधान
| समस्या | क्या जाँचें |
|---|---|
HTTP 401 |
API कुंजी उपलब्ध नहीं है, अधूरी है, अमान्य है या निरस्त की जा चुकी है। |
HTTP 403 |
API कुंजी को कॉन्फ़िगर किए गए ट्रैकर की पहुँच प्राप्त नहीं है। |
HTTP 429 |
ट्रैकर की API दर सीमा पार हो गई है। ट्रिगर की आवृत्ति कम करें। |
HTTP 503 |
विश्लेषण बैकएंड अस्थायी रूप से उपलब्ध नहीं है। मौजूदा शीट डेटा सुरक्षित रखें और बाद में फिर प्रयास करें। |
| Daily वर्कशीट उपलब्ध नहीं है | syncNowMetrixDaily को मैन्युअल रूप से चलाएँ और Apps Script के निष्पादन विवरण देखें। |
| Google कहता है कि ऐप का सत्यापन नहीं हुआ है | आपकी निजी स्क्रिप्ट के लिए यह सामान्य है। तभी आगे बढ़ें जब प्रोजेक्ट आपने बनाया हो और Google आपका अपना डेवलपर ईमेल दिखाए। |
| Google सभी स्प्रेडशीट की पहुँच माँगता है | रद्द करें, @OnlyCurrentDoc को Code.gs में सबसे ऊपर जोड़ें, सहेजें और फ़ंक्शन फिर चलाएँ। |
| तारीखें गलत दिखाई देती हैं | Google Sheet का समय क्षेत्र API से प्राप्त ट्रैकर के समय क्षेत्र के समान रखें। |