सामग्री पर जाएं
CranSEO
CranSEOसाइन अप करें

DataForSEO बनाम केवल लिंक API: आपकी R पाइपलाइन में क्या बदलाव आते हैं

एक काल्पनिक पाइपलाइन का चरण-दर-चरण टियरडाउन। हम सूचीबद्ध करते हैं कि क्या बदलता है, क्या स्थिर रहता है, और स्रोत को केवल लिंक्स तक सीमित करने पर आपको क्या खो जाता है।

CranSEO रिसर्च टीम ·

पाइपलाइन चयनों का प्रतिनिधित्व करने वाली कोहरा जंगल में दो विचलित रेलवे ट्रैक

पाइपलाइन, चरण-दर-चरण

01

प्रमाणीकरण

हमारा कुंजी एक क्वेरी पैरामीटर या एक Authorization Bearer हेडर के रूप में यात्रा करता है। मुफ्त कार्रवाई के लिए किसी की आवश्यकता नहीं होती है, इसलिए नोटबुक के पहले सेल किसी भी व्यक्ति के लिए चलाए जा सकते हैं।

02

अनुरोध

प्रत्येक क्रिया के लिए एक GET, डोमेन के लिए q के साथ। पेजिंग page और per (10 से 5000) का उपयोग करती है, सॉर्टिंग sort और order का उपयोग करती है।

03

पार्स

प्रत्येक प्रतिक्रिया JSON होती है जिसमें एक ok फ़ील्ड होता है। प्रमाणीकृत प्रतिक्रियाओं में _credits जोड़ा जाता है, जो लागत और शेष बाले बैलेंस को दर्शाता है।

04

स्टोर

टिबल और स्नैपशॉट तारीख को एक साथ लिखें। ग्राफ़ लगभग मासिक रूप से रिफ्रेश होता है, इसलिए तारीख डेटा का हिस्सा है।

05

रिपोर्ट

लाइव कॉल से नहीं, बल्कि संग्रहीत फ़ाइल से रेंडर करें, ताकि क्वार्टो दस्तावेज कल भी वही चार्ट दे।

आपको क्या मिलता है और आप क्या त्यागते हैं

चिंताकेवल-लिंक APIविस्तृत प्रदाता
स्कोपबैकलिंक्स, रेफरिंग डोमेन, एंकर, टॉप पेज, DRआमतौर पर SERP और कीवर्ड डेटा जोड़ता है
बिलिंगप्रति कॉल, 1 क्रेडिट = $0.0001, कोई सब्सक्रिप्शन नहींअपनी खुद की प्राइस लिस्ट जांचें
ताजगीलगभग मासिक रिफ्रेशअपनी खुद की दस्तावेज़ीकरण जांचें
प्रति कॉल पंक्तियाँ1,000 तक, एक बार बिल किया गयाएंडपॉइंट के अनुसार भिन्न
विफलता संकेतHTTP 401 खराब कुंजी, HTTP 402 क्रेडिट नहींभिन्न
स्टील बीम को आसानी से उठाती क्रेन बनाम दक्षता दिखाने के लिए संघर्ष करती छोटी टूल

इस प्रकार की पाइपलाइन में सबसे अधिक लागत वाला गलती

अधिकांश पाइपलाइन कोड की तुलना में पैसे में विफल होती हैं। एक लूप जो प्रत्येक पंक्ति के लिए एक एंडपॉइंट को कॉल करता है, एक सस्ते काम को महंगा बना देता है।

हमारे साथ, एक कॉल 10 पंक्तियों या 1,000 पंक्तियों के लिए समान लागत वाली होती है, इसलिए नियम उलट जाता है: आप जिस बड़े पेज का उपयोग कर सकते हैं, उसे मांगें। per को 1000 पर सेट करें, अपनी आवश्यकता के अनुसार सॉर्ट करें, और जब प्रश्न का उत्तर मिल जाए तो पेजिंग रोक दें।

गहरी पेजिंग 50,000 पंक्तियों तक सीमित है, जो उन विश्लेषकों के लिए एक सुविधा है जो सब कुछ खींचने के लिए उत्सुक हैं। यदि किसी डोमेन में उससे अधिक लिंक हैं, तो आप शायद toppages या anchors चाहते हैं।

