DataForSEO مقابل واجهة برمجة تطبيقات مخصصة للروابط فقط: ما التغييرات في خط أنابيب R الخاص بك
هدم لخط أنابيب افتراضي واحد، خطوة بخطوة. نذكر ما الذي يتحرك، وما الذي يبقى، وما الذي تخسره عند تضييق المصدر إلى الروابط فقط.
فريق أبحاث CranSEO ·

خط الأنابيب، مرحلة تلو الأخرى
المصادقة
يتنقل مفتاحنا كعامل استعلام أو رأس Authorization Bearer. الإجراءات المجانية لا تحتاج إلى أي منهما، لذا يمكن تشغيل الخلايا الأولى في دفتر الملاحظات لأي شخص.
الطلب
طلب GET واحد لكل إجراء، مع استخدام q للنطاق. يستخدم التصفح page وper (من 10 إلى 5000)، ويستخدم الترتيب sort وorder.
التحليل
كل استجابة هي JSON يحتوي على حقل ok. الاستجابات المصادق عليها تضيف _credits، مما يظهر التكلفة والرصيد المتبقي.
التخزين
اكتب tibble وتاريخ اللقطة معًا. يتم تحديث الرسم البياني تقريبًا شهريًا، لذا فإن التاريخ جزء من البيانات.
التقرير
العرض من الملف المخزن، وليس من اتصال مباشر، بحيث يعطي مستند quarto نفس الرسم البياني غدًا.
ما تكسبه وما تتخلى عنه
| الاهتمام | واجهة برمجة تطبيقات مخصصة للروابط فقط | مقدم خدمات أوسع |
|---|---|---|
| النطاق | الروابط الخلفية، النطاقات المرجعية، النص المرسب، الصفحات العليا، DR | يضيف عادةً بيانات SERP والكلمات المفتاحية |
| الفوترة | كل استدعاء، 1 رصيد = $0.0001، بدون اشتراك | تحقق من قائمة الأسعار الخاصة به |
| الحداثة | تحديث شهري تقريبًا | تحقق من وثائقه الخاصة |
| صفوف لكل استدعاء | حتى 1,000، يتم احتسابها مرة واحدة | تختلف حسب نقطة النهاية |
| إشارات الفشل | HTTP 401 مفتاح غير صالح، HTTP 402 رصيد غير كافٍ | تختلف |

