الرئيسية/AD/الوثائق
يعمل · مشتق من الشيفرة

AD تقنيًا: كيف يعمل وكيف تدمجه

كل ما تحتاجه الحملة يعمل: الحسابات والحملات والتصاميم والمساحات ومحرك العرض واللوحة والتقارير. تُولَّد هذه الصفحة من الشيفرة نفسها التي تعرض الإعلانات — كل حد وماكرو وحدث ومسار أدناه يُقرأ من المصدر في كل بناء، ولا يُكتب شيء يدويًا.

ما هو

ما هو AD ولمن هو

AD خادم إعلانات مباشر: لا مزاد ولا صندوق أسود. يبيع الناشر المساحة الإعلانية لموقع يديره أصلًا؛ ويختار المعلن المساحات بالضبط ويضبط الاستهداف ويطلق حملته. يمكن لحساب واحد أن يؤدي أيًّا من الدورين — أو كليهما.

المعلنون

أنشئ حملة، وأضف تصاميم، واجتز المراجعة، واشترِ مساحة من المعرض، ثم تابع وصول الظهور والنقرات إلى التقارير.

الناشرون

سجّل موقعًا، وعرّف مساحات لها حجم ونموذج بيع وسعر، والصق وسمًا واحدًا، واحتفظ بـ80% من كل بيع. عرض إعلاناتك على مساحاتك الخاصة مجاني.

الدوران معًا

يصبح حساب المعلن ناشرًا لحظة تسجيله موقعًا؛ ولا يُكرَّر شيء. تعرض اللوحة تبويبات كل دور تملكه.

الدخول

كيف تدخل

سجّل الدخول في forhosting.com واختر «إدارة AD الخاص بي» من قائمة حسابك. تُفتح اللوحة بـجلسة قصيرة — بيانات اعتماد تنتهي خلال دقائق (لا تتجاوز 60 دقيقة أبدًا) ولا تترك أي مفتاح دائم في المتصفح. عند انتهائها، افتحها مجددًا من القائمة نفسها.

للتكاملات، أنشئ مفتاح API من اللوحة (الملف الشخصي) أو عبر POST /tenants/:id/keys. نطاقان: tenant (وصول كامل إلى حسابك) وread (قراءة فقط، للوحات المتابعة والروبوتات). يُعرض المفتاح مرة واحدة؛ إن ضاع فأنشئ آخر وألغِ القديم.

يستطيع فريقنا فتح لوحتك «كعميل» لمساعدتك: تدوم تلك الجلسة 15 دقيقة على الأكثر وتحمل اسم من فتحها. لا تشغّل الشركة حسابك أبدًا بمفتاح دائم.

المعلنون

الحملات والاستهداف

الحملة هي الحاوية: الاسم والتواريخ والميزانيات الاختيارية والاستهداف الذي تتشاركه تصاميمها. تولد بحالة draft؛ وأنت من يجعلها active أو يوقفها مؤقتًا أو ينهيها. لا تُعرض إلا التصاميم النشطة لحملة نشطة — وإيقاف الحملة مؤقتًا يوقف العرض فورًا.

المعياركيف يعمل
البلد والمنطقة والمدينةقائمة بلدان؛ واختياريًا منطقة واحدة ومدينة واحدة. المدينة تستلزم منطقتها؛ والمنطقة تستلزم بلدها. إذا كان موقع الزائر مجهولًا والحملة تطلب استهدافًا جغرافيًا، فلا يُعرض الإعلان — لا يُعرض بالخطأ أبدًا.
لغة المتصفحقائمة برموز اللغات (حتى 30) التي يعلنها متصفح الزائر — وليست بالضرورة لغة الموقع. الزائر الذي لا ترد لغته في القائمة لا يُعرض له شيء، لذا اترك حملة واحدة بلا لغات: فهي تلتقط كل من عداهم.
الجهازany أو mobile أو desktop.
نظام التشغيلقائمة من: iPhone, iPad, iPod, Windows, Android, BlackBerry, Ubuntu, Linux, CrOs, Mac OS X.
المُحيليجب أن تحتوي الصفحة التي جاء منها الزائر على النص الذي تحدده (دون تمييز حالة الأحرف).
التواريخبداية الحملة ونهايتها. يمكن لكل تصميم أن يحمل تواريخه الخاصة أيضًا؛ والنافذة الفعلية هي تقاطع الاثنين.
حد التكرارلكل تصميم: N ظهورًا على الأكثر لكل زائر، تُحسب في cookie من الطرف الأول يعيش 3 أيام.
الحدود الصارمةلكل تصميم: إجمالي الظهور، والظهور في اليوم، وإجمالي النقرات. عند بلوغ حد يتوقف عرض التصميم خلال 5 دقائق.

