Aller au contenu principal

Configuration du Script Super Marketing

Cette page documente les endpoints de l'API pour le script Super Marketing. Contrairement aux autres scripts, le super marketing n'est pas créé via l'endpoint générique POST /api/v1/task — il fonctionne avec un ensemble de données cibles réutilisable et possède ses propres endpoints dédiés.

Description Générale

Une campagne de super marketing combine plusieurs actions de croissance (suivre, ne plus suivre, signaler, DM, booster, commentaire en masse) en une seule exécution sur un groupe de cibles. Le groupe de cibles est stocké comme un ensemble de données :

  • Type de données — l'ensemble de données contient des usernames (pseudos TikTok/Instagram) ou des post_links (URLs de publications).
  • Stratégie — contrôle comment les cibles sont distribuées sur vos appareils :
    • shared_pool — chaque appareil/compte sélectionné traite toutes les cibles.
    • consume_once — les cibles sont réparties entre les appareils et chacune est consommée une seule fois.

Le flux typique est :

  1. Importer des cibles dans un ensemble de données → obtenir un dataset_id.
  2. Exécuter une campagne qui référence ce dataset_id sur un ou plusieurs appareils.

Les bascules de fonctionnalités (suivre / DM / commenter, etc.) et leurs paramètres détaillés sont lus depuis la configuration sauvegardée dans l'application de bureau (super_marketing_settings.json). Vous pouvez remplacer n'importe lequel d'entre eux par exécution en passant script_config dans la requête d'exécution.

Exigence de Licence

Tous les endpoints de super marketing nécessitent un plan Pro, Team ou Business, comme le reste de l'API Locale.


Importer un Ensemble de Données

Créer un nouvel ensemble de données ou ajouter des cibles à un existant.

  • Endpoint : POST /api/v1/super-marketing/dataset

Corps de la Requête

ChampTypeRequisDéfautDescription
dataset_idintegerNonID de l'ensemble de données existant auquel ajouter/remplacer. Omettre ou utiliser 0 pour créer un nouveau.
data_typestringOuiusernames ou post_links
strategystringOuishared_pool ou consume_once
entriesstring[]Oui*[]Cibles sous forme de tableau JSON. Prioritaire sur raw_text.
raw_textstringOui*Cibles sous forme de string séparé par des sauts de ligne (alternative à entries).
modestringNonappendappend ajoute aux entrées existantes ; replace efface les entrées existantes d'abord.
labelstringNonÉtiquette optionnelle lisible par l'humain pour l'ensemble de données.
remarque

Fournissez les cibles via entries ou raw_text. Les entrées dupliquées et vides sont ignorées. Une seule importation est limitée à 100 000 entrées.

Exemple

curl -X POST http://localhost:50809/api/v1/super-marketing/dataset \
-H "Content-Type: application/json" \
-d '{
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Cibles Campagne A",
"entries": ["@user_one", "@user_two", "@user_three"]
}'

Ajouter plus de cibles à un ensemble de données existant via du texte séparé par des sauts de ligne :

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

Exemple de Réponse

