Annual Ads

תיעוד למפתחים

בנו ישירות על גבי פלטפורמת Annual Ads — צרו מפרסמים, פרסמו מודעות, יזמו תשלומים ועקבו אחר הדירוג, והכל באמצעות ה-API.

ראו את טבלת המחירים המלאה

אתה שומר 70% מהסכום שמשלמים המפרסמים במצב 'Connect' עבור הפרסומות שלהם — הסכום מועבר אוטומטית לארנק שלך. ראה כיצד זה עובד בהמשך.

כתובת URL בסיסית

https://api.adhub365.com
OpenAPI 3

אימות

כל בקשה מאומתת באמצעות מפתח סודי בכותרת ה-Authorization, תוך שימוש בשיטת ה-Bearer.

POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/json

סביבת בדיקה וסביבת ייצור

מפתחות סנדבוקס ומפתחות ייצור מבודדים לחלוטין זה מזה — מפתח סנדבוקס לעולם לא יוכל לקרוא או לכתוב נתונים שנוצרו על ידי מפתח ייצור, ולהיפך.

תחומי יישום

כל מפתח מוגבל לתחומי הגישה שנקבעו בעת הנפקתו — למפתח אין לעולם גישה רחבה יותר מזו של חשבון השותף שיצר אותו.

מפתחות API מוענקים לחשבונות שותפים מאושרים על ידי צוות Annual Ads.

הקימו חשבון שותף

חלוקת הכנסות מפרסומות

אם מפתחות ה-API שלך יוצרים חשבונות מפרסמים עבור המשתמשים שלך (מצב 'Connect' — ראה 'אימות' לעיל), אתה זכאי לחלק מהסכום שהמפרסמים הללו משלמים עבור הפרסומות שלהם. החלוקה המפורטת להלן נקראת בזמן אמת מאותה נקודת קצה, אינה קבועה בקוד, והיא נפרדת לחלוטין מעמלת ההפניה המופיעה בהמשך העמוד.

GET https://api.adhub365.com/v1/partner-program
{
  "partner_share_percentage": 0.7,
  "platform_share_percentage": 0.3
}

70%

זה מגיע לך

התשלום מועבר אוטומטית לארנק התשלומים שהגדרת — אין צורך בבקשת משיכה.

30%

עובר ל"פרסומות שנתיות"

הנושא עוסק בפיקוח, באחסון ובתשתית הדירוג שעליה מוצגות המודעות שלכם.

איך זה עובד

  1. אחד המפרסמים שלכם במצב 'Connect' משלם עבור מודעה באמצעות האינטגרציה שלכם.
  2. המודעה נבדקת ומאושרת — באופן אוטומטי, או על ידי צוות הפיקוח שלנו.
  3. החלק שלך נמצא בתור לתשלום אוטומטי לארנק שלך, באותו מנגנון כמו בתוכנית ההפניות המפורטת להלן.
חלוקה לא מתבצעת לעולם לפני שהמודעה אושרה בפועל — אם צוות הבקרה דוחה אותה, לא חל כל תשלום בגין אותה עסקה. תוספת למודעה שכבר פעילה אינה כרוכה בסיכון כזה, והרווחים מחולקים באופן מיידי.

תנאי התשלום

  • ארנק לתשלומים במטבעות קריפטוגרפיים מוגדר בחשבון השותף שלך.
  • אין צורך ב-KYC מצדך — חשבון השותף שלך כבר נבדק בעת הפתיחה.

דוגמה: קריאת מניות מצטברות

GET https://api.adhub365.com/v1/partner/ad-revenue/earnings
Authorization: Bearer sk_sandbox_...
{
  "shares": [
    {
      "id": "share_1a2b...",
      "payment_id": "pay_9f2a...",
      "ad_id": "ad_7c31...",
      "partner_amount_usd": 140.0,
      "platform_amount_usd": 60.0,
      "status": "paid",
      "payable_after": "2026-08-03T00:00:00Z",
      "paid_at": "2026-08-05T10:12:00Z"
    }
  ],
  "total_payable_pending_usd": 0.0,
  "total_payable_usd": 0.0,
  "total_processing_usd": 0.0,
  "total_paid_usd": 140.0
}