الخطأ الذي يكلف أكثر في هذا النوع من خطوط الأنابيب
يفشل معظم خطوط الأنابيب بسبب المال، وليس الكود. الحلقة التي تستدعي نقطة نهاية واحدة لكل صف تحول مهمة رخيصة إلى واحدة مكلفة.
معنا، يكلف الاستدعاء نفس الشيء لـ 10 صفوف أو 1,000، لذا تنقلب القاعدة: اطلب أكبر صفحة يمكنك استخدامها. اضبط per على 1000، رتب حسب ما تحتاجه، وتوقف عن التصفح عندما يتم الإجابة على السؤال.
التصفح العميق محدود بـ 50,000 صف، وهو ميزة للمحللين الذين يميلون لسحب كل شيء. إذا كان لدى النطاق المزيد من الروابط من ذلك، فربما تريد toppages أو anchors بدلاً من ذلك.
قارن إنفاق حلقة قديمة مع النسخة ذات الاستدعاء الواحد قبل أن تحتفل. أحيانًا يكون التوفير صفرًا لأن مقدم الخدمة القديم كان يحاسب بالفعل لكل طلب.
الحكم على هذا الهدم
ضيّق المصدر فقط إذا كان التقرير ضيقًا
إذا كانت معظم الأعمدة في tibble الخاص بك هي روابط، فإن واجهة برمجة تطبيقات مخصصة للروابط فقط تزيل كود التحليل والتكلفة. إذا كانت نصف الأعمدة هي بيانات SERP، فاحتفظ بمقدم الخدمة الحالي وأضف ours للباقي.
- احتفظ بخلايا العرض التوضيحي للإجراءات المجانية
- ثبت تاريخ اللقطة في المخرج
- توقع إيقاعًا شهريًا، وليس يوميًا
أسئلة من الهدم
هل أحتاج إلى إعادة كتابة خط الأنابيب بالكامل؟
لا. استبدل فقط مرحلة الرابط. احتفظ بمراحل SERP والكلمات المفتاحية حيث هي، واكتب tibble الرابط إلى ملف خاص به، وادمج الاثنين لاحقًا على عمود النطاق.
هل CORS مفتوح لمفكرات المتصفح؟
نعم. CORS مفتوح، لذا يمكن لتطبيق Shiny أو خلية Observable استدعاء الإجراءات المجانية مباشرة. احتفظ بالمفاتيح المدفوعة في جانب الخادم، لأن أي شيء في كود المتصفح يمكن قراءته من قبل الزوار.
كيف أختبار معالجة الأخطاء بتكلفة منخفضة؟
أرسل مفتاحًا خاطئًا عمدًا لرؤية HTTP 401 دون إنفاق أي شيء. حالة HTTP 402 تظهر فقط عندما يكون الرصيد فارغًا، لذا قم بمحاكاتها في اختباراتك بدلاً من استنزاف الرصيد.
هل ستتطابق الإجماليات مع مقدم خدمة آخر بالضبط؟
لا. كل مقدم خدمة يزحف بشكل مختلف ويحدث حسب جدولته الخاصة. قارن الأوامر المقدارية والاتجاهات، وعامل DR هنا كمقياس منفصل وسجل لوغاريتمي داخلي.
الأخطاء، إعادة المحاولة، والأخطاء التي يمكنك التخطيط لها
الأخطاء هي حيث تبدو خطوط الأنابيب المخصصة للروابط فقط والأوسع متشابهة أكثر. الكود يترك غير مكتمل هناك. ضع مسارات الفشل في المقارنة، لأن قرار dataforseo مقابل رابط فقط يبدو مختلفًا بمجرد ظهور الأخطاء على الطاولة.
HTTP 401 و HTTP 402 هما الاثنان اللذان يجب التعامل معهما
رمزان لحالة HTTP مهمان. HTTP 401 يعني أن المفتاح مفقود أو غير صحيح، والحل يكمن في تكوينك بدلاً من بياناتك. HTTP 402 يعني أن رصيد الرصيد قد نفد، والحل هو شحن رصيد من صفحة الحساب، وليس تغيير الكود.
اكتب كلاهما كفروع صريحة. الالتقاط العام الذي يبتلع الحالة ويكتب جدولًا فارغًا هو كيف يحدث سحب جزئي صامت.
مهلات الوقت والملفات الجزئية
مهلة الوقت ليست رمز حالة، لذا يجب أن يعالج كودك الخاص ذلك كفشل. لف الاستدعاء بحيث توقف مهلة الوقت التشغيل قبل كتابة أي مخرج.
اكتب في ملف مؤقت وأعد تسميته عند النجاح. ملف مكتوب جزئيًا يبدو مكتملًا هو أسوأ نتيجة لتشغيل منقطع، لأن أحدًا لا يفكر في التشكيك فيه.
إعادة المحاولة والتوقيت
هذه الصفحة لا تذكر رقم طلبات في الثانية، لذا قم بتحديد حجم خط الأنابيب بناءً على المكالمات لكل دورة. هذا هو الرقم الذي يدفع التكلفة، وهو ما تتحكم فيه.
أعد المحاولة فقط في أخطاء الشبكة، مع توقف بين المحاولات. لا تعيد المحاولة أبدًا مع 401 أو 402، لأن كلًا منهما سيفشل بنفس الطريقة في المحاولة التالية.
أين يعيش المفتاح أثناء الاختبارات
احتفظ بالمفتاح في متغير بيئة على جهازك وفي متجر أسرار CI، وليس في ملف تقرأه الاختبارات. الإجراءات المجانية لا تحتاج إلى مفتاح، لذا فإن تشغيل الاختبار الأول آمن لأي شخص ينسخ المشروع.
اطرح نفس السؤال على كل خط أنابيب تلمسه: من يمكنه قراءة المفتاح، وأين هو مكتوب؟ المفتاح الذي يظهر في ملف سجل هو تسرب، حتى عندما يكون دفتر الملاحظات نفسه خاصًا.
تسجيل تكلفة كل استدعاء
كل استجابة من استدعاء مصادق عليه تحمل حقل credits، الذي يظهر التكلفة والرصيد المتبقي. انسخه إلى سجلك بجانب الطابع الزمني واسم الإجراء، بحيث يمكن الإجابة على سؤال التكلفة من الملف بدلاً من الذاكرة.
اقرأ السجل مرة واحدة شهريًا، وليس مرة واحدة سنويًا. الارتفاع البطيء في التكلفة لكل دورة سهل تفويته في رسم بياني وواضح في عمود من الأرقام.
يجب أن يترك التشغيل الفاشل سجله أيضًا، مع رمز الحالة والخطوة التي توقف عندها. السجل الذي يسجل النجاحات فقط يخفي السطر الذي كنت بحاجة إليه.