{
"code": 0,
"message": "success",
"data": {
"dataset": {
"stats": {
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Cibles Campagne A",
"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
}
}
}

Lister les Ensembles de Données

Récupérer tous les ensembles de données avec les statistiques de consommation.

  • Endpoint : GET /api/v1/super-marketing/datasets

Paramètres de Requête

ParamètreTypeDéfautDescription
data_typestringFiltre optionnel : usernames ou post_links

Exemple

curl "http://localhost:50809/api/v1/super-marketing/datasets?data_type=usernames"

Exemple de Réponse

{
"code": 0,
"message": "success",
"data": [
{
"id": 7,
"data_type": "usernames",
"strategy": "shared_pool",
"label": "Cibles Campagne A",
"total": 6,
"consumed": 0,
"remaining": 6,
"created_at": "2026-06-22 09:00:00",
"updated_at": "2026-06-22 09:05:00"
}
]
}

Obtenir un Ensemble de Données

Récupérer les statistiques d'un ensemble de données et une page de ses entrées.

  • Endpoint : GET /api/v1/super-marketing/dataset/{id}

Paramètres de Requête

ParamètreTypeDéfautDescription
limitinteger50Entrées par page (max 500)
offsetinteger0Nombre d'entrées à ignorer

Exemple

curl "http://localhost:50809/api/v1/super-marketing/dataset/7?limit=100&offset=0"

Vider un Ensemble de Données

Supprimer toutes les entrées d'un ensemble de données. L'enregistrement de l'ensemble de données lui-même est conservé (et son dataset_id reste valide pour les futures importations).

  • Endpoint : DELETE /api/v1/super-marketing/dataset/{id}

Exemple

curl -X DELETE http://localhost:50809/api/v1/super-marketing/dataset/7

Exemple de Réponse

{
"code": 0,
"message": "success",
"data": { "cleared": true, "dataset_id": 7 }
}

Exécuter une Campagne

Lancer une campagne de super marketing sur les appareils donnés, en utilisant les cibles d'un ensemble de données.

  • Endpoint : POST /api/v1/super-marketing/run

Corps de la Requête

ChampTypeRequisDéfautDescription
serialsstring[]Oui[]Numéros de série des appareils sur lesquels exécuter
dataset_idintegerOuiEnsemble de données dont les cibles alimentent la campagne
enable_multi_accountbooleanNonfalseCréer une tâche par compte sur chaque appareil
merge_same_username_tasksbooleanNonfalseRegrouper toutes les cibles d'un appareil en une seule tâche au lieu d'une tâche par cible
platformstringNonRemplacement de plateforme (tiktok / instagram). Respecté uniquement sur les builds multiplateformes
min_intervalintegerNon0Minutes minimum entre les heures de début échelonnées des tâches
max_intervalintegerNon0Minutes maximum entre les heures de début échelonnées des tâches
start_timestringNonHeure de début de la première tâche en HH:MM
rotate_proxybooleanNonfalseFaire tourner le proxy de l'appareil avant d'exécuter
switch_account_methodstringNonComment changer de compte en mode multi-compte (ex. profile)
official_packagesstring[]Non[]Restreindre l'exécution à ces packages officiels (mode multi-compte)
clone_package_prefixstringNonRestreindre l'exécution aux applications clonées dont le nom de package commence par ce préfixe
script_configobjectNonBascules de fonctionnalités / paramètres par fonctionnalité qui remplacent la config sauvegardée sur le bureau (voir ci-dessous)
Le type de données provient de l'ensemble de données

Vous ne passez pas data_source_type dans la requête d'exécution — la campagne utilise automatiquement le data_type de l'ensemble de données (usernames ou post_links). Les ensembles de données de liens de publications ne supportent que les fonctionnalités boost_posts et mass_comment.

Remplacements de script_config

script_config est optionnel. Lorsqu'il est omis, la campagne utilise les bascules de fonctionnalités et les paramètres que vous avez configurés dans l'application de bureau. Fournissez-le pour exécuter une campagne entièrement autonome ou pour remplacer des champs spécifiques. Les clés acceptent camelCase et snake_case.

ChampTypeDescription
access_methodstringComment atteindre les cibles par nom d'utilisateur : search ou direct
features.follow_usersbooleanSuivre chaque cible
features.unfollow_usersbooleanNe plus suivre chaque cible
features.report_accountbooleanSignaler chaque compte cible
features.send_dmbooleanEnvoyer un message direct à chaque cible
features.boost_postsbooleanAimer / mettre en favoris / reposter / partager les publications de la cible
features.mass_commentbooleanCommenter les publications de la cible
follow_settings.boost_typestringfollow ou unfollow
dm_settings.message_contentsstringTexte du DM (séparé par des sauts de ligne pour plusieurs variantes)
dm_settings.message_orderstringrandom ou sequential
dm_settings.insert_emojibooleanInsérer un emoji aléatoire dans le DM
dm_settings.generate_by_chatgptbooleanGénérer le DM avec ChatGPT
dm_settings.chatgpt_promptstringPrompt utilisé lors de la génération du DM
dm_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
post_settings.skip_posts_countintegerPublications à ignorer avant d'agir (0–8, source nom d'utilisateur uniquement)
post_settings.max_posts_countintegerNombre maximum de publications à traiter par cible
post_settings.enable_likebooleanAimer les publications
post_settings.enable_favoritebooleanAjouter les publications aux favoris
post_settings.enable_repostbooleanReposter les publications
post_settings.enable_sharebooleanPartager les publications
post_settings.repeat_timesintegerNombre de répétitions des actions de publication
post_settings.view_durationsinteger[]Secondes [min, max] pour regarder chaque publication
comment_settings.comment_contentstringTexte du commentaire (séparé par des sauts de ligne pour plusieurs variantes)
comment_settings.comment_orderstringrandom ou sequential
comment_settings.insert_emojibooleanInsérer un emoji aléatoire dans le commentaire
comment_settings.generate_by_chatgptbooleanGénérer le commentaire avec ChatGPT
comment_settings.chatgpt_settingsobject{ url, api_key, model, system_prompt }
task_finish_wait_timeintegerSecondes d'attente avant de terminer (évite la perte de données)

Exemples

Exécution minimale (utiliser les paramètres sauvegardés sur le bureau)

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
}'

Campagne autonome suivre + 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": "Salut ! J'adore ton contenu 🙌\nSupers publications, continue comme ça !",
"message_order": "random",
"insert_emoji": true
}
}
}'

Commentaire en masse sur un ensemble de données de liens de publications

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": "🔥🔥🔥\nIncroyable !\nJ'adore ça",
"comment_order": "random"
}
}
}'

Exemple de Réponse

{
"code": 0,
"message": "success",
"data": { "created_count": 6 }
}

created_count est le nombre de tâches qui ont été créées. Les tâches en attente s'exécutent ensuite sur leurs appareils assignés comme n'importe quelle autre tâche — suivez-les via l'API de Gestion des Tâches.


Réponses d'Erreur

Statut HTTPCodeDescription
40040001Paramètres invalides (mauvais data_type/strategy, serials vide, dataset_id non positif, script_config non-objet, ou aucune tâche créée)
40340301Interdit — l'accès à l'API nécessite un plan Pro+
40440401Ensemble de données non trouvé
50050001Erreur interne du serveur
Aucune tâche créée

Si l'exécution retourne le code 40001 avec un message "No tasks created", vérifiez que l'ensemble de données a encore des cibles restantes (pour la stratégie consume_once) et que les appareils sélectionnés sont en ligne.

Voir Aussi