נקודות קצה

חשבונות

POST/v1/partner/advertisers

הקימו חשבון מפרסם בשם אחד המשתמשים שלכם (במצב 'חיבור').

advertisers:write
GET/v1/partner/advertisers/{id}

חפש חשבון מפרסם שנוצר על ידי שותף זה.

advertisers:read

פרסומות

POST/v1/partner/ads

צור מודעה. המודעה תופיע בתחילה במצב טיוטה. השדות האופציונליים advertiser_type, promotion_type, link_type ו-promoted_brand מתארים פרסום של שותפים, הפניות, יוצרי תוכן או פרסום אישי — ראה ההערה להלן.

ads:write
GET/v1/partner/ads/{id}

חפש מודעה.

ads:read
PATCH/v1/partner/ads/{id}

עדכון תוכן עריכתי — כותרת, תיאור, קישור, סוג המפרסם, סוג המבצע, סוג הקישור והמותג המפורסם. לא ניתן לשנות כאן את הקטגוריה, האזור הגיאוגרפי וכל פרט אחר שמנוע הדירוג קורא.

ads:write
POST/v1/partner/ads/{id}/image

העלה תמונה למודעה ישירות (JPEG/PNG/WebP, עד 5 MB). נדרש לפני התשלום הראשון — ראה את הקטע בנושא תשלומים להלן.

ads:write
POST/v1/partner/ads/{id}/image-url

הגדר את תמונת המודעה באמצעות כתובת URL במקום להעלות קובץ — השרת מוריד אותה ומאחסן אותה מחדש בעצמו. אותה דרישה: יש לבצע זאת לפני התשלום הראשון.

ads:write
GET/v1/partner/ads/{id}/rank

הדירוג, הקטגוריה והיקף הגיאוגרפי הנוכחיים של מודעה.

ads:read
GET/v1/partner/ads/{id}/stats

מספר הצפיות והקליקים הכולל של מודעה — מספר הימים שחלפו/שנותרו נלקחים מהשדות `activated_at` ו-`expires_at` שכבר מופיעים ב-GET /{id}, והדירוג נלקח מ-GET /{id}/rank.

ads:read

תשלומים

POST/v1/partner/payments

התחל תשלום במטבע קריפטוגרפי עבור רכישה ראשונית או טעינה. תשלום ראשוני ייכשל עם קוד שגיאה 422, אלא אם למודעה כבר יש תמונה — ראה uploadAdImage/setAdImageUrl לעיל.

payments:write
GET/v1/partner/payments/{id}

בדוק את סטטוס התשלום.

payments:read

הפניות

POST/v1/partner/referrals

צור קישור הפניה.

referrals:write
GET/v1/partner/referrals/{code}/earnings

הכנסות מצטברות מהפניות, לפי סטטוס.

referrals:read

חלוקת הכנסות מפרסומות

GET/v1/partner/ad-revenue/earnings

חלקך, בשיעור של 70%, מהסכום ששילמו המפרסמים שיצרת במצב 'Connect' עבור המודעות שלהם, לפי סטטוס.

ad-revenue:read

יומן גישה

GET/v1/partner/access-log

היסטוריית השיחות המלאה עבור מפתח זה — שיטה, נתיב, כתובת IP, חותמת זמן.

שם

נקודות קצה ציבוריות

GET/v1/rankings?category={id}&geo={scope}

דירוג לקריאה בלבד עבור קטגוריה והיקף גיאוגרפי.

ציבורי
GET/v1/tiers

7 רמות התמחור שהוגדרו (סף, הטבות ללא הגבלה).

ציבורי
GET/v1/referral-program