من بين التصاميم المؤهلة يختار المحرك عشوائيًا، موزونًا بالوزن الذي تمنحه لكل تصميم. التصميم الذي له حد تسليم يخضع لـضبط الوتيرة: كل 5 دقائق يُعاد ضبط وزنه كي تتوزع الميزانية على أيام الحملة بدل أن تحترق صباحًا. ضبط الوتيرة يبطئ فقط — ولا يختلق حركة أبدًا.

لا يُعرض التصميم إلا في مساحة له فيها طلب مدفوع (انظر «شراء المساحات»). الحملة والتصميم والمساحة والطلب كلها مرئية في اللوحة (الحملات، التصاميم، شراء المساحات).

المعلنون

التصاميم: ستة أنواع ووسم واحد

لكل تصميم رابط نقر وحجم ثابت اختياري ووزن. الحدود في هذا الجدول هي التي تفرضها واجهة API عند الرفع — تُقرأ من الشيفرة ولا تُكتب هنا.

النوعما ترفعهالحدود
image · صورةملف واحد: PNG, JPEG, GIF, WebP, AVIF.حتى 2 MB و2000×1800 بكسل. إذا أعلن التصميم حجمًا ثابتًا فيجب أن يكون الملف بذلك الحجم بالضبط.
text · رابط نصيعنوان ونص اختياري، بلا ملف.يُعرض كرابط بأسلوب المساحة نفسها.
html5 · HTML5ملف ZIP يحوي index.html في الجذر (أو داخل مجلد واحد)، أو ملف HTML واحد.ZIP حتى 10 MB. يُعرض داخل iframe بسياسة محتوى صارمة: لا طلبات إلى أصول أخرى.
video · فيديوملف واحد: MP4, WebM. صورة غلاف وزر صوت اختياريان.حتى 30 MB. يُشغَّل صامتًا وتلقائيًا في مشغّلنا؛ وتُسجَّل البداية والنهاية.
vignette · إعلان بينيصورة (بقواعد image نفسها) أو فيديو.يُعرض كطبقة بملء الشاشة عندما ينقر الزائر رابطًا من مشغّلات المساحة؛ ويُحتسب الظهور عند فتح الطبقة.
script · سكربتHTML/JS من عندك مع الماكروهات أدناه، إضافة إلى 5 صور كحد أقصى.فقط في المساحات التي تسمح بصيغة script. إنها شيفرة طرف ثالث تعمل في صفحة الناشر، لذا المراجعة اليدوية هي الحاجز الوحيد — ولا تُتخطى أبدًا.

عقد HTML5

يُحمَّل index.html الخاص بك داخل iframe مع وجهة النقر في سلسلة الاستعلام باسم clickTag. اقرأه واستخدمه كـhref لمنطقتك القابلة للنقر — ذلك الرابط موقَّع ويحتسب النقرة؛ أما الرابط المكتوب يدويًا فلا يُحتسب.

// index.html — the click goes where the engine says
var clickTag = new URLSearchParams(location.search).get("clickTag");
document.getElementById("ad").href = clickTag;