जश्न मनाने से पहले अपनी पुरानी लूप की खर्च की तुलना सिंगल-कॉल संस्करण से करें। कभी-कभी बचत शून्य होती है क्योंकि पुराना प्रदाता पहले से ही प्रति अनुरोध बिल करता था।

इस टियरडाउन पर निर्णय

केवल तभी स्रोत को संकीर्ण करें यदि रिपोर्ट संकीर्ण है

यदि आपकी टिबल में अधिकांश कॉलम लिंक हैं, तो एक केवल-लिंक API पार्सिंग कोड और लागत को हटा देता है। यदि आधे कॉलम SERP डेटा हैं, तो अपने वर्तमान प्रदाता को रखें और बाकी के लिए हमारा जोड़ें।

  • मुफ्त कार्रवाई पर डेमो सेल बनाए रखें
  • आउटपुट में स्नैपशॉट तारीख को पिन करें
  • मासिक लय की उम्मीद करें, दैनिक नहीं

टियरडाउन से प्रश्न

क्या मुझे अपनी पूरी पाइपलाइन को फिर से लिखना होगा?

नहीं। केवल लिंक चरण को बदलें। अपनी SERP और कीवर्ड चरणों को जहां वे हैं, रखें, लिंक टिबल को अपनी फ़ाइल में लिखें, और डोमेन कॉलम पर नीचे दो को जोड़ें।

क्या ब्राउज़र नोटबुक के लिए CORS खुला है?

हाँ। CORS खुला है, इसलिए एक Shiny ऐप या एक Observable सेल मुफ्त कार्रवाई को सीधे कॉल कर सकता है। भुगतान वाले कुंजी को सर्वर-साइड रखें, क्योंकि ब्राउज़र कोड में कुछ भी आगंतुकों द्वारा पढ़ा जा सकता है।

मैं सस्ते में विफलता हैंडलिंग का परीक्षण कैसे करूं?

HTTP 401 देखने के लिए जानबूझकर गलत कुंजी भेजें बिना कुछ खर्च किए। HTTP 402 केवल तभी दिखाई देता है जब बैलेंस खाली हो, इसलिए इसे अपने परीक्षणों में मोक करें बजाय क्रेडिट खाली किए।

क्या कुल योग किसी अन्य प्रदाता से बिल्कुल मेल खाएगा?

नहीं। हर प्रदाता अलग तरह से क्रॉल करता है और अपनी खुद की शेड्यूल पर रिफ्रेश करता है। परिमाण और रुझानों की तुलना करें, और DR को एक अलग, इनहाउस लॉ-स्केल मेट्रिक के रूप में मानें।

त्रुटियां, रीट्राइज और वे विफलताएं जिनकी योजना बनाई जा सकती है

विफलताएं वह जगह हैं जहां एक केवल-लिंक पाइपलाइन और एक विस्तृत पाइपलाइन सबसे अधिक समान दिखते हैं। कोड वहां अधूरा छोड़ दिया जाता है। विफलता पथों की तुलना में डालें, क्योंकि एक dataforseo बनाम केवल-लिंक निर्णय तब अलग दिखता है जब त्रुटियां सामने हों।

HTTP 401 और HTTP 402 हैंडल करने के लिए दो हैं

दो स्टेटस कोड सबसे ज्यादा मायने रखते हैं। HTTP 401 का मतलब है कि कुंजी गायब है या गलत है, और समाधान आपके कॉन्फ़िगरेशन में रहता है न कि आपके डेटा में। HTTP 402 का मतलब है कि क्रेडिट बैलेंस खत्म हो गया है, और समाधान अकाउंट पेज से टॉप-अप है, न कि कोड बदलाव।

दोनों को स्पष्ट शाखाओं के रूप में लिखें। एक सामान्य कैच जो स्टेटस को निगल लेता है और एक खाली टेबल लिखता है, वह एक सilent आंशिक खींचने का तरीका है।

टाइमआउट और आंशिक फ़ाइलें

एक टाइमआउट एक स्टेटस कोड नहीं है, इसलिए आपको अपने कोड को इसे एक विफलता के रूप में मानना चाहिए। कॉल को ऐसे घेरें कि टाइमआउट किसी आउटपुट लिखे जाने से पहले रन को रोक दे।