אחוזי העמלה הקיימים כרגע עבור "שרשרת ההפניות" ו"מאגר המנהיגים".

ציבורי
GET/v1/partner-program

חלוקת ההכנסות מפרסומות הנוכחית (במצב "Connect") בינך לבין Annual Ads.

ציבורי
GET/v1/search?q={query}

חיפוש בשפה טבעית — מפנה שאילתה כגון "מפרסמי רהיטים בקניה" לקטגוריה ולהיקף הגיאוגרפי המתאימים, ולאחר מכן מציג את הדירוג, בסדר המדויק שבו הוא מופיע.

ציבורי

פרסום באמצעות תוכניות שותפים והפניות

advertiser_type, promotion_type, link_type ו-promoted_brand הם שדות אופציונליים בבקשות POST ו-PATCH ל- /v1/partner/ads — שירות "Annual Ads" אינו מוגבל לעסקים המפרסמים את עצמם. כאשר link_type הוא affiliate_link או referral_invitation_link, או ש-promotion_type הוא affiliate_offer או referral_opportunity, הערך של affiliate_terms_accepted חייב להיות true, אחרת הבקשה תידחה עם קוד שגיאה 422. אורך ה-title מוגבל ל-35 תווים ואורך ה-description ל-80 — שניהם נאכפים בצד השרת, ולא רק בממשק המשתמש של לוח המחוונים.

כלי בינה מלאכותית

כל חשבון מפרסם מקבל סט של כלים מובנים המבוססים על בינה מלאכותית — מחולל תוכן וגרפיקה למודעות, עוזר שיחתי, יועץ תקציבי ומבקר SEO חיצוני — אשר משולמים באמצעות נקודות זכות לבינה מלאכותית, בנוסף לתעריף השנתי הקבוע.

אלה פועלים באמצעות פרטי הכניסה למרכז השליטה של המפרסם עצמו (אסימון גישה למפגש), ולא באמצעות מפתח API של שותף — אינטגרציה של צד שלישי אינה יכולה להפעיל אותם בשם המפרסם.
POST/v1/advertisers/{id}/ai/assistant

Ask Annual Ads — עוזר שיחה צף, המיועד למטרות מידע בלבד, עם גישה לקריאה בלבד לנתוני החשבון.

ציבורי
POST/v1/advertisers/{id}/ai/creative-studio

יצירת כותרת מודעה, תיאור ומילות מפתח על סמך תיאור קצר של העסק.

2 נקודות זכות
POST/v1/advertisers/{id}/ai/creative-studio/image

יצירת תמונה לרישום (PNG) על סמך אותו תיאור עסקי, המאוחסנת ומוכנה לצרף למודעה.

8 נקודות זכות
POST/v1/advertisers/{id}/ai/budget-advisor

תחזית סטטיסטית אמיתית — לעולם לא ניחוש גנראטיבי — של הסיכויים לשמור על דירוג נתון לאחר 30/90/365 ימים.

1 נקודות זכות
POST/v1/advertisers/{id}/ai/seo-audit

לנתח את האתר החיצוני של המפרסם ולהציע שיפורים קונקרטיים בתחום קידום אתרים (SEO).

2 נקודות זכות

דוגמה — יצירת תוכן פרסומי

אותה קטגוריה ותיאור העסק משמשים גם כבסיס למחולל התמונות המופיע להלן.

POST https://api.adhub365.com/v1/advertisers/{advertiser_id}/ai/creative-studio
Authorization: Bearer <session access token>
Content-Type: application/json

{
  "category_name": "Furniture",
  "business_description": "We sell handmade oak dining tables"
}
{
  "title": "Handmade Oak Dining Tables — Built to Last",
  "description": "Solid oak dining tables crafted by hand, built to last a lifetime.",
  "keywords": ["oak furniture", "dining table", "handmade"],
  "credits_remaining": 8
}

יצירת תמונה תואמת לאותה מודעה:

