תצורת סקריפט שיווק מתקדם
דף זה מתאר את נקודות ה-API של סקריפט השיווק המתקדם. בשונה מסקריפטים אחרים, השיווק המתקדם אינו נוצר דרך נקטות הקצה הכללית POST /api/v1/task — הוא פועל על בסיס מאגר נתונים לשימוש חוזר של יעדים ויש לו נקודות קצה ייעודיות.
סקירה כללית
קמפיין שיווק מתקדם משלב מספר פעולות צמיחה (מעקב, ביטול מעקב, דיווח, הודעות ישירות, עצירה, תגובות מסיביות) בריצה אחת על מאגר יעדים. מאגר היעדים מאוחסן כמאגר נתונים:
- סוג נתונים — מאגר הנתונים מכיל
usernames(כינויי TikTok/Instagram) אוpost_links(כתובות URL של פוסטים). - אסטרטגיה — שולטת כיצד מחולקים היעדים בין המכשירים שלך:
shared_pool— כל מכשיר/חשבון שנבחר מעבד את כל היעדים.consume_once— היעדים מחולקים בין המכשירים וכל אחד נצרך פעם אחת.
הזרימה הטיפוסית היא:
- ייבוא יעדים למאגר נתונים ← קבל
dataset_id. - הפעלה של קמפיין המתייחס ל-
dataset_idעל מכשיר אחד או יותר.
הגדרות הפיצ'רים (מעקב / הודעות ישירות / תגובות וכו') נקראות מהתצורה השמורה בתוכנת שולחן העבודה (super_marketing_settings.json). ניתן לעקוף כל הגדרה לכל ריצה על ידי מסירת script_config בבקשת ההפעלה.
כל נקודות הקצה של שיווק מתקדם דורשות תוכנית Pro, Team או Business, כמו שאר ה-API המקומי.
ייבוא מאגר נתונים
יצירת מאגר נתונים חדש או הוספת יעדים למאגר קיים.
- נקודת קצה:
POST /api/v1/super-marketing/dataset
גוף הבקשה
| שדה | סוג | נדרש | ברירת מחדל | תיאור |
|---|---|---|---|---|
| dataset_id | integer | No | — | מזהה מאגר נתונים קיים להוספה / להחלפה. השמט או השתמש ב-0 ליצירת מאגר חדש. |
| data_type | string | Yes | — | usernames או post_links |
| strategy | string | Yes | — | shared_pool או consume_once |
| entries | string[] | Yes* | [] | יעדים כמערך JSON. גובר על raw_text. |
| raw_text | string | Yes* | — | יעדים כמחרוזת מופרדת ביר ידות שורה (חלופה ל-entries). |
| mode | string | No | append | append מוסיף לרשומות קיימות; replace מוחק רשומות קיימות תחילה. |
| label | string | No | — | תווית קריאה אנושית אופציונלית למאגר הנתונים. |
ספק יעדים דרך entries או raw_text. רשומות כפולות וריקות מתעלמות. ייבוא אחד מוגבל ל-100,000 רשומות.
דוגמה
curl -X POST http://localhost:50809/api/v1/super-marketing/dataset \
-H "Content-Type: application/json" \
-d '{
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Campaign A targets",
"entries": ["@user_one", "@user_two", "@user_three"]
}'
הוספת עוד יעדים למאגר נתונים קיים:
curl -X POST http://localhost:50809/api/v1/super-marketing/dataset \
-H "Content-Type: application/json" \
-d '{
"dataset_id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"mode": "append",
"raw_text": "@user_four\n@user_five\n@user_six"
}'
תגובה לדוגמה
{
"code": 0,
"message": "success",
"data": {
"dataset": {
"stats": {
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Campaign A targets",
"total": 3,
"consumed": 0,
"remaining": 3,
"created_at": "2026-06-22 09:00:00",
"updated_at": "2026-06-22 09:00:00"
},
"entries": [
{ "id": 1, "value": "@user_one", "consumed": false, "consumed_by": null, "consumed_at": null, "created_at": "2026-06-22 09:00:00", "updated_at": "2026-06-22 09:00:00" }
]
},
"summary": {
"inserted": 3,
"duplicates": 0,
"skipped_empty": 0,
"removed": 0,
"truncated": 0
}
}
}
רשימת מאגרי נתונים
אחזור כל מאגרי הנתונים עם נתוני צריכה.
- נקודת קצה:
GET /api/v1/super-marketing/datasets
פרמטרי שאילתה
| פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
| data_type | string | — | מסנן אופציונלי: usernames או post_links |
דוגמה
curl "http://localhost:50809/api/v1/super-marketing/datasets?data_type=usernames"
תגובה לדוגמה
{
"code": 0,
"message": "success",
"data": [
{
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Campaign A targets",
"total": 6,
"consumed": 0,
"remaining": 6,
"created_at": "2026-06-22 09:00:00",
"updated_at": "2026-06-22 09:05:00"
}
]
}
קבל מאגר נתונים
שליפת נתוני מאגר הנתונים ודף מהרשומות שלו.
- נקודת קצה:
GET /api/v1/super-marketing/dataset/{id}
פרמטרי שאילתה
| פרמטר | סוג | ברירת מחדל | תיאור |
|---|---|---|---|
| limit | integer | 50 | רשומות לכל דף (מקסימום 500) |
| offset | integer | 0 | מספר רשומות לדלג |
דוגמה
curl "http://localhost:50809/api/v1/super-marketing/dataset/7?limit=100&offset=0"
נקה מאגר נתונים
הסרת כל הרשומות ממאגר הנתונים. רשומת מאגר הנתונים עצמו נשמרת (וה-dataset_id שלה נשאר תקף לייבואים עתידיים).
- נקודת קצה:
DELETE /api/v1/super-marketing/dataset/{id}
דוגמה
curl -X DELETE http://localhost:50809/api/v1/super-marketing/dataset/7
תגובה לדוגמה
{
"code": 0,
"message": "success",
"data": { "cleared": true, "dataset_id": 7 }
}
הפעלת קמפיין
הפעלת קמפיין שיווק מתקדם על המכשירים הנתונים, תוך שימוש ביעדי מאגר הנתונים.
- נקודת קצה:
POST /api/v1/super-marketing/run
גוף הבקשה
| שדה | סוג | נדרש | ברירת מחדל | תיאור |
|---|---|---|---|---|
| serials | string[] | Yes | [] | מספרי סידורי של מכשירים להפעלה עליהם |
| dataset_id | integer | Yes | — | מאגר נתונים שיעדיו מניעים את הקמפיין |
| enable_multi_account | boolean | No | false | יצירת משימה אחת לכל חשבון בכל מכשיר |
| merge_same_username_tasks | boolean | No | false | אריזת כל יעדי המכשיר למשימה אחת במקום משימה אחת לכל יעד |
| platform | string | No | — | דריסת פלטפורמה (tiktok / instagram) |
| min_interval | integer | No | 0 | דקות מינימום בין זמני התחלה של משימות |
| max_interval | integer | No | 0 | דקות מקסימום בין זמני התחלה של משימות |
| start_time | string | No | — | זמן התחלה של המשימה הראשונה בפורמט HH:MM |
| rotate_proxy | boolean | No | false | החלפת הפרוקסי של המכשיר לפני ההפעלה |
| switch_account_method | string | No | — | כיצד להחליף חשבונות במצב רב-חשבונות |
| official_packages | string[] | No | [] | הגבלת ביצוע לחבילות רשמיות אלה |
| clone_package_prefix | string | No | — | הגבלת ביצוע לאפליקציות שיבוט שם החבילה שלהן מתחיל בקידומת זו |
| script_config | object | No | — | הגדרות פיצ'ר שדורסות את התצורה השמורה בשולחן העבודה |
אינך מעביר data_source_type בבקשת ההפעלה — הקמפיין משתמש אוטומטית ב-data_type ממאגר הנתונים. מאגרי נתונים של קישורי פוסטים תומכים רק בפיצ'רים boost_posts ו-mass_comment.
עקיפות script_config
script_config הוא אופציונלי. כאשר מושמט, הקמפיין משתמש בהגדרות שקבעת בתוכנת שולחן העבודה. ספק אותו להפעלת קמפיין עצמאי מלא או לדריסת שדות ספציפיים. מפתחות מקבלים גם camelCase וגם snake_case.
| שדה | סוג | תיאור |
|---|---|---|
| access_method | string | כיצד להגיע ליעדי שמות משתמש: search או direct |
| features.follow_users | boolean | עקוב אחרי כל יעד |
| features.unfollow_users | boolean | בטל מעקב אחרי כל יעד |
| features.report_account | boolean | דווח על כל חשבון יעד |
| features.send_dm | boolean | שלח הודעה ישירה לכל יעד |
| features.boost_posts | boolean | לייק / מועדפים / שיתוף מחדש / שיתוף לפוסטים של היעד |
| features.mass_comment | boolean | הגב על פוסטים של היעד |
| follow_settings.boost_type | string | follow או unfollow |
| dm_settings.message_format | string | multiline (ברירת מחדל) או spintax — ראה את הפרק על פורמטי ההודעות למטה |
| dm_settings.message_contents | string | טקסט ההודעה. ב-multiline כל שורה היא הודעה נפרדת (### = מעבר שורה בתוך הודעה); ב-spintax כל המחרוזת היא הודעה אחת (מעברי שו רה רגילים, קבוצות {option1|option2}). תומך ב-{username} וב-{sender_username}. |
| dm_settings.message_order | string | random או sequential (חל על פורמט multiline בלבד) |
| dm_settings.insert_emoji | boolean | הכנס אמוג'י אקראי להודעה הישירה |
| dm_settings.generate_by_chatgpt | boolean | צור את ההודעה הישירה עם ChatGPT |
| dm_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| post_settings.skip_posts_count | integer | פוסטים לדלג לפני הפעולה (0–8, מקור שמות משתמש בלבד) |
| post_settings.max_posts_count | integer | מקסימום פוסטים לעיבוד לכל יעד |
| post_settings.enable_like | boolean | לייק לפוסטים |
| post_settings.enable_favorite | boolean | הוסף פוסטים למועדפים |
| post_settings.enable_repost | boolean | שתף מחדש פוסטים |
| post_settings.enable_share | boolean | שתף פוסטים |
| post_settings.repeat_times | integer | מספר פעמים לחזור על פעולות הפוסט |
| post_settings.view_durations | integer[] | שניות [min, max] לצפייה בכל פוסט |
| comment_settings.comment_content | string | טקסט התגובה (מופרד בירידות שורה לגרסאות מרובות) |
| comment_settings.comment_order | string | random או sequential |
| comment_settings.insert_emoji | boolean | הכנס אמוג'י אקראי לתגובה |
| comment_settings.generate_by_chatgpt | boolean | צור את התגובה עם ChatGPT |
| comment_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| task_finish_wait_time | integer | שניות להמתין לפני סיום (מונע אובדן נתונים) |
פורמטי הודעות DM
dm_settings.message_contents מפוענח לפי dm_settings.message_format, בדיוק כפי שכיתובי פוסטים מפוענחים לפי caption_format:
| פורמט | תבניות | מעברי שורה | גיוון אקראי |
|---|---|---|---|
multiline (ברירת מחדל) | אחת לכל שורה לא ריקה, נבחרת לפי message_order | ### בתוך שורה | בין השורות, באמצעות message_order |
spintax | כל המחרוזת היא תבנית אחת | \n רגיל בתוך המחרוזת | קבוצות {option1|option2} |
{username} ו-{sender_username} מוחלפים לפני פענוח קבוצות ה-spintax, כך שמשתנה לעולם אינו נחשב לקבוצת spintax בעלת אפשרות אחת.
// multiline
"dm_settings": {
"message_format": "multiline",
"message_contents": "Hey {username}! Love your content 🙌\nHi {username}###Here is a video I made###v.example.com/{username}",
"message_order": "sequential"
}
// spintax
"dm_settings": {
"message_format": "spintax",
"message_contents": "{Hi|Hello} {username}\n\nHere is a video I made\n\nv.example.com/{username}"
}