إذا احتاج تصميمك إلى أن يكبر، فأخبر الصفحة بارتفاعه الحقيقي عبر postMessage. يخبر الوسم التصميم أيضًا بعرض الحيّز عند التحميل وعند كل تغيير للحجم، ويرسل visible أول مرة يدخل فيها الحيّز نطاق الرؤية — وهي اللحظة المناسبة لبدء حركة. تُطبَّق الارتفاعات حتى 10000 بكسل.

// creative → page: ask for the real height (applied up to 10000 px)
parent.postMessage({ fh: "resize", nh: document.documentElement.scrollHeight }, "*");

// page → creative: { fh: "size" | "visible" }
window.addEventListener("message", function (ev) {
  if (ev.data && ev.data.fh === "visible") { /* start your animation */ }
});

تصميم بسيط يفعل الأمرين معًا، جاهز للرفع كما هو: نزّل ملف ZIP النموذجي

ماكروهات تصاميم السكربت

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

الماكرويُستبدل بـ
[CLICKTAG] · [TRACKLINK]رابط النقر الموقَّع — استخدمه كـhref. بدونه لا تُحتسب النقرة.
[LINK]رابط الوجهة الخام، للشيفرة التي تحتاجه دون المتتبّع.
[TARGET]_blank أو _self حسب إعداد التصميم.
[ID]معرّف التصميم.
[TITLE] · [TITOLO]عنوان التصميم (بعد تهريب HTML).
[IMG0][IMG4]رابط كل صورة مرفوعة، بالترتيب.
[TIMESTAMP] · [RANDOM]ختم زمني ورقم عشوائي يُثبَّتان عند نشر المساحة — لتجاوز التخزين المؤقت لبكسلاتك الخاصة.

تتبّع الأطراف الثالثة والموافقة

يمكن لأي تصميم أن يحمل شيفرة تتبّع (بكسل أو سكربت من مزوّد قياس). تُخرَج بعد الإعلان مع تحويل كل src إلى data-src، فلا يُحمَّل شيء حتى يسمح الوسم بذلك.

إذا حددت معرّف المزوّد في IAB TCF v2، فلا تُحمَّل الشيفرة إلا بعد موافقة الزائر على ذلك المزوّد، مع تعبئة ${GDPR} و${GDPR_CONSENT_n}. ينتظر الوسم مدير الموافقة في الموقع حتى 10 ثوانٍ؛ ومن دون معرّف مزوّد تُحمَّل الشيفرة كعنصر عادي.

المراجعة اليدوية

يولد كل تصميم بحالة en_revision ويراجعه شخص قبل أن يُعرض. بعد الموافقة تجعله active أو paused؛ وعند الرفض ترى السبب ويمكنك التعديل وإعادة الإرسال. لا يصل إلى الزائر أي شيء من تصميم غير مُراجَع — لا الترميز ولا السكربت ولا شيفرة التتبّع.

تغيير رابط النقر أو المحتوى أو الملف في تصميم موافَق عليه يعيده إلى المراجعة: ما وُوفق عليه هو ما يُعرض، ولا شيء غيره أبدًا.

المعلنون

شراء المساحات

يعرض المعرض كل مساحة معروضة للبيع: الموقع والحجم والصيغ المقبولة ونموذج البيع والسعر الذي حدده الناشر. تختار مساحة، وتصميمًا بصيغة تقبلها المساحة، وميزانية، وتاريخ بداية. يستخدم التسعير والخصم المعادلة نفسها:

النموذجتدفع مقابلتحصل على
cpmألف ظهورالظهور = الميزانية × 1000 / السعر
cpcنقرةالنقرات = الميزانية / السعر
cpdيومالأيام = الميزانية / السعر

الحد الأدنى للطلب $5؛ ويرفض التسعير أي مبلغ أقل. الطلب شراء مسبق الدفع لحجم معين — يتحرك المال مرة واحدة عند الشراء. أرسل idempotencyKey فيعيد الطلب المتكرر الطلب نفسه بدل إنشاء طلب ثانٍ.

كيف تدفع