عد الصفوف عبر المراحل
العديد من أخطاء خطوط الأنابيب المكلفة هي أخطاء عد. تفقد الجدول صفوفًا في دمج، أو تصفية، أو إزالة تكرار، ولا يزال الرسم البياني يبدو معقولًا بعد ذلك.
اكتب عدًا في كل تسليم
فكر في خط الأنابيب كسلسلة من الجداول: استجابة API، tibble محلل، الملف المخزن، والتقرير. عد الصفوف في كل تسليم يظهر أي مرحلة فقدت الصفوف، إذا فعلت أي واحدة.
غالبًا ما يعد المحللون فقط في النهاية. بحلول ذلك الوقت، يكون السبب خلف ثلاث مراحل، وقد تم تشكيل tibble مرتين منذ ذلك الحين.
صف واحد لكل نطاق، صف واحد لكل رابط
الحبيبة تعتمد على الإجراء. سحب النطاق المرجعي له صف واحد لكل موقع رابط، بينما سحب الرابط الخلفي له صف واحد لكل رابط، ويمكن لموقع واحد إرسال العديد منها. احسب في الحبيبة الخاطئة وستبدو رقمين صحيحين غير متفقين.
ضع الحبيبة في اسم الملف المخزن أو في تعليق رأس، حتى لا يضطر الشخص التالي للتخمين. معجم الإجراءات يوضح حبيبة كل إجراء.
التصفح وسقف 50,000 صف
التصفح باستخدام page و per يعمل حتى 5000 صف لكل صفحة، لكن التصفح العميق يتوقف عند 50,000 صف. السحب الذي يتوقع أكثر من ذلك يعود محدودًا، وقد يبدو عدده دائريًا بشكل مشبوه.
قارن الرقم الذي تلقيته مع الإجمالي الذي توقعته. عندما يختلفان، تحقق من الإجراء، ترتيبه، وحجم الصفحة قبل أن تلوم المصدر.
عد عملي، افتراضيًا
لنفترض أن سحبًا افتراضيًا يطلب مواقع الرابط لـ 30 نطاقًا مستهدفًا ويعيد 30 صفًا من العد. مدمجًا مع الدرجات، يحتفظ الجدول بـ 27 صفًا. الصفوف الثلاثة المفقودة تحتاج إلى نظرة قبل رسم أي رسم بياني، بدءًا من مفاتيحها.
اكتب تلك الثلاثة بالاسم، وليس كعد وحسب. العد يخبرك أن الصفوف فقدت، بينما الأسماء تخبرك بمفاتيح التنظيف.
دمجات تزيل الصفوف بصمت
الدمج الأيسر يحافظ على كل صف من الجدول الأيسر، لذا فإن الدرجة المفقودة تظهر كـ NA بدلاً من صف مفقود. الدمج الداخلي يخفي المشكلة نفسها عن طريق إزالة الصف تمامًا.
اختر نوع الدمج عن قصد، وعد درجات NA بعد الدمج. هذا العد ينتمي إلى السجل بجانب حقل credits.
خطة اختبار قصيرة قبل التبديل
شغل كلا المصدرين لدورة واحدة. نفس النطاقات، نفس اليوم.
خذ 30 نطاقًا تعرفها جيدًا، واسحب عد النطاقات المرجعية من مقدم الخدمة الحالي ومن CranSEO، وارسمها ضد بعضها على محاور لوغاريتمية. يجب أن ترى قطرية تقريبية، وليست دقيقة، لأن الزلاجات تختلف وتحديث ours شهريًا تقريبًا؛ DataForSEO و Ahrefs و Semrush ترى كل منها شبكة مختلفة قليلاً.
اقرأ القيم المتطرفة، وليس المتوسط. حيث يكون عدنا أقل بكثير، تحقق مما إذا كان النطاق جديدًا أو انتقل مؤخرًا. حيث يكون أعلى بكثير، تحقق من النطاقات الفرعية. المعجم يحدد ما نعتبره نطاقًا مرجعيًا، ودليل التشغيل يظهر كيفية تخزين كلا السحبين جنبًا إلى جنب.
قبل التشغيل الإنتاجي الأول
- يقرأ المفتاح من البيئة، ويغطي اختبار مفتاح مفقود
- مكالمة اختبار واحدة على نطاق واحد، مسجلة بحقل credits الخاص بها
- فروع صريحة لـ HTTP 401 و HTTP 402
- عد الصفوف المكتوب في كل مرحلة
- تاريخ اللقطة المكتوب بجانب كل ملف مخزن