Navvo
البدء

بوابة المطوّرين

استخدم بوابة مطوّري Navvo لإنشاء المؤسسات والمشاريع، وإدارة مفاتيح API، ومراقبة الاستخدام الحيّ وتحليلات البحث، وتجربة نقاط النهاية في بيئة الاختبار.

بوابة المطوّرين

بوابة المطوّرين على navvo.io/developer هي أسرع طريقة للعمل مع واجهة Navvo البرمجية. إنها وحدة تحكّم بالنقر لكل ما قد تفعله عبر REST — المؤسسات والمشاريع ومفاتيح API والاستخدام الحيّ وتحليلات البحث وبيئة اختبار للطلبات.

كل ما في البوابة مرتبط بحسابك: فأنت لا ترى وتدير إلا المؤسسات والمشاريع والمفاتيح التي أنشأتها.

تتطلّب البوابة دور developer (أو admin / super_admin). المنح ذاتيّ الخدمة: يستطيع أي حساب مُسجَّل الدخول منح نفسه الدور عبر استدعاء POST /developer/enroll (أو بمجرّد قراءة GET /developer/access، الذي يسجّلك تلقائيًا عند أول قراءة) — دون الحاجة إلى موافقة إدارية. يسري التغيير اعتبارًا من الطلب التالي، فتصل إلى البوابة فورًا. راجع المصادقة لنموذج الأدوار.

التنظيم

تنقسم البوابة إلى خمس علامات تبويب:

نظرة عامة

أعداد مؤسساتك ومشاريعك ومفاتيحك، وإجمالي طلبات اليوم، وإعداد موجَّه من ثلاث خطوات. ::::

مساحة العمل

إنشاء المؤسسات والمشاريع داخلها وإعادة تسميتها وحذفها. ::::

مفاتيح API

إصدار المفاتيح، وتعديل النطاقات/الخطة/الحصص، وتدوير الأسرار، والتفعيل/التعطيل، والحذف — مع استخدام حيّ لكل مفتاح. ::::

تحليلات البحث

ما يبحث عنه الناس بمفاتيح كل مشروع، وما لا يجد نتائج، والمدة التي تحتفظ فيها Navvo بذلك. ::::

بيئة الاختبار

تشغيل طلبات API حقيقية بهويّة أحد مفاتيحك دون نسخ السرّ إلى المتصفّح إطلاقًا. ::::

1. إعداد مساحة عمل

افتح علامة تبويب مساحة العمل وأنشئ مؤسسة (يُولَّد لها مُعرِّف URL تلقائيًا). داخل بطاقة كل مؤسسة، أضف مشروعًا أو أكثر — عادةً واحدًا لكل تطبيق أو بيئة (مثلاً تطبيق السائق وتطبيق الراكب، أو تجريبي وإنتاج).

يمكنك إعادة تسمية أو حذف مؤسسة أو مشروع في أي وقت. حذف المؤسسة يشمل مشاريعها ومفاتيحها؛ وحذف المشروع يشمل مفاتيحه. هذه الإجراءات نهائية.

2. إصدار مفتاح API

انتقل إلى علامة تبويب مفاتيح API واملأ نموذج إنشاء مفتاح API:

اختر مشروعًا

اختر من قائمة منسدلة بمشاريعك (مجمّعة كـ مؤسسة / مشروع) — دون نسخ أي معرّفات.

سمِّ المفتاح

امنحه تسمية واضحة مثل Driver App — production.

اختر خطة

free أو starter أو growth أو scale أو enterprise. تحدّد الخطة الحصص الافتراضية (تُتبنّى من مستوى الفوترة المطابق)؛ ويمكنك ضبطها لاحقًا. (القيمة القديمة startup أصبحت الآن starter.)

(اختياري) عدّل النطاقات

وسّع النطاقات لتفعيل ما يستطيع المفتاح فعله بالضبط. ثمانية نطاقات مفعّلة افتراضيًا؛ وgeo وinsights وoptimize اشتراك اختياري. راجع المصادقة ← النطاقات.

عند النقر على إصدار مفتاح API، يُعرَض السرّ الكامل مرّة واحدة في لافتة مميّزة. انسخه فورًا — إذ تُخزِّن Navvo تجزئة فقط، فلا يمكن عرضه مجدّدًا أبدًا.