الطريقةكيف يعمل
رصيد الحسابيُدفع الطلب في الاستدعاء نفسه من رصيدك في For Hosting. إذا لم يكفِ الرصيد بقي الطلب معلقًا ويشير الرد إلى شحن الرصيد؛ ويمكنك إعادة محاولة الدفع لاحقًا.
يدوييُنشأ الطلب معلقًا؛ ويعلّمه فريقنا مدفوعًا بعد استلام الدفع خارج اللوحة. ولا يُعرض حتى ذلك الحين.
إعلانات الدارتصميمك على مساحتك: يولد الطلب مدفوعًا بتكلفة صفر. السجل نفسه، بلا مال.

عند تعليم الطلب مدفوعًا، يُقيَّد 80% من سعره النهائي لناشر المساحة — على الطلب كاملًا لا بالتناسب مع التسليم. تُعاد المساحة للنشر فورًا ويبدأ عرض تصميمك في الدقيقة التالية.

الناشرون

المواقع والمساحات والوسم والمدفوعات

المواقع

سجّل موقعًا بنطاقه (كن ناشرًا). يولد معلقًا ويتحقق منه شخص قبل أن تستطيع مساحاته البيع — فالنطاق غير المُتحقق منه لا يستطيع كسب حصة. سحب موقع يبدأ فترة تهدئة مدتها 90 يومًا على النطاق: لا يستطيع أحد آخر تسجيله في أثنائها ووراثة سجله.

المساحات

المساحة هي الحيّز القابل للبيع: اسم، وحجم بالبكسل (أو -1 لعرض متكيّف)، والصيغ التي تقبلها، ونموذج بيع بسعره، وما إذا كانت معروضة في المعرض. يمكنك تعيين تصميم احتياطي خاص بك يُعرض حين لا يكون هناك مؤهل آخر — وهو يتجاوز الاستهداف والحدود.

يعمل سلوكان اختياريان في متصفح الزائر: التحديث التلقائي (طلب جديد كل N ثانية، بحد أدنى 5؛ التبويب المخفي لا يُحدَّث أبدًا، والحيّز الذي يعود فارغًا يحتفظ بالإعلان السابق) وتمرير المعاملات (تسافر سلسلة استعلام الصفحة مع النقرة إلى وجهة المعلن). تعلن المساحة البينية أيضًا أي الروابط تشغّل الطبقة — افتراضيًا p a, nav a, h2 a — والثواني قبل إمكان إغلاقها.

الوسم

الصقه حيث يجب أن يظهر الإعلان. معرّف المساحة من اللوحة (المواقع والمساحات). الوسم نفسه يعرض كل الصيغ التي تقبلها المساحة؛ والمساحة البينية تستخدم الوسم القياسي أيضًا.

القياسي (div وscript، غير متزامن):

<div data-fh-ad="zon_XXXXXXXXXXXXXXXXXXXXXXXX"></div>
<script src="https://api.ad.forhosting.com/ad-tag.js" async></script>

القديم، لأنظمة إدارة المحتوى التي لا تشغّل سكربتات غير متزامنة:

<script src="https://api.ad.forhosting.com/ad-serve?zone=zon_XXXXXXXXXXXXXXXXXXXXXXXX&mode=js"></script>

رابط نصي: عنوان URL يحتسب الظهور ويعيد التوجيه إلى المعلن:

https://api.ad.forhosting.com/ad-serve?zone=zon_XXXXXXXXXXXXXXXXXXXXXXXX&mode=link

الوسم يُحدِّث نفسه: لا يحمل رابطه رقم إصدار ولا يتغيّر أبدًا، لذا يصل أي تحسين من جانبنا إلى كل المواقع خلال نحو undefined دقيقة دون أن يعدّل أحد أي قالب (يقدّم اليوم v6، في ترويسة x-tag-version). ينتظر حتى تنتهي صفحتك من التحميل قبل أن يطلب أي شيء، فلا تزاحم الإعلانات محتواك أبدًا. علاماته الوحيدة في صفحتك هي الخاصية data-fh-ad ومعرّف الطبقة — جرى فحصها مقابل قوائم حجب الإعلانات الشائعة دون أي تطابق. وتستخدم حدود التكرار كوكي من الطرف الأول.