सफलता पर एक अस्थायी फ़ाइल में लिखें और उसे रीनेम करें। एक आधा-लिखी गई फ़ाइल जो पूरी दिखती है, एक विच्छिन्न रन का सबसे बुरा परिणाम है, क्योंकि कोई भी इसे सवाल करने के बारे में नहीं सोचता।

रीट्राइज और पेसिंग

यह पेज प्रति-सेकंड रिक्वेस्ट की संख्या नहीं बताता है, इसलिए पाइपलाइन को साइकिल के कॉल्स द्वारा आकार दें। वह संख्या लागत को चलाती है, और वही आप नियंत्रित करते हैं।

केवल नेटवर्क त्रुटियों को रीट्राई करें, प्रयासों के बीच एक विराम के साथ। कभी भी 401 या 402 को रीट्राई न करें, क्योंकि प्रत्येक अगली बार समान तरीके से विफल हो जाएगा।

परीक्षणों के दौरान कुंजी कहाँ रहती है

कुंजी को अपने मशीन पर एक एनवायरनमेंट वेरिएबल में और CI सीक्रेट स्टोर में रखें, कभी भी उस फ़ाइल में नहीं जिसे टेस्ट पढ़ते हैं। मुफ्त कार्रवाई को कुंजी की आवश्यकता नहीं है, इसलिए पहला टेस्ट रन किसी भी व्यक्ति के लिए सुरक्षित है जो प्रोजेक्ट क्लोन करता है।

हर पाइपलाइन से उसी सवाल पूछें जिसमें आप छूते हैं: कुंजी को कौन पढ़ सकता है, और यह कहाँ लिखी गई है? एक कुंजी जो लॉग फ़ाइल में दिखाई देती है, एक लीक है, भले ही नोटबुक स्वयं निजी हो।

प्रत्येक कॉल की लागत लॉगिंग

प्रमाणीकृत कॉल से प्रत्येक प्रतिक्रिया में क्रेडिट्स फ़ील्ड होता है, जो लागत और शेष बचे बैलेंस को दर्शाता है। इसे टाइमस्टैम्प और एक्शन नाम के बगौर अपने लॉग में कॉपी करें, ताकि एक लागत प्रश्न को फ़ाइल से न कि मेमोरी से जवाब दिया जा सके।

लॉग को एक बार साल में नहीं, बल्कि एक बार महीने में पढ़ें। साइकिल में लागत में धीमी वृद्धि एक चार्ट में आसानी से छूट सकती है और संख्याओं के कॉलम में स्पष्ट है।

एक विफल रन को भी अपना लॉग छोड़ना चाहिए, स्टेटस कोड और उस चरण के साथ जहां यह रुक गया था। एक लॉग जो केवल सफलताओं को रिकॉर्ड करता है, उस लाइन को छुपाता है जिसकी आपको आवश्यकता थी।

डेटा हानि का प्रतिनिधित्व करने वाली वर्कबेंच पर गायब टुकड़ों के साथ लकड़ी का जिगसॉ पज़ल

चरणों के across पंक्तियों की गिनती

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

हर हस्तांतरण पर एक काउंट लिखें

पाइपलाइन को टेबल्स की एक चेन के रूप में सोचें: API प्रतिक्रिया, पार्स टिबल, संग्रहीत फ़ाइल और रिपोर्ट। हर हस्तांतरण पर एक पंक्ति काउंट दिखाता है कि किस चरण ने पंक्तियाँ खोईं, यदि किसी ने कीं।

विश्लेषक अक्सर केवल अंत में गिनती करते हैं। तब तक कारण तीन चरण पीछे बैठता है, और टिबल को दो बार फिर से आकार दिया गया है।

प्रति डोमेन एक पंक्ति, प्रति लिंक एक पंक्ति

ग्रेन एक्शन पर निर्भर करता है। एक रेफरिंग-डोमेन पुल में लिंकिंग साइट के प्रति एक पंक्ति होती है, जबकि एक बैकलिंक पुल में लिंक के प्रति एक पंक्ति होती है, और एक साइट कई भेज सकती है। गलत ग्रेन पर गिनती करें और दो सही संख्याएं असहमत प्रतीत होंगी।