إذا غادرت دون نسخ المفتاح، فلا يمكنك استعادته. دوّر المفتاح للحصول على سرّ جديد.

3. إدارة مفاتيحك

يُظهر كل مفتاح في مفاتيح API الخاصة بك تسميته، والأحرف الأربعة الأخيرة، والخطة، والحالة، وعدد النطاقات، ووقت آخر استخدام، ومقياسَي استخدام حيّين (الطلبات في هذه الدقيقة واليوم، مقابل حصّة المفتاح — يتحدّثان تلقائيًا).

يُظهر المفتاح الذي جعلته Navvo غير محدود شارة Unlimited. ويواصل مقياساه عدّ الطلبات في هذه الدقيقة واليوم، لكنهما يعرضانها دون سقف (1,240 / Unlimited، دون شريط ودون لون تحذير)، لأن المفتاح لا حصّة له تمتلئ.

إجراءات كل مفتاح هي:

الإجراءالأيقونةما يفعله
تفعيل / تعطيلالطاقةتبديل المفتاح بين التشغيل والإيقاف. يُرفَض المفتاح غير المفعّل بالرمز 403 حتى إعادة تفعيله.
تعديلالقلمتغيير التسمية والخطة والنطاقات وحصص الدقيقة / اليوم، والمواقع وعناوين IP التي يُسمح باستخدام المفتاح منها. وفي المفتاح غير المحدود تكون حقول الحصص للقراءة فقط وتعرض Unlimited.
تدويرالتحديثتوليد سرّ جديد وإبطال القديم فورًا (مع نفس المعرّف والنطاقات والحصص). يُعرَض السرّ الجديد مرّة واحدة.
حذفالسلّةإزالة المفتاح نهائيًا. تتوقّف الطلبات التي تستخدمه فورًا.
يمكنك في البوابة ضبط ما يصل إلى 255 طلبًا في الدقيقة و10,000,000 طلب في اليوم: وهذا هو سقف الخدمة الذاتية. أما المفاتيح التي تُعِدّها Navvo فيمكن أن تكون حدودها أعلى، ويحتفظ بها حفظ المفتاح، أو أن تكون غير محدودة؛ ولا يستطيع جعل المفتاح غير محدود إلا Navvo. تتحوّل مقاييس الاستخدام إلى الكهرماني عند 70% والأحمر عند 90% لتلاحظ اقتراب المفتاح من حدّه.

قصر المفتاح على مواقعك أو خوادمك

في تعديل، املأ المواقع المسموح بها (Allowed websites) لمفتاح يُستخدم في صفحات الويب (example.com أو *.example.com أو localhost:3000)، أو عناوين IP المسموح بها (Allowed IP addresses) لمفتاح يُستخدم من خوادمك (203.0.113.7 أو 198.51.100.0/24). اكتب عنصرًا واحدًا في كل سطر. يظهر في صفّ المفتاح المقيَّد Locked to …، وتحصل الطلبات الآتية من أي مكان آخر على 403. راجع المصادقة ← تقييد المفتاح لقواعد المطابقة.

4. التجربة في بيئة الاختبار

تتيح لك علامة تبويب بيئة الاختبار إطلاق طلبات حقيقية إلى واجهة Navvo ومشاهدة الاستجابة الحيّة.

  1. اختر مفتاح API — وهذا إلزامي. تعرض القائمة مفاتيحك أنت فقط، فلا يغادر السرّ الخادم أبدًا: تُمرِّر البوابة الطلب من جهة الخادم بهويّة المفتاح الذي اخترته.
  2. اختر نقطة نهاية من القائمة المنسّقة للقراءة فقط (البحث، الترميز الجغرافي، الأماكن، التوجيه، الفحص الصحّي، …). ولنقاط نهاية POST (حسابية للقراءة فقط، مثل التوجيه) يمكنك تعديل جسم JSON. تكشف بيئة الاختبار عمدًا نقاط النهاية الآمنة غير المُعدِّلة فقط.
  3. أرسل الطلب — يكون الزرّ معطّلاً حتى تختار مفتاحًا.

تعرض لوحة الاستجابة حالة HTTP وزمن الرحلة وجسم JSON المنسّق. تطبّق بيئة الاختبار فحوصات نطاق المفتاح وحالة تفعيله قبل التمرير: إذا كان المفتاح المختار غير مفعّل، أو يفتقد نطاقًا تحتاجه نقطة النهاية، فستحصل على 403 يوضّح الخطأ بالضبط — وسيلة سريعة للتحقّق من صحّة إعداد المفتاح قبل الإطلاق. ولا تطبّق قيود المفتاح الخاصة بالمواقع وعناوين IP، لأن الطلب يعمل على خوادم Navvo نيابةً عنك.