المدفوعات

تتراكم حصتك البالغة 80% من كل طلب مدفوع في اللوحة (المدفوعات). عندما يبلغ المتراكم $10، اطلب الدفع بالطريقة المحددة في ملفك (paypal, bank, other)؛ يدفع فريقنا خارج اللوحة ويسجّل المرجع.

الحالات: accruedrequestedprocessingpaid؛ ويعود إليك الدفع الفاشل مع السبب كي تطلبه مجددًا ببيانات مصحَّحة.

للجميع

التقارير

يُحتسب الظهور والنقرات وبداية/نهاية الفيديو عند الحافة، مع كل طلب. قبل الاحتساب تُرشَّح الحركة: الزواحف المعروفة بوكيل المستخدم، وشبكات مراكز البيانات، والطلبات ذات درجة روبوت منخفضة جدًا، وأي IP يكرر الطلب نفسه خلال 2 ثانية. الطلب المُرشَّح يحصل مع ذلك على إعلانه أو إعادة توجيهه — ما يُحمى هو العدّاد فقط.

كل 5 دقائق تُجمَّع الأعداد في صفوف يومية لكل تصميم ومساحة ومضيف مُحيل. قد يتأخر اليوم الجاري بهذا المقدار؛ أما الأيام المُقفلة فلا تتغير أبدًا.

تعرض اللوحة (التقارير) الإجماليات وسلسلة يومية، وCTR (النقرات ÷ الظهور × 100) وeCPM (القيمة المُسلَّمة × 1000 ÷ الظهور)، لجهة المعلن أو جهة الناشر، وقائمة بالأعلى حسب التصميم أو المساحة أو الحملة أو الموقع أو مضيف المُحيل. يُحفظ مضيف المُحيل فقط، لا عنوان URL أبدًا.

الدمج

مرجع واجهة API

العنوان الأساسي https://api.ad.forhosting.com. أرسل مفتاحك كرمز Bearer؛ والأجسام والردود بصيغة JSON. لكل رد الشكل {"success":true,"data":…} أو {"success":false,"error":{"code","message"}} مع حالة HTTP المطابقة.

curl https://api.ad.forhosting.com/me \
  -H "Authorization: Bearer ads_ten_…"

نطاقات بيانات الاعتماد

النطاقما يستطيع فعله
sessionما تستخدمه اللوحة: حسابك، وصول كامل، ينتهي خلال دقائق. تصدره البوابة عند فتح اللوحة.
tenantحسابك، وصول كامل، دائم. لتكاملاتك.
readحسابك، قراءة فقط. للوحات المتابعة والروبوتات التي يجب ألا تغيّر شيئًا.
systemالشركة: أي حساب (مع tenantId صريح)، والمراجعات، والتحقق من المواقع، والمدفوعات اليدوية، والصرف. يستخدم الفريق جلسة system تنتهي هي الأخرى.

بيانات اعتماد tenant أو read أو session تعمل دائمًا على حسابها — ويُتجاهل أي tenantId يرسله العميل. المعرّف الذي يخص شخصًا آخر يعيد 404 لا 403: لا تؤكد واجهة API وجوده أبدًا.

المسارات

كل مسار تعلنه الخدمة، مع النطاق الذي يطلبه الموجّه — مشتق من الموجّه نفسه في كل بناء.