POST https://api.adhub365.com/v1/advertisers/{advertiser_id}/ai/creative-studio/image
Authorization: Bearer <session access token>
Content-Type: application/json

{
  "category_name": "Furniture",
  "business_description": "We sell handmade oak dining tables"
}
{
  "visual_url": "https://cdn.uploadscenter.com/file_01m1...",
  "credits_remaining": 4
}

ווידג'ט

גרור יחידת מודעה מוכנה לאתר שלך — ללא צורך בבנייה, ללא iframe. הסקריפט מוצג ישירות בתוך הדף, בתוך Shadow DOM מבודד, כך שהסגנונות שלו לעולם לא יחלחלו לאתר שלך, והסגנונות של האתר שלך לעולם לא יחלחלו אליו.

הוסף את זה לדף שלך

<div
  class="annualads-widget"
  data-category="YOUR_CATEGORY_ID"
  data-geo="global"
  data-count="4"
  data-columns="2"
></div>
<script async src="https://adhub365.com/widget.js"></script>

כברירת מחדל, כאן מוצג הדירוג הציבורי המלא של הקטגוריה — כל המפרסמים בפלטפורמה, ולא רק אלה שהבאת. כדי להציג רק את המודעות של המפרסמים שיצרת באמצעות מצב 'Connect' (אלה שמייצרים את חלקך), הוסף את ה-data-partner עם מזהה השותף שלך (תוכל למצוא אותו בדף 'מפתחים' בלוח המחוונים שלך):

<div
  class="annualads-widget"
  data-category="YOUR_CATEGORY_ID"
  data-geo="global"
  data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>

אם המפרסמים שלכם משתייכים למספר קטגוריות, וותרו לחלוטין על השימוש ב-data-category — כאשר משתמשים ב-data-partner בלבד, הווידג'ט מציג את כל המודעות שלכם מכל הקטגוריות ברשת אחת, במקום שתצטרכו בלוק ווידג'ט נפרד לכל קטגוריה:

<div
  class="annualads-widget"
  data-geo="global"
  data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>

רוצים יחידה בסגנון כותרת תחתונה לצד היחידה המופיעה בתוך התוכן, כשכל אחת מהן מציגה מודעות שונות? הוסיפו בלוק ווידג'ט שני עם data-layout="compact" (מודעה אחת, הניתנת לקיפול ל"גלולה" קטנה) ו-data-offset המוגדר למספר המודעות שהווידג'ט הראשון שלכם כבר מציג:

<!-- in your content -->
<div
  class="annualads-widget"
  data-category="YOUR_CATEGORY_ID"
  data-geo="global"
  data-count="4"
  data-columns="2"
></div>

<!-- in your footer, showing different ads via data-offset -->
<div
  class="annualads-widget"
  data-category="YOUR_CATEGORY_ID"
  data-geo="global"
  data-layout="compact"
  data-offset="4"
></div>
<script async src="https://adhub365.com/widget.js"></script>

תכונות

data-categoryמזהה הקטגוריה שיש להציג. שדה חובה — אלא אם מוגדר "data-partner"; במקרה כזה, השמטתו תציג את המודעות של השותף בכל הקטגוריות.
data-geoהיקף גיאוגרפי: מקומי, אזורי או עולמי. ברירת המחדל היא עולמי.
data-countמספר המודעות שיוצגו. ברירת המחדל היא 4.
data-columnsמספר העמודות בטבלה. ברירת המחדל היא 2.
data-layoutרשת, רשימה או קומפקטי. ברירת המחדל היא רשת. האפשרות "קומפקטי" מציגה מודעה אחת (הערך של data-count מתעלם) עם כפתור שמאפשר לקפל אותה ל"גלולה" קטנה ולהחזיר אותה — יחידה בסגנון כותרת תחתונה, שהסקריפט עצמו לעולם לא ממקם באופן קבוע; אתה ממקם ומעצב את ה-div המכיל אותה כרצונך בדף שלך.
data-offsetמספר המודעות המובילות שיש לדלג עליהן. ברירת המחדל היא 0. מאפשר לווידג'ט שני באותו דף (למשל, ווידג'ט קומפקטי בתחתית הדף וווידג'ט מסוג רשת בחלקו העליון) להציג מודעות שונות במקום לחזור על אותה מודעה פעמיים — יש להזין את מספר המודעות שהווידג'ט האחר כבר מציג.
data-partnerמזהה השותף שלך (תוכל למצוא אותו בדף "מפתחים" בלוח המחוונים שלך). אופציונלי — ללא מזהה זה, הווידג'ט מציג את הדירוג הציבורי המלא לאותה קטגוריה, הכולל את כל המפרסמים בפלטפורמה. עם מזהה זה, יוצגו רק מודעות של מפרסמים שהבאת באמצעות מצב 'Connect' — אלה שמניבים בפועל את חלקך.

