गूगल ट्रेंड्स ट्रैकर को पाइपड्रीम पर कैसे प्राप्त करें?

Advanced Data Extraction Specialist
डिजिटल मार्केटिंग, एसईओ, और उभरते ट्रेंड विश्लेषण के क्षेत्र में, Google Trends में परिवर्तनों के साथ अद्यतित रहना आवश्यक है। हालाँकि, कीवर्ड ट्रेंड डेटा की मैन्युअल रूप से जाँच करना और संग्रह करना समय-खपत करने वाला, त्रुटियों से भरा और अप्रभावी है। इसे हल करने के लिए, हमने एक स्वचालित रिपोर्टिंग सिस्टम बनाया है जो Pipedream, Scrapeless API, और Discord Webhook को एकीकृत करता है ताकि इस पूरे प्रक्रिया को सुव्यवस्थित किया जा सके—कीवर्ड संग्रहण और डेटा प्रसंस्करण से लेकर परिणाम वितरण तक।
यह लेख आपको इस स्वचालित प्रणाली के घटकों और कार्यान्वयन के बारे में विस्तार से बताएगा।
कुंजी विशेषताएँ
-
स्वचालित कीवर्ड ट्रेंड विश्लेषण: Scrapeless का उपयोग करके पिछले महीने के लिए ट्रेंड डेटा लाता है।
-
स्मार्ट स्कोरिंग और प्रसंस्करण: प्रत्येक कीवर्ड के लिए औसत लोकप्रियता और ट्रेंड उतार-चढ़ाव अपने आप गणना करता है।
-
दृश्य विश्लेषणात्मक रिपोर्ट: दृश्यात्मक के साथ संरचित रिपोर्ट बनाता है और उन्हें सीधे Discord पर भेजता है।
पूर्वापेक्षाएँ
- Scrapeless पर पंजीकरण करें और अपना एपीआई की प्राप्त करें।
- अपना एपीआई टोकन खोजें और इसे बाद में उपयोग के लिए कॉपी करें।
⚠️ नोट: अपने एपीआई टोकन को सुरक्षित रखें और इसे दूसरों के साथ साझा न करें।
- Pipedream में लॉग इन करें
- नया वर्कफ़्लो बनाने के लिए "+ New Workflow" पर क्लिक करें।
Google Trends स्वचालित रिपोर्टिंग सिस्टम कैसे बनाएँ (Pipedream + Scrapeless + Discord)
वर्कफ़्लो संरचना
स्टेप नाम | प्रकार | फ़ंक्शन |
---|---|---|
trigger |
शेड्यूल | निर्धारित समय पर वर्कफ़्लो को सक्रिय करता है (जैसे, हर घंटे) |
http |
Node.js कोड | Scrapeless को स्क्रैपिंग कार्य भेजता है और परिणाम लाता है |
code_step |
Node.js कोड | स्क्रैप किए गए डेटा को पार्स और प्रोसेस करता है |
discord_notify |
Node.js कोड | वेबहुक के माध्यम से Discord पर विश्लेषण के परिणाम भेजता है |
स्टेप 1: अनुसूचित ट्रिगर
ट्रिगर प्रकार के रूप में शेड्यूल चुनें और ट्रिगर समय सेट करें ताकि यह वर्कफ़्लो हर रविवार को UTC समय 16:00 पर स्वतः निष्पादित हो।
स्टेप 2 - http (Scrapeless से कीवर्ड ट्रेंड को क्रॉल करने के लिए अनुरोध करना)
- एक Node.js कोड स्टेप जोड़ें। Scrapeless API कॉल लॉजिक को एकीकृत करने का निम्नलिखित कोड उदाहरण है
import { axios } from "@pipedream/platform"
export default defineComponent({
async run({ steps, $ }) {
const keywords = ["AI", "Machine Learning", "Data Science"];
const allResults = {};
for (const keyword of keywords) {
console.log(`प्रसंस्करण कीवर्ड: ${keyword}`);
const payload = {
actor: "scraper.google.trends",
input: {
q: keyword,
date: "today 1-m",
data_type: "interest_over_time",
hl: "en",
tz: "420",
geo: "",
cat: "",
property: "",
},
proxy: {
country: "",
}
};
try {
const response = await axios($, {
method: 'POST',
url: 'https://api.scrapeless.com/api/v1/scraper/request',
headers: {
'Content-Type': 'application/json',
'x-api-token': 'Scrapeless API KEY'
},
data: payload
});
console.log(`प्रतिक्रिया ${keyword} के लिए:`, response);
if (response.job_id) {
console.log(`नौकरी बनाई गई ${keyword} के लिए, आईडी: ${response.job_id}`);
let attempts = 0;
const maxAttempts = 12;
let jobResult = null;
while (attempts < maxAttempts) {
await new Promise(resolve => setTimeout(resolve, 10000));
attempts++;
try {
const resultResponse = await axios($, {
method: 'GET',
url: `https://api.scrapeless.com/api/v1/scraper/result/${response.job_id}`,
headers: {
'x-api-token': 'Scrapeless API KEY'
}
});
console.log(`कोशिश ${attempts} ${keyword} के लिए:`, resultResponse);
if (resultResponse.status === 'completed') {
jobResult = resultResponse.result;
javascript
console.log(`काम पूरा हुआ ${keyword} के लिए:`, jobResult);
break;
} else if (resultResponse.status === 'failed') {
console.error(`काम विफल हुआ ${keyword} के लिए:`, resultResponse);
break;
} else {
console.log(`काम अभी भी चल रहा है ${keyword} के लिए, स्थिति: ${resultResponse.status}`);
}
} catch (error) {
console.error(`काम की स्थिति की जांच करते समय त्रुटि ${keyword} के लिए:`, error);
}
}
if (jobResult) {
allResults[keyword] = jobResult;
} else {
allResults[keyword] = {
error: `काम टाइमआउट या ${attempts} प्रयासों के बाद विफल`,
job_id: response.job_id
};
}
} else {
allResults[keyword] = response;
}
} catch (error) {
console.error(`त्रुटि ${keyword} के लिए:`, error);
allResults[keyword] = {
error: `अनुरोध विफल: ${error.message}`
};
}
}
console.log("अंतिम परिणाम:", JSON.stringify(allResults, null, 2));
return allResults;
},
})
नोट:
- यह चरण Scrapeless के
scraper.google.trends
अभिनेता का उपयोग करता है ताकि प्रत्येक कीवर्ड के लिए "interest_over_time" डेटा प्राप्त किया जा सके। - डिफ़ॉल्ट कीवर्ड हैं:
["AI", "Machine Learning", "Data Science"]
। आप इन्हें आवश्यकतानुसार बदल सकते हैं। YOUR_API_TOKEN
को अपने वास्तविक API टोकन के साथ बदलें।
चरण 3 - कोड_चरण (क्रॉल की गई डेटा को प्रोसेस करना)
- एक और Node.js कोड चरण जोड़ें। यहाँ कोड का उदाहरण है
export default defineComponent({
async run({ steps, $ }) {
const httpData = steps.http.$return_value;
console.log("प्राप्त HTTP डेटा:", JSON.stringify(httpData, null, 2));
const processedData = {};
const timestamp = new Date().toISOString();
for (const [keyword, data] of Object.entries(httpData)) {
console.log(`प्रोसेसिंग ${keyword}:`, data);
let timelineData = null;
let isPartial = false;
if (data?.interest_over_time?.timeline_data) {
timelineData = data.interest_over_time.timeline_data;
isPartial = data.interest_over_time.isPartial || false;
} else if (data?.timeline_data) {
timelineData = data.timeline_data;
} else if (data?.interest_over_time && Array.isArray(data.interest_over_time)) {
timelineData = data.interest_over_time;
}
if (timelineData && Array.isArray(timelineData) && timelineData.length > 0) {
console.log(`कुल ${timelineData.length} डेटा बिंदु पाए गए ${keyword} के लिए`);
const values = timelineData.map(item => {
const value = item.value || item.interest || item.score || item.y || 0;
return parseInt(value) || 0;
});
const validValues = values.filter(v => v >= 0);
if (validValues.length > 0) {
const average = Math.round(validValues.reduce((sum, val) => sum + val, 0) / validValues.length);
const trend = validValues.length >= 2 ? validValues[validValues.length - 1] - validValues[0] : 0;
const max = Math.max(...validValues);
const min = Math.min(...validValues);
const recentValues = validValues.slice(-7);
const earlyValues = validValues.slice(0, 7);
const recentAvg = recentValues.length > 0 ? recentValues.reduce((a, b) => a + b, 0) / recentValues.length : 0;
const earlyAvg = earlyValues.length > 0 ? earlyValues.reduce((a, b) => a + b, 0) / earlyValues.length : 0;
const weeklyTrend = Math.round(recentAvg - earlyAvg);
processedData[keyword] = {
keyword,
average,
trend,
weeklyTrend,
values: validValues,
max,
min,
dataPoints: validValues.length,
isPartial,
timestamps: timelineData.map(item => item.time || item.date || item.timestamp),
lastValue: validValues[validValues.length - 1],
firstValue: validValues[0],
volatility: Math.round(Math.sqrt(validValues.map(x => Math.pow(x - average, 2)).reduce((a, b) => a + b, 0) / validValues.length)),
status: 'सफलता'
};
} else {
processedData[keyword] = {
keyword,
average: 0,
trend: 0,
weeklyTrend: 0,
values: [],
max: 0,
min: 0,
dataPoints: 0,
isPartial: false,
error: "समयरेखा डेटा में कोई मान्य मान नहीं मिला",
status: 'त्रुटि',
rawTimelineLength: timelineData.length
};
}
} else {
processedData[keyword] = {
कीवर्ड,
औसत: 0,
प्रवृत्ति: 0,
साप्ताहिक प्रवृत्ति: 0,
मान: [],
अधिकतम: 0,
न्यूनतम: 0,
डेटा बिंदु: 0,
आंशिक है: गलत,
त्रुटि: "कोई टाइमलाइन डेटा नहीं मिला",
स्थिति: 'त्रुटि',
उपलब्ध कुंजियाँ: डेटा ? ऑब्जेक्ट कीज (डेटा) : []
};
}
}
संक्षेपण = {
समयस्टाम्प,
कुल कीवर्ड: ऑब्जेक्ट कीज (प्रोसेस डेटा).लंबाई,
सफल कीवर्ड: ऑब्जेक्ट वैल्यूज (प्रोसेस डेटा).फिल्टर(d => d.स्थिति === 'सफलता').लंबाई,
अवधि: "आज 1-म",
डेटा: प्रोसेस डेटा
};
कंसोल.log("अंतिम प्रोसेस किया हुआ डेटा:", JSON.stringify(संक्षेपण, null, 2));
लौटाएँ संक्षेपण;
},
})
---
यह स्क्रैपलेस द्वारा लौटाए गए डेटा के आधार पर निम्नलिखित मीट्रिक की गणना करेगा:
* **औसत मूल्य**
* **साप्ताहिक प्रवृत्ति में बदलाव** (अंतिम 7 दिन बनाम पिछले 7 दिन)
* **अधिकतम / न्यूनतम मान**
* **अस्थिरता**
**नोट:**
* प्रत्येक कीवर्ड एक विस्तृत विश्लेषण ऑब्जेक्ट उत्पन्न करेगा, जिससे दृश्यता और आगे की सूचनाओं के लिए आसान हो जाएगा।
### चरण 4 - डिस्कॉर्ड_नोटिफाई (विश्लेषण रिपोर्ट को डिस्कॉर्ड में पुश करें)