الطريقةالمسارالنطاق
GET/عام
GET/ad-serveعام
GET/ad-clickعام
GET/ad-video-eventعام
GET/ad-a/*عام
GET/ad-p/*عام
GET/ad-preview/*عام
GET/ad-tag.jsعام
POST/tenantssystem
GET/tenantssystem
GET/tenants/:idأي
PATCH/tenants/:idكتابة
POST/tenants/:id/sessionssystem
POST/sessions/staffsystem
DELETE/sessions/selfأي
DELETE/sessions/:idsystem
GET/meأي
POST/tenants/:id/keysكتابة / system
GET/tenants/:id/keysقراءة / system
DELETE/tenants/:id/keys/:keyIdكتابة / system
GET/me/payout-profileقراءة
PUT/me/payout-profileكتابة
POST/campaignsكتابة
GET/campaignsقراءة
GET/campaigns/:idقراءة
PATCH/campaigns/:idكتابة
DELETE/campaigns/:idكتابة
POST/campaigns/:id/duplicateكتابة
POST/creativesكتابة
GET/creativesقراءة
GET/creatives/:idقراءة
PATCH/creatives/:idكتابة
DELETE/creatives/:idكتابة
PUT/creatives/:id/assetكتابة
POST/creatives/:id/duplicateكتابة
POST/creatives/bulkكتابة
GET/moderation/queuesystem
GET/moderation/preview-url/:idأي
POST/creatives/:id/approvesystem
POST/creatives/:id/rejectsystem
POST/creatives/:id/emergency-blocksystem
POST/sitesكتابة
GET/sitesقراءة
GET/sites/pendingsystem
GET/sites/:idقراءة
PATCH/sites/:idكتابة
DELETE/sites/:idكتابة
POST/zonesكتابة
GET/zonesقراءة
GET/zones/:idقراءة
PATCH/zones/:idكتابة
DELETE/zones/:idكتابة
GET/zones/:id/tagقراءة
GET/zones/:id/quoteأي
POST/zones/:id/publishsystem
GET/marketplaceأي
POST/checkoutكتابة
GET/ordersقراءة
GET/orders/:idقراءة
GET/orders/pendingsystem
POST/orders/:id/payكتابة
POST/orders/:id/mark-paidsystem
GET/payoutsقراءة
GET/payouts/pendingsystem
POST/payouts/:id/requestكتابة
POST/payouts/:id/statussystem
POST/payouts/:id/mark-paidsystem
GET/statsقراءة
GET/stats/topقراءة
GET/settingsأي
PUT/settingssystem
GET/templatesأي
POST/templatesكتابة
PATCH/templates/:idكتابة
DELETE/templates/:idكتابة
POST/templates/:id/renderأي
GET/geo/countriesأي
GET/geo/regionsأي

عام: بلا بيانات اعتماد — مسار العرض · أي: أي بيانات اعتماد صالحة، على حسابها · قراءة: tenant أو session أو read · كتابة: tenant أو session (يُرفض read) · system: الشركة فقط

أخطاء يجدر معرفتها: 401 unauthorized (بيانات اعتماد مفقودة أو منتهية)، 403 forbidden (النطاق لا يستطيع ذلك)، 404 not_found، 400 bad_request مع السبب في الرسالة، 409 conflict (انتقال حالة غير مسموح)، 402 insufficient_balance عند دفع طلب، و503 payments_disabled إذا كانت المبيعات متوقفة.

ابدأ

افتح لوحتك

سجّل الدخول في forhosting.com واختر «إدارة AD الخاص بي» من قائمة حسابك. يضيف الناشرون موقعًا ويحصلون على وسمهم؛ وينشئ المعلنون حملة ويشترون مساحة.

الأسئلة الشائعة

أسئلة تقنية

هل يمكنني تشغيل حملة حقيقية اليوم؟

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

من أين أحصل على الوسم؟

اللوحة ← المواقع والمساحات ← الحصول على الوسم. لكل مساحة وسمها؛ النسخة القياسية سطران: div وscript.

لماذا لم يُعرض تصميمي فورًا؟

كل تصميم يمر بمراجعة يدوية قصيرة قبل عرضه — لحماية المواقع التي يظهر فيها إعلانك. وتنطبق أيضًا قواعد التدوير والحدود: التصميم المحدود أو المضبوط الوتيرة يتخطى بعض الطلبات عمدًا، والمساحة المعدَّلة تحتاج حتى دقيقة لتتحدث عند الحافة.