بيئة الاختبار هي أسهل طريقة للتأكّد من أن مفتاحًا جديدًا يعمل ويملك النطاقات الصحيحة. وبمجرّد نجاحه هناك، سيعمل الطلب نفسه من شيفرتك باستخدام ترويسة x-api-key.

5. متابعة تحليلات البحث

تعرض علامة تبويب تحليلات البحث عمليات البحث التي تمّت بمفاتيح API لمشروع واحد. ولا يرى تحليلات المشروع إلا مالكه؛ أمّا المشروع القديم الذي لا مالك له فلا يرى تحليلاته إلا أعلى دور إداري في Navvo (super_admin). اختر مشروعًا ونطاقًا من 7 أو 30 أو 90 يومًا (تُحسب الأيام بتوقيت عمّان):

  • ستّ بطاقات: عدد عمليات البحث، ونسبة البحث بلا نتائج، ونسبة النقر، ومتوسّط موضع النقر، ونسبة التحويل، والوسيط لزمن الاستجابة. وأيّ نسبة تستند إلى أقلّ من 30 عملية بحث تظهر بعبارة بيانات غير كافية بدل رقم مضلِّل.
  • عمليات البحث يوميًا، على شكل مخطّط أو جدول.
  • أكثر الاستعلامات والاستعلامات بلا نتائج، 20 من كلٍّ منهما، مع عدد عمليات البحث ونسبة البحث بلا نتائج ونسبة النقر والتحويلات وآخر ظهور لكلّ استعلام. وقائمة الاستعلامات بلا نتائج هي أسرع طريقة لاكتشاف الأماكن والتهجئات التي يتوقّعها مستخدموك ولا يجدونها.

تبقى نسبتا النقر والتحويل فارغتين إلى أن يُبلغ تطبيقك عمّا فتحه المستخدمون، عبر أحداث البحث المرسلة لعمليات بحث حملت معرّف جلسة وافق عليه المستخدم.

اختر مدة احتفاظ Navvo بعمليات البحث

الإعدادما يحدث
30 يومًا (افتراضي)تُحفَظ عمليات البحث التي تمّت بمفاتيح المشروع 30 يومًا.
90 يومًاتُحفَظ 90 يومًا.
إيقافخلال دقيقة تقريبًا، تتوقّف Navvo عن تسجيل عمليات البحث وعن قبول أحداث النقر والتحويل لمفاتيح المشروع، ويُحذَف كلّ ما خُزِّن للمشروع، بما في ذلك الأحداث.

الانتقال من 90 إلى 30 يومًا يحذف عمليات البحث الأقدم في التنظيف الليلي التالي. ولا يمكن استعادة البيانات المحذوفة، لذا تطلب البوابة تأكيدك أولًا. وتسرد صفحة تحليلات البحث والخصوصية ما يتضمّنه سجلّ البحث وما لا يُخزَّن أبدًا. وباختصار: نصّ الاستعلام بعد حذف عناوين البريد الإلكتروني وأرقام الهواتف وغيرها من التفاصيل الشخصية، والمرشّحات والنتائج، ومنطقة تقريبية بدل الإحداثيات. ولا تحتوي سجلّات البحث على عنوان IP نفسه أبدًا. وبمعزل عن ذلك، وأيًّا كان هذا الإعداد، يسجّل قياس الاستخدام العنوان الذي يأتي منه كل استدعاء بمفتاح API (وهو عادةً خادمك، أو جهاز مستخدمك عند استخدام المفتاح من متصفّح أو تطبيق) لأغراض الفوترة ومنع إساءة الاستخدام. ويمكن لأيّ طلب منفرد أن يبقى خارج التحليلات عبر analytics=false.

عبر الواجهة البرمجية

تقبل نقاط النهاية هذه رمز bearer نفسه الذي تستخدمه بقية البوابة، وتتبع قاعدة الوصول نفسها المطبّقة على علامة التبويب:

curl "https://navvo.io/api/v1/developer/projects/PROJECT_ID/search-analytics?days=30" \
  -H "Authorization: Bearer $NAVVO_TOKEN"

