Configurazione Script Super Marketing
Questa pagina documenta gli endpoint API per lo script Super Marketing. A differenza degli altri script, il super marketing non viene creato tramite l'endpoint generico POST /api/v1/task — funziona su un set di dati riutilizzabile di destinazioni e dispone di endpoint dedicati.
Panoramica
Una campagna di super marketing combina diverse azioni di crescita (follow, unfollow, segnalazione, DM, boost, commento di massa) in una singola esecuzione su un pool di destinazioni. Il pool di destinazioni è memorizzato come set di dati:
- Tipo di dati — il set di dati contiene
usernames(handle TikTok/Instagram) opost_links(URL dei post). - Strategia — controlla come le destinazioni vengono distribuite tra i dispositivi:
shared_pool— ogni dispositivo/account selezionato elabora tutte le destinazioni.consume_once— le destinazioni vengono suddivise tra i dispositivi e ciascuna viene consumata una sola volta.
Il flusso tipico è:
- Importa le destinazioni in un set di dati → ottieni un
dataset_id. - Avvia una campagna che fa riferimento a quel
dataset_idsu uno o più dispositivi.
Le attivazioni delle funzionalità (follow / DM / commento, ecc.) e le relative impostazioni dettagliate vengono lette dalla configurazione salvata nell'app desktop (super_marketing_settings.json). Puoi sovrascrivere qualsiasi valore per ogni esecuzione passando script_config nella richiesta di avvio.
Tutti gli endpoint di super marketing richiedono un piano Pro, Team o Business, come il resto dell'API Locale.
Importa Set di Dati
Crea un nuovo set di dati o aggiungi destinazioni a uno esistente.
- Endpoint:
POST /api/v1/super-marketing/dataset
Corpo della Richiesta
| Campo | Tipo | Richiesto | Predefinito | Descrizione |
|---|---|---|---|---|
| dataset_id | integer | No | — | ID del set di dati esistente a cui aggiungere/sostituire. Ometti o usa 0 per creare un nuovo set di dati. |
| data_type | string | Sì | — | usernames o post_links |
| strategy | string | Sì | — | shared_pool o consume_once |
| entries | string[] | Sì* | [] | Destinazioni come array JSON. Ha priorità su raw_text. |
| raw_text | string | Sì* | — | Destinazioni come stringa separata da a capo (alternativa a entries). |
| mode | string | No | append | append aggiunge alle voci esistenti; replace cancella le voci esistenti prima. |
| label | string | No | — | Etichetta leggibile opzionale per il set di dati. |
Fornisci le destinazioni tramite entries o raw_text. Le voci duplicate e vuote vengono ignorate. Una singola importazione è limitata a 100.000 voci.
Esempio
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"]
}'
Aggiungi altre destinazioni a un set di dati esistente usando testo separato da a capo:
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"
}'
Risposta di Esempio
{
"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
}
}
}
Elenca Set di Dati
Recupera tutti i set di dati con le statistiche di consumo.
- Endpoint:
GET /api/v1/super-marketing/datasets
Parametri di Query
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| data_type | string | — | Filtro opzionale: usernames o post_links |
Esempio
curl "http://localhost:50809/api/v1/super-marketing/datasets?data_type=usernames"
Risposta di Esempio
{
"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"
}
]
}
Ottieni Set di Dati
Recupera le statistiche di un set di dati e una pagina delle sue voci.
- Endpoint:
GET /api/v1/super-marketing/dataset/{id}
Parametri di Query
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| limit | integer | 50 | Voci per pagina (max 500) |
| offset | integer | 0 | Numero di voci da saltare |
Esempio
curl "http://localhost:50809/api/v1/super-marketing/dataset/7?limit=100&offset=0"
Cancella Set di Dati
Rimuove tutte le voci da un set di dati. Il record del set di dati rimane (e il suo dataset_id rimane valido per importazioni future).
- Endpoint:
DELETE /api/v1/super-marketing/dataset/{id}
Esempio
curl -X DELETE http://localhost:50809/api/v1/super-marketing/dataset/7
Risposta di Esempio
{
"code": 0,
"message": "success",
"data": { "cleared": true, "dataset_id": 7 }
}
Avvia Campagna
Avvia una campagna di super marketing sui dispositivi specificati, usando le destinazioni di un set di dati.
- Endpoint:
POST /api/v1/super-marketing/run
Corpo della Richiesta
| Campo | Tipo | Richiesto | Predefinito | Descrizione |
|---|---|---|---|---|
| serials | string[] | Sì | [] | Numeri seriali dei dispositivi su cui eseguire |
| dataset_id | integer | Sì | — | Set di dati le cui destinazioni guidano la campagna |
| enable_multi_account | boolean | No | false | Crea un'attività per ogni account su ogni dispositivo |
| merge_same_username_tasks | boolean | No | false | Raggruppa tutte le destinazioni di un dispositivo in un'unica attività invece di una per destinazione |
| platform | string | No | — | Override della piattaforma (tiktok / instagram). Applicato solo su build multi-piattaforma |
| min_interval | integer | No | 0 | Minuti minimi tra le ore di inizio delle attività scaglionate |
| max_interval | integer | No | 0 | Minuti massimi tra le ore di inizio delle attività scaglionate |
| start_time | string | No | — | Ora di inizio della prima attività in formato HH:MM |
| rotate_proxy | boolean | No | false | Ruota il proxy del dispositivo prima di eseguire |
| switch_account_method | string | No | — | Come cambiare account in modalità multi-account (es. profile) |
| official_packages | string[] | No | [] | Limita l'esecuzione a questi pacchetti ufficiali (modalità multi-account) |
| clone_package_prefix | string | No | — | Limita l'esecuzione alle app clone il cui nome inizia con questo prefisso |
| script_config | object | No | — | Attivazioni delle funzionalità / impostazioni per funzionalità che sovrascrivono la configurazione salvata nell'app desktop (vedi sotto) |
Non passi data_source_type nella richiesta di avvio — la campagna usa automaticamente il data_type del set di dati (usernames o post_links). I set di dati con link ai post supportano solo le funzionalità boost_posts e mass_comment.
Override di script_config
script_config è facoltativo. Se omesso, la campagna usa le attivazioni delle funzionalità e le impostazioni configurate nell'app desktop. Forniscilo per eseguire una campagna completamente autonoma o per sovrascrivere campi specifici. Le chiavi accettano sia camelCase che snake_case.
| Campo | Tipo | Descrizione |
|---|---|---|
| access_method | string | Come raggiungere le destinazioni per username: search o direct |
| features.follow_users | boolean | Segui ogni destinazione |
| features.unfollow_users | boolean | Smetti di seguire ogni destinazione |
| features.report_account | boolean | Segnala ogni account di destinazione |
| features.send_dm | boolean | Invia un messaggio diretto a ogni destinazione |
| features.boost_posts | boolean | Metti mi piace / aggiungi ai Preferiti / condividi i post della destinazione |
| features.mass_comment | boolean | Commenta i post della destinazione |
| follow_settings.boost_type | string | follow o unfollow |
| dm_settings.message_contents | string | Testo DM (separato da a capo per più varianti) |
| dm_settings.message_order | string | random o sequential |
| dm_settings.insert_emoji | boolean | Inserisci emoji casuale nel DM |
| dm_settings.generate_by_chatgpt | boolean | Genera il DM con ChatGPT |
| dm_settings.chatgpt_prompt | string | Prompt usato per generare il DM |
| dm_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| post_settings.skip_posts_count | integer | Post da saltare prima di agire (0–8, solo origine per username) |
| post_settings.max_posts_count | integer | Numero massimo di post da elaborare per destinazione |
| post_settings.enable_like | boolean | Metti mi piace ai post |
| post_settings.enable_favorite | boolean | Aggiungi i post ai Preferiti |
| post_settings.enable_repost | boolean | Condividi i post |
| post_settings.enable_share | boolean | Condividi i post |
| post_settings.repeat_times | integer | Volte per ripetere le azioni sui post |
| post_settings.view_durations | integer[] | Secondi [min, max] per guardare ogni post |
| comment_settings.comment_content | string | Testo del commento (separato da a capo per più varianti) |
| comment_settings.comment_order | string | random o sequential |
| comment_settings.insert_emoji | boolean | Inserisci emoji casuale nel commento |
| comment_settings.generate_by_chatgpt | boolean | Genera il commento con ChatGPT |
| comment_settings.chatgpt_settings | object | { url, api_key, model, system_prompt } |
| task_finish_wait_time | integer | Secondi di attesa prima di terminare (evita la perdita di dati) |
Esempi
Esecuzione Minimale (usa le impostazioni salvate nell'app desktop)
curl -X POST http://localhost:50809/api/v1/super-marketing/run \
-H "Content-Type: application/json" \
-d '{
"serials": ["device_serial_1", "device_serial_2"],
"dataset_id": 7
}'
Campagna Autonoma di Follow + DM
curl -X POST http://localhost:50809/api/v1/super-marketing/run \
-H "Content-Type: application/json" \
-d '{
"serials": ["device_serial_1"],
"dataset_id": 7,
"enable_multi_account": true,
"min_interval": 1,
"max_interval": 3,
"script_config": {
"access_method": "search",
"features": {
"follow_users": true,
"send_dm": true
},
"follow_settings": { "boost_type": "follow" },
"dm_settings": {
"message_contents": "Hey! Love your content 🙌\nGreat posts, keep it up!",
"message_order": "random",
"insert_emoji": true
}
}
}'
Commento di Massa su un Set di Dati con Link ai Post
curl -X POST http://localhost:50809/api/v1/super-marketing/run \
-H "Content-Type: application/json" \
-d '{
"serials": ["device_serial_1"],
"dataset_id": 9,
"merge_same_username_tasks": true,
"script_config": {
"features": { "mass_comment": true },
"comment_settings": {
"comment_content": "🔥🔥🔥\nAmazing!\nLove this",
"comment_order": "random"
}
}
}'
Risposta di Esempio
{
"code": 0,
"message": "success",
"data": { "created_count": 6 }
}
created_count è il numero di attività create. Le attività in attesa vengono quindi eseguite sui dispositivi assegnati come qualsiasi altra attività — monitoral tramite l'API di Gestione Attività.
Risposte di Errore
| Stato HTTP | Codice | Descrizione |
|---|---|---|
| 400 | 40001 | Parametri non validi (bad data_type/strategy, serials vuoto, dataset_id non positivo, script_config non oggetto, o nessuna attività creata) |
| 403 | 40301 | Vietato — L'accesso all'API richiede il piano Pro+ |
| 404 | 40401 | Set di dati non trovato |
| 500 | 50001 | Errore interno del server |
Se l'esecuzione restituisce il codice 40001 con un messaggio "No tasks created", verifica che il set di dati abbia ancora destinazioni rimanenti (per la strategia consume_once) e che i dispositivi selezionati siano online.
Vedi Anche
- Panoramica dell'API Locale - Panoramica API e avvio rapido
- API di Gestione Attività - Tracciare e gestire le attività create
- API Stato Account - Interrogare lo stato di account e dispositivi