ग्रेन को संग्रहीत फ़ाइल के नाम या एक हेडर टिप्पणी में डालें, ताकि अगला व्यक्ति अनुमान न लगाए। एक्शन ग्लोसरी प्रत्येक एक्शन के ग्रेन की सूची देती है।

पेजिंग और 50,000-पंक्ति छत

page और per के साथ पेजिंग प्रति पेज 5000 पंक्तियों तक काम करती है, लेकिन गहरी पेजिंग 50,000 पंक्तियों पर रुक जाती है। एक पुल जो उससे अधिक की उम्मीद करता है, कैप्ड वापस आता है, और उसका काउंट शकस्पद रूप से गोल हो सकता है।

प्राप्त संख्या की तुलना उस कुल संख्या से करें जिसकी आप उम्मीद कर रहे थे। जब वे अलग हों, तो स्रोत को दोष देने से पहले एक्शन, उसके सॉर्ट और पेज साइज की जांच करें।

एक कामकाज काउंट, काल्पनिक रूप से

मान लीजिए कि एक काल्पनिक पुल 30 लक्ष्य डोमेन के लिए लिंकिंग साइट्स मांगता है और 30 काउंट की पंक्तियाँ वापस करता है। स्कोर्स के साथ जुड़ा हुआ, टेबल 27 पंक्तियाँ रखता है। तीन गायब पंक्तियों को किसी भी चार्ट खींचने से पहले देखने की आवश्यकता है, उनकी कुंजियों से शुरू करके।

उन तीन को नाम से लिखें, केवल एक काउंट के रूप में नहीं। एक काउंट बताता है कि पंक्तियाँ गायब हो गईं, जबकि नाम बताते हैं कि किन कुंजियों को साफ़ करना है।

पंक्तियाँ शांत रूप से छोड़ने वाले जॉइन

एक लेफ्ट जॉइन बाएं टेबल की हर पंक्ति रखता है, इसलिए एक गायब स्कोर NA के रूप में दिखाई देता है न कि एक गायब पंक्ति के रूप में। एक इनर जॉइन उसी समस्या को छुपा देता है पंक्ति को पूरी तरह हटाकर।

जॉन टाइप को जानबूझकर चुनें, और जॉइन के बाद NA स्कोर्स की गिनती करें। वह काउंट लॉग में क्रेडिट्स फ़ील्ड के बगौर होना चाहिए।

स्विच करने से पहले एक छोटा टेस्ट प्लान

एक साइकिल के लिए दोनों स्रोत चलाएं। समान डोमेन, समान दिन।

30 डोमेन लें जिनके बारे में आप अच्छी तरह जानते हैं, अपने वर्तमान प्रदाता और CranSEO से रेफरिंग-डोमेन काउंट खींचें, और उन्हें लॉग अक्षों पर एक-दूसरे के खिलाफ प्लॉट करें। आपको एक खुरदुरा विकर्ण दिखना चाहिए, एक सटीक नहीं, क्योंकि क्रॉल अलग होते हैं और हमारा लगभग मासिक रिफ्रेश होता है; DataForSEO, Ahrefs और Semrush प्रत्येक एक थोड़ा अलग वेब देखते हैं।

औसत को न पढ़ें, आउटलायर्स को पढ़ें। जहां हमारा काउंट बहुत नीचे है, जांचें कि क्या डोमेन नया है या हाल ही में स्थानांतरित हुआ है। जहां यह बहुत ऊपर है, सबडोमेन की जांच करें। ग्लोसरी परिभाषित करता है कि हम एक रेफरिंग डोमेन को क्या मानते हैं, और रनबुक दिखाता है कि दोनों पुलों को साइड-बाय-साइड कैसे स्टोर करें।

पहली प्रोडक्शन रन से पहले

  • कुंजी एनवायरनमेंट से पढ़ी जाती है, और एक टेस्ट एक गायब कुंजी को कवर करता है
  • एकल डोमेन पर एक टेस्ट कॉल, अपने क्रेडिट्स फ़ील्ड के साथ लॉग किया गया
  • HTTP 401 और HTTP 402 के लिए स्पष्ट शाखाएं
  • प्रत्येक चरण पर लिखी गई एक पंक्ति काउंट
  • प्रत्येक संग्रहीत फ़ाइल के बगौर लिखी गई स्नैपशॉट तारीख