curl -X PATCH "https://navvo.io/api/v1/developer/projects/PROJECT_ID/search-settings" \
  -H "Authorization: Bearer $NAVVO_TOKEN" -H "Content-Type: application/json" \
  -d '{"analytics":"90"}'

تقبل GET …/search-analytics المعامل days بقيمة 7 أو 30 أو 90 (الافتراضي 30) وتُعيد:

{
  "project": { "id": "…", "name": "Rider App", "slug": "rider-app", "organization": { "id": "…", "name": "Acme Mobility", "slug": "acme-mobility" } },
  "range": { "days": 30, "from": "2026-09-01", "to": "2026-09-30", "timeZone": "Asia/Amman" },
  "settings": { "analytics": "30", "retentionDays": 30, "isDefault": true },
  "available": true,
  "overview": {
    "searches": 1240, "requests": 1512, "sessions": 0,
    "zeroRate": 0.06, "ctr": null, "avgClickPos": null, "conversionRate": null,
    "p50Ms": 38, "p95Ms": 190, "hybridShare": 0,
    "insufficient": { "zeroRate": false, "ctr": true, "avgClickPos": true, "conversionRate": true },
    "series": [{ "day": "2026-09-30", "searches": 52, "zero": 3, "clicks": 0, "conversions": 0 }]
  },
  "topQueries": {
    "total": 318,
    "items": [{ "query": "pharmacy", "qNorm": "pharmacy", "searches": 96, "sessions": 0, "zeroRate": 0, "ctr": null, "avgClickPos": null, "conversions": 0, "lastSeen": "2026-09-30T11:02:11.000Z" }]
  },
  "zeroResultQueries": { "total": 21, "items": [] }
}
  • النسب كسور عشرية (0.06 = 6%)، وتعني null أنه لم يكن هناك ما يُقسَم عليه.
  • لا يحتسب searches نقرات المفاتيح التي استبدلها المستخدم نفسه باستعلام أطول خلال 10 ثوانٍ، بينما يحتسب requests كلّ استدعاء.
  • hybridShare هي نسبة عمليات البحث التي أسهمت فيها المطابقة حسب المعنى.
  • تعني available: false أن التحليلات غير متاحة مؤقتًا، فتكون الأرقام فارغة لا أصفارًا.
  • مع analytics: "off" تكون قيمة overview هي null وتكون القائمتان فارغتين.

تقبل PATCH …/search-settings الجسم {"analytics": "off" | "30" | "90"} وتُعيد المشروع مع إعداداته الجديدة في settings.

حذف عمليات بحث مستخدم واحد. إذا طلب منك أحد مستخدميك حذف بياناته، فاستدعِ DELETE …/search-sessions/SESSION_ID بمعرّف الجلسة الذي أرسله تطبيقك عنه في X-Navvo-Session:

curl -X DELETE "https://navvo.io/api/v1/developer/projects/PROJECT_ID/search-sessions/SESSION_ID" \
  -H "Authorization: Bearer $NAVVO_TOKEN"

يزيل ذلك عمليات البحث وأحداث النقر الخاصة بتلك الجلسة خلال آخر 91 يومًا، ويعيد عدد ما حُذف: {"project": {…}, "deleted": {"queries": 12, "events": 3}}. لا تخزّن Navvo سوى تجزئة يومية لمعرّف الجلسة، ولذلك يجب أن يأتي المعرّف نفسه منك؛ أما عمليات البحث المرسَلة بلا معرّف جلسة فلا يمكن ربطها بمستخدم ولا تتأثر. لا يستطيع استدعاءه إلا مالك المشروع، ويُسجَّل كل استدعاء في سجل التدقيق من دون المعرّف. والمعرّف غير الصحيح الصيغة يعيد 400.

الحالةمتى
400قيمة days أو analytics ليست من القيم المذكورة.
401لا يوجد رمز bearer، أو انتهت صلاحيته.
403المشروع ليس لك، أو ليس لحسابك دور developer.
404لا يوجد مشروع بهذا المعرّف.

تفضّل الواجهة البرمجية؟

كل ما في البوابة مدعوم بنقاط نهاية /developer/* الموثّقة في المصادقة ← إدارة المفاتيح، فيمكنك أتمتة إدارة المؤسسات والمشاريع والمفاتيح في أدواتك الخاصة.

Copyright © 2026