Passa al contenuto principale

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/Threads) o post_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 è:

  1. Importa le destinazioni in un set di dati → ottieni un dataset_id.
  2. Avvia una campagna che fa riferimento a quel dataset_id su 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.

Supporto Threads​

Threads supporta la navigazione del profilo, follow/unfollow, DM (dove il target espone un pulsante Messaggio), visualizzazione/mi piace/salvataggio/repost del post e commenti. La condivisione viene saltata perché Threads non ha un flusso equivalente di condivisione-a-SMS. La segnalazione dell'account viene saltata perché Threads richiede un motivo di segnalazione selezionato manualmente che il percorso di automazione fisso non supporta.

Requisito Licenza

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​

CampoTipoRichiestoPredefinitoDescrizione
dataset_idintegerNo—ID del set di dati esistente a cui aggiungere/sostituire. Ometti o usa 0 per creare un nuovo set di dati.
data_typestringSì—usernames o post_links
strategystringSì—shared_pool o consume_once
entriesstring[]Sì*[]Destinazioni come array JSON. Ha priorità su raw_text.
raw_textstringSì*—Destinazioni come stringa separata da a capo (alternativa a entries).
modestringNoappendappend aggiunge alle voci esistenti; replace cancella le voci esistenti prima.
labelstringNo—Etichetta leggibile opzionale per il set di dati.
note

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​

ParametroTipoPredefinitoDescrizione
data_typestring—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​

ParametroTipoPredefinitoDescrizione
limitinteger50Voci per pagina (max 500)
offsetinteger0Numero 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​

CampoTipoRichiestoPredefinitoDescrizione
serialsstring[]Sì[]Numeri seriali dei dispositivi su cui eseguire
dataset_idintegerSì—Set di dati le cui destinazioni guidano la campagna
enable_multi_accountbooleanNofalseCrea un'attività per ogni account su ogni dispositivo
merge_same_username_tasksbooleanNofalseRaggruppa tutte le destinazioni di un dispositivo in un'unica attività invece di una per destinazione
platformstringNo—Override della piattaforma (tiktok / instagram). Applicato solo su build multi-piattaforma
min_intervalintegerNo0Minuti minimi tra le ore di inizio delle attività scaglionate
max_intervalintegerNo0Minuti massimi tra le ore di inizio delle attività scaglionate
start_timestringNo—Ora di inizio della prima attività in formato HH:MM
rotate_proxybooleanNofalseRuota il proxy del dispositivo prima di eseguire
switch_account_methodstringNo—Come cambiare account in modalità multi-account (es. profile)
official_packagesstring[]No[]Limita l'esecuzione a questi pacchetti ufficiali (modalità multi-account)
clone_package_prefixstringNo—Limita l'esecuzione alle app clone il cui nome inizia con questo prefisso
script_configobjectNo—Attivazioni delle funzionalità / impostazioni per funzionalità che sovrascrivono la configurazione salvata nell'app desktop (vedi sotto)
Il tipo di dati viene preso dal set di dati

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.

CampoTipoDescrizione
access_methodstringCome raggiungere le destinazioni per username: search o direct
features.follow_usersbooleanSegui ogni destinazione
features.unfollow_usersbooleanSmetti di seguire ogni destinazione
features.report_accountbooleanSegnala ogni account di destinazione
features.send_dmbooleanInvia un messaggio diretto a ogni destinazione
features.boost_postsbooleanMetti mi piace / aggiungi ai Preferiti / condividi i post della destinazione
features.mass_commentbooleanCommenta i post della destinazione
follow_settings.boost_typestringfollow o unfollow
dm_settings.message_formatstringmultiline (predefinito) o spintax — vedi la sezione sui formati dei messaggi qui sotto
dm_settings.message_contentsstringTesto del DM. Con multiline ogni riga è un messaggio separato (### = interruzione di riga all'interno di un messaggio); con spintax l'intera stringa è un solo messaggio (interruzioni native, gruppi {option1|option2}). Supporta {username} e {sender_username}.
dm_settings.message_orderstringrandom o sequential (si applica solo al formato multiline)
dm_settings.insert_emojibooleanInserisci emoji casuale nel DM
dm_settings.generate_by_chatgptbooleanGenera il DM con ChatGPT
dm_settings.chatgpt_promptstringPrompt usato per generare il DM
dm_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
post_settings.skip_posts_countintegerPost da saltare prima di agire (0–8, solo origine per username)
post_settings.max_posts_countintegerNumero massimo di post da elaborare per destinazione
post_settings.enable_likebooleanMetti mi piace ai post
post_settings.enable_favoritebooleanAggiungi i post ai Preferiti
post_settings.enable_repostbooleanCondividi i post
post_settings.enable_sharebooleanCondividi i post
post_settings.repeat_timesintegerVolte per ripetere le azioni sui post
post_settings.view_durationsinteger[]Secondi [min, max] per guardare ogni post
comment_settings.comment_contentstringTesto del commento (separato da a capo per più varianti)
comment_settings.comment_orderstringrandom o sequential
comment_settings.insert_emojibooleanInserisci emoji casuale nel commento
comment_settings.generate_by_chatgptbooleanGenera il commento con ChatGPT
comment_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
task_finish_wait_timeintegerSecondi di attesa prima di terminare (evita la perdita di dati)

Formati dei messaggi DM​

dm_settings.message_contents viene interpretato in base a dm_settings.message_format, così come le didascalie dei post lo sono in base a caption_format:

FormatoModelliInterruzioni di rigaVariazione casuale
multiline (predefinito)Uno per ogni riga non vuota, scelto con message_order### all'interno di una rigaTra le righe, tramite message_order
spintaxL'intera stringa è un unico modello\n nativo nella stringaGruppi {option1|option2}

{username} e {sender_username} vengono sostituite prima della risoluzione dei gruppi spintax, quindi una variabile non viene mai trattata come gruppo spintax con una sola opzione.

// 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}"
}

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_format": "multiline",
"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 HTTPCodiceDescrizione
40040001Parametri non validi (bad data_type/strategy, serials vuoto, dataset_id non positivo, script_config non oggetto, o nessuna attività creata)
40340301Vietato — L'accesso all'API richiede il piano Pro+
40440401Set di dati non trovato
50050001Errore interno del server
Nessuna attività creata

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​