חלוקת הכנסות

כיצד עמלת ההפניה של השותף מגיעה אליו בפועל — האחוז, מנגנון התשלום והתנאים המוקדמים.

GET https://api.adhub365.com/v1/referral-program
{
  "levels": [
    {
      "level": 1,
      "percentage": 0.1
    }
  ],
  "leaders_pool_percentage_of_gmv": 0.05,
  "founding_advertiser_pool_percentage_of_gmv": 0.05,
  "payout_verification_window_hours": 48,
  "min_payout_usd": 1
}

לא מספר קבוע

אחוז העמלה מוגדר מצדנו ועשוי להשתנות — יש לקרוא אותו תמיד בזמן אמת מנקודת קצה זו, במקום לקבע ערך בקוד.

אוטומטי לחלוטין

אין מועד סיום למשיכה. משימה מתוזמנת מחשבת את הרווחים הניתנים לתשלום, מקבצת אותם לפי מפרסם, ומבצעת את התשלום באופן אוטומטי ברגע שמתקיימים כל התנאים המפורטים להלן.

תנאי התשלום

  • סך הרווחים הניתנים לתשלום של המפרסם מגיע לסכום התשלום המינימלי.
  • בחשבונם מוגדר ארנק לתשלומי מטבעות קריפטוגרפיים.
  • סטטוס ה-KYC שלהם אומת.

דוגמה: קריאת רווחים מצטברים

GET https://api.adhub365.com/v1/partner/referrals/{code}/earnings
Authorization: Bearer sk_sandbox_...
{
  "code": "ann-2f8c",
  "earnings": [
    {
      "id": "earn_1a2b...",
      "payment_id": "pay_9f2a...",
      "amount_usd": 30.0,
      "status": "paid",
      "payable_after": "2026-08-01T00:00:00Z",
      "paid_at": "2026-08-03T14:22:00Z"
    }
  ],
  "total_payable_pending_usd": 0.0,
  "total_payable_usd": 0.0,
  "total_processing_usd": 0.0,
  "total_paid_usd": 30.0
}

רמות תמחור (בשימוש)

קרא את הנתונים ישירות מנקודת קצה זו — לעולם אל תקבע ערכים אלה בקוד, שכן הם עשויים להשתנות מצדנו. בנו בורר רמות עבור המשתמשים שלכם במקום שדה לסכום חופשי: כל מחיר המוצג הוא כבר הסכום המדויק שיש לשלוח בעת יצירת התשלום, וההטבות הנלוות המוצגות כאן מפרטות למשתמשים בדיוק מה הם מקבלים תמורת אותו מחיר, כך שהם בוחרים מחיר שהם מבינים במקום לנחש מספר.

דרגהמחירפתיחת נעילה
Bronze$50.00

Basic visibility

Silver$300.00

Clickable link unlocked

קישור שניתן ללחוץ עליו
Gold$500.00

Animation unlocked

קישור שניתן ללחוץ עליואנימציה
Platinum$1,000.00