1. अंतिम Node.js चरण जोड़ें, निम्नलिखित कोड उदाहरण है
import { axios } from "@pipedream/platform"
export default defineComponent({
async run({ steps, $ }) {
const प्रोसेस डेटा = steps.Code_step.$return_value;
const डिस्कॉर्डवेबहुकयूआरएल = "https://discord.com/api/webhooks/1380448411299614821/MXzmQ14TOPK912lWhle_7qna2VQJBjWrdCkmHjdEloHKhYXw0fpBrp-0FS4MDpDB8tGh";
कंसोल.log("डिस्कॉर्ड के लिए डेटा प्रोसेसिंग:", JSON.stringify(प्रोसेस डेटा, null, 2));
const वर्तमान दिनांक = नया तारीख().toLocaleString('en-US');
const कीवर्ड = ऑब्जेक्ट वैल्यूज (प्रोसेस डेटा.डेटा);
const सफल = कीवर्ड.फिल्टर(k => k.स्थिति === 'सफलता');
let सबसे अच्छा प्रदर्शन करने वाला = शून्य;
let सबसे खराब प्रदर्शन करने वाला = शून्य;
let सबसे मजबूत प्रवृत्ति = शून्य;
यदि (सफल.लंबाई > 0) {
सबसे अच्छा प्रदर्शन करने वाला = सफल.घटा (अधिकतम, वर्तमान) => वर्तमान.औसत > अधिकतम.औसत ? वर्तमान : अधिकतम);
सबसे खराब प्रदर्शन करने वाला = सफल.घटा (न्यूनतम, वर्तमान) => वर्तमान.औसत < न्यूनतम.औसत ? वर्तमान : न्यूनतम);
सबसे मजबूत प्रवृत्ति = सफल.घटा (अधिकतम, वर्तमान) => Math.abs(वर्तमान.साप्ताहिक प्रवृत्ति) > Math.abs(अधिकतम.साप्ताहिक प्रवृत्ति) ? वर्तमान : अधिकतम);
}
const डिस्कॉर्ड संदेश = {
सामग्री: `📊 **गूगल ट्रेंड्स रिपोर्ट** - ${वर्तमान दिनांक}`,
एम्बेड्स: [
{
शीर्षक: "🔍 प्रवृत्तियों का विश्लेषण",
रंग: 3447003,
समयस्टाम्प: नया दिनांक().toISOString(),
क्षेत्र: [
{
नाम: "📈 संक्षेपण",
मान: `**अवधि:** पिछले महीने\n**विश्लेषित कीवर्ड:** ${प्रोसेस डेटा.कुल कीवर्ड}\n**सफलता:** ${प्रोसेस डेटा.सफल कीवर्ड}/${प्रोसेस डेटा.कुल कीवर्ड}`,
अंतर्निहित: गलत
}
]
}
]
};
यदि (सफल.लंबाई > 0) {
const कीवर्ड विवरण = सफल.मानचित्र (डेटा => {
const प्रवृत्ति आइकन = डेटा.साप्ताहिक प्रवृत्ति > 5 ? '🚀' :
डेटा.साप्ताहिक प्रवृत्ति > 0 ? '📈' :
डेटा.साप्ताहिक प्रवृत्ति < -5 ? '📉' :
डेटा.साप्ताहिक प्रवृत्ति < 0 ? '⬇️' : '➡️';
const प्रदर्शन आइकन = डेटा.औसत > 70 ? '🔥' :
डेटा.औसत > 40 ? '✅' :
डेटा.औसत > 20 ? '🟡' : '🔴';
लौटाना {
नाम: `${प्रदर्शन आइकन} ${डेटा.कीवर्ड}`,
मान: `**स्कोर:** ${डेटा.औसत}/100\n**प्रवृत्ति:** ${प्रवृत्ति आइकन} ${डेटा.साप्ताहिक प्रवृत्ति > 0 ? '+' : ''}${डेटा.साप्ताहिक प्रवृत्ति}\n**रेंज:** ${डेटा.न्यूनतम}-${डेटा.अधिकतम}`,
अंतर्निहित: सच
};
});
डिस्कॉर्ड संदेश.एम्बेड्स[0].क्षेत्र.push(...कीवर्ड विवरण);
}
यदि (सबसे अच्छा प्रदर्शन करने वाला && सफल.लंबाई > 1) {
डिस्कॉर्ड संदेश.एम्बेड्स.push({
शीर्षक: "🏆 कुंजी हाइलाइट",
रंग: 15844367,
क्षेत्र: [
{
नाम: "🥇 शीर्ष प्रदर्शन करने वाला",
मान: `**${सबसे अच्छा प्रदर्शन करने वाला.कीवर्ड}** (${सबसे अच्छा प्रदर्शन करने वाला.औसत}/100)`,
अंतर्निहित: सच
},
{
नाम: "📊 सबसे कम स्कोर",
मान: `**${सबसे खराब प्रदर्शन करने वाला.कीवर्ड}** (${सबसे खराब प्रदर्शन करने वाला.औसत}/100)`,
अंतर्निहित: सच
},
{
नाम: "⚡ सबसे मजबूत प्रवृत्ति",
मान: `**${सबसे मजबूत प्रवृत्ति.कीवर्ड}** (${सबसे मजबूत प्रवृत्ति.साप्ताहिक प्रवृत्ति > 0 ? '+' : ''}${सबसे मजबूत प्रवृत्ति.साप्ताहिक प्रवृत्ति})`,
अंतर्निहित: सच
}
]
});
}
const असफल = कीवर्ड.फिल्टर(k => k.स्थिति === 'त्रुटि');
यदि (असफल.लंबाई > 0) {
डिस्कॉर्ड संदेश.एम्बेड्स.push({
शीर्षक: "❌ त्रुटियाँ",
रंग: 15158332,
क्षेत्र: असफल.मानचित्र (डेटा => ({
नाम: डेटा.कीवर्ड,
मान: डेटा.त्रुटि || "अज्ञात त्रुटि",
अंतर्निहित: सच
}))
});
javascript
}
console.log("डिस्कॉर्ड संदेश भेजने के लिए:", JSON.stringify(discordMessage, null, 2));
try {
const response = await axios($, {
method: 'POST',
url: discordWebhookUrl,
headers: {
'Content-Type': 'application/json'
},
data: discordMessage
});
console.log("डिस्कॉर्ड वेबहुक प्रतिक्रिया:", response);
return {
webhook_sent: true,
platform: "discord",
message_sent: true,
keywords_analyzed: processedData.totalKeywords,
successful_keywords: processedData.successfulKeywords,
timestamp: currentDate,
discord_response: response
};
} catch (error) {
console.error("डिस्कॉर्ड वेबहुक त्रुटि:", error);
const simpleMessage = {
content: `📊 **गूगल ट्रेंड रिपोर्ट - ${currentDate}**\n\n` +
`📈 **परिणाम (${processedData.successfulKeywords}/${processedData.totalKeywords}):**\n` +
successful.map(data =>
`• **${data.keyword}**: ${data.average}/100 (${data.weeklyTrend > 0 ? '+' : ''}${data.weeklyTrend})`
).join('\n') +
(failed.length > 0 ? `\n\n❌ **त्रुटियाँ:** ${failed.map(d => d.keyword).join(', ')}` : '')
};
try {
const fallbackResponse = await axios($, {
method: 'POST',
url: discordWebhookUrl,
headers: {
'Content-Type': 'application/json'
},
data: simpleMessage
});
return {
webhook_sent: true,
platform: "discord",
message_sent: true,
fallback_used: true,
discord_response: fallbackResponse
};
} catch (fallbackError) {
console.error("डिस्कॉर्ड फॉलबैक त्रुटि:", fallbackError);
return {
webhook_sent: false,
platform: "discord",
error: error.message,
fallback_error: fallbackError.message,
data_summary: {
keywords: processedData.totalKeywords,
successful: processedData.successfulKeywords,
best_performer: bestPerformer?.keyword,
best_score: bestPerformer?.average
}
};
}
}
},
})
- अपना वेबहुक पता डालें
- अपने वर्कफ़्लो को चलाने और वास्तविक समय की जानकारी प्राप्त करने के लिए डिप्लॉय पर क्लिक करें।
चरण 5 - वास्तविक समय की गूगल ट्रेंड्स जानकारी प्राप्त करें
आप सीधे डिस्कॉर्ड में कीवर्ड की जाँच करने के लिए डेटा प्राप्त कर सकते हैं:

नीचे पूरा लिंक आरेख हैः

✅ अभी लाइव: Pipedream पर Scrapeless आधिकारिक इंटीग्रेशन
Scrapeless अब Pipedream के इंटीग्रेशन हब पर आधिकारिक रूप से उपलब्ध है! बस कुछ क्लिक के साथ, आप अपने Pipedream वर्कफ़्लोज़ से सीधे हमारे शक्तिशाली गूगल ट्रेंड्स API को कॉल कर सकते हैं—कोई सेटअप, कोई सर्वर आवश्यक नहीं।
चाहे आप वास्तविक समय के डैशबोर्ड बना रहे हों, मार्केटिंग इंटेलिजेंस को स्वचालित कर रहे हों, या कस्टम एनालिटिक्स को शक्ति प्रदान कर रहे हों, यह इंटीग्रेशन आपको उत्पादन-गुणवत्ता वाले ट्रेंड मॉनिटरिंग के लिए सबसे तेज़ मार्ग देता है।
👉 तुरंत बनाना शुरू करें: pipedream.com/apps/scrapeless
अपनी अगली ट्रेंड-संचालित कार्यप्रवाह को ड्रैग, ड्रॉप, और डिप्लॉय करें—आज ही।
डेवलपर्स, एनालिस्टों और विकास टीमों के लिए जो तेजी से कार्रवाई योग्य अंतर्दृष्टि की आवश्यकता होती है।
सारांश
Pipedream, Scrapeless API और Discord के शक्तिशाली संयोजन के माध्यम से, हमने एक गूगल ट्रेंड्स रिपोर्टिंग सिस्टम बनाया है जिसे मैन्युअल हस्तक्षेप की आवश्यकता नहीं है और यह स्वचालित रूप से दैनिक रूप से निष्पादित होता है। इससे न only केवल कार्य दक्षता में बहुत सुधार होता है, बल्कि मार्केटिंग निर्णय भी अधिक डेटा-आधारित बनते हैं।
यदि आपको भी इसी तरह का डेटा स्वचालन विश्लेषण सिस्टम बनाना है, तो आप इस तकनीकी संयोजन का प्रयास कर सकते हैं!
Scrapeless सभी लागू कानूनों और विनियमों के पूर्ण अनुपालन में कार्य करता है, केवल प्लेटफ़ॉर्म की सेवा की शर्तों के अनुसार सार्वजनिक रूप से उपलब्ध डेटा को ही एक्सेस करता है। यह समाधान वैध व्यापारिक बुद्धिमत्ता और शोध उद्देश्यों के लिए डिज़ाइन किया गया है।
स्क्रैपलेस में, हम केवल सार्वजनिक रूप से उपलब्ध डेटा का उपयोग करते हैं, जबकि लागू कानूनों, विनियमों और वेबसाइट गोपनीयता नीतियों का सख्ती से अनुपालन करते हैं। इस ब्लॉग में सामग्री केवल प्रदर्शन उद्देश्यों के लिए है और इसमें कोई अवैध या उल्लंघन करने वाली गतिविधियों को शामिल नहीं किया गया है। हम इस ब्लॉग या तृतीय-पक्ष लिंक से जानकारी के उपयोग के लिए सभी देयता को कोई गारंटी नहीं देते हैं और सभी देयता का खुलासा करते हैं। किसी भी स्क्रैपिंग गतिविधियों में संलग्न होने से पहले, अपने कानूनी सलाहकार से परामर्श करें और लक्ष्य वेबसाइट की सेवा की शर्तों की समीक्षा करें या आवश्यक अनुमतियाँ प्राप्त करें।