Enhanced exposure

קישור שניתן ללחוץ עליואנימציה
Diamond$2,500.00

Premium placement

קישור שניתן ללחוץ עליואנימציה
Elite$5,000.00

Top-tier visibility

קישור שניתן ללחוץ עליואנימציה
Legendary$10,000.00

Maximum visibility & branding

קישור שניתן ללחוץ עליואנימציה

מגבלות קצב

יש מגבלה על מספר הבקשות לכל מפתח, בכל דקה. כל תגובה מאומתת כוללת את הכותרות X-RateLimit-Limit, X-RateLimit-Remaining ו-X-RateLimit-Reset; חריגה מהמגבלה תביא לתגובה 429 Too Many Requests עם הכותרת Retry-After.

רשימת ה-IP המותרת

אופציונלי, לכל שותף. עד שתוסיף ערך, המפתחות שלך יקבלו בקשות מכל כתובת IP — הערך הראשון ישנה את כל המפתחות של אותו שותף כך שיפעלו אך ורק על פי רשימת ההיתרים.

Webhooks

כל ווב-הוק חתום באמצעות HMAC-SHA256, תוך שימוש בסוד שהונפק פעם אחת, בעת יצירתו — יש לאמת את החתימה לפני שמתחילים לסמוך על תוכן ההודעה. האירועים מועברים אך ורק לשותף שבבעלותו נמצא המפרסם הרלוונטי.

payment.succeededהתשלום אושר.
payment.refundedההחזר בוצע.
ad.activatedמודעה הופכת לפעילה, באופן אוטומטי או לאחר בדיקה של מנהל המערכת.
invoice.issuedמונפקת חשבונית.
referral.payout.completedעמלת הפניה הגיעה למעמד של "שולמה".
referral.payout.failedאצווה של תשלומים בגין הפניות נכשלה אצל הספק — הרווחים חוזרים לסטטוס "לפירעון" והניסיון מתבצע מחדש.
rank.changedדירוג המודעה משתנה — בין השאר כאשר התשלום של מפרסם אחר גורם לכך.
ad.expiring_soon30, 7 או יום אחד לפני שתוקף המודעה יפוג.
partner_ad_revenue.payout.completedתשלום חלוקת הרווחים מפרסומות הגיע למעמד "שולם".
partner_ad_revenue.payout.failedאצווה של תשלומים בגין חלוקת הכנסות מפרסום נכשלה אצל הספק — הסכומים חוזרים לרשימת התשלומים הממתינים ונעשה ניסיון חוזר.

ערכות פיתוח תוכנה

מתוכננים SDK-ים רשמיים ל-JavaScript/TypeScript ול-Python, שנוצרו על בסיס אותה מפרט API, אך הם טרם פורסמו — עד אז, יש לפנות ישירות ל-API ה-HTTP.

התחלה מהירה

עדיין אין SDK — אלה פונים ישירות ל-API של HTTP ופועלים כבר היום בכל שפת תכנות.

cURL

curl -X POST https://api.adhub365.com/v1/partner/ads \
  -H "Authorization: Bearer sk_sandbox_..." \
  -H "Content-Type: application/json" \
  -d '{"advertiser_id":"adv_9f2a...","category_id":"cat_furniture","geo_scope":"local","title":"..."}'

JavaScript

await fetch("https://api.adhub365.com/v1/partner/ads", {
  method: "POST",
  headers: {
    Authorization: "Bearer sk_sandbox_...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    advertiser_id: "adv_9f2a...",
    category_id: "cat_furniture",
    geo_scope: "local",
    title: "...",
  }),
});

Python

import requests

requests.post(
    "https://api.adhub365.com/v1/partner/ads",
    headers={"Authorization": "Bearer sk_sandbox_..."},
    json={
        "advertiser_id": "adv_9f2a...",
        "category_id": "cat_furniture",
        "geo_scope": "local",
        "title": "...",
    },
)