Trackily Docs

Sources de trafic

Trackily supporte 9 plateformes nativement (Kadam, PropellerAds, Meta, TikTok, Google, Taboola, MGID, ExoClick, RichAds) plus un type Custom. Chaque source porte ses propres macros + endpoint API ; la config est centralisée dans source-templates.js.

Liste sources

Concept

Une traffic_source dans Trackily est un wrapper autour de :

  • Un template plateforme (Kadam, Meta, etc.) qui définit la couleur, le logo, le format des macros ({click_id} vs ${SUBID} vs __CLICKID__), l'URL de base API, etc.
  • Tes identifiants (API token, ad account ID, pixel ID) pour cette plateforme.
  • Un statut connection (tested_ok / untested / failed).

Une campagne peut ensuite référencer cette source via campaigns.source_id. Trackily utilise alors :

  • Les macros du template pour suggérer la campaign_url_hint (ex Kadam : ?click_id={click_id}&cost={cost}&sub2={campaign_id}).
  • L'API pour les tools list_source_campaigns, sync_offer_network_stats, update_source_campaign_bid, etc.

Plateformes supportées

Slug Plateforme Couleur Type principal A des macros connues A une API ?
kadam Kadam #4CAF50 Push, native, pop, display {click_id} Oui
propellerads PropellerAds #FF6B00 Push, pop, interstitial ${SUBID} Oui
meta Meta Ads (Facebook) #1877F2 FB/IG/Messenger {{campaign.id}} Oui (Graph)
tiktok TikTok Ads #000000 In-feed, top-view, spark __CLICKID__ Oui
google Google Ads #4285F4 Search, display, YT, shop {gclid} Oui (OAuth)
taboola Taboola #0052CC Native premium {click_id} Oui
mgid MGID #00C853 Native {click_id} Oui
exoclick ExoClick #E91E63 Pop, push, native, video {conversions_tracking} Oui
richads RichAds #7C4DFF Push, pop, direct ${CLICK_ID} Oui
custom Custom Source #607D8B Tout le reste À toi de fournir Non

Voir le fichier de configs : source-templates.js.

Champs requis par plateforme

Chaque template expose les fields que tu dois remplir dans l'UI à la création d'une source. Exemple Kadam (source-templates.js:9-37) :

{
  "fields": [
    {
      "key": "api_token",
      "label": "API Token",
      "type": "password",
      "required": true,
      "placeholder": "Your Kadam Bearer token",
      "help": "Found in your Kadam dashboard → Profile/Settings → API Token"
    }
  ]
}

Pour Meta, tu as 3 champs (access_token, ad_account_id, pixel_id), pour Google 5 (developer_token, customer_id, oauth_client_id, oauth_client_secret, refresh_token).

Comment faire — via l'UI

  1. Sources → Add Source.
  2. Sélectionne la plateforme dans la grille (le card est coloré au branding plateforme).
  3. Remplis les champs (le help text de chaque field te dit où trouver les valeurs dans le dashboard de la plateforme).
  4. Save.
  5. Clic sur Test connection sur la nouvelle source — Trackily appelle l'API plateforme avec tes credentials et confirme.
  6. Si OK, la source est utilisable dans le dropdown Source de toutes tes campagnes.

Comment faire — via MCP

test_source_connection

{
  "name": "test_source_connection",
  "arguments": { "source_id": 3 }
}

Réponse en cas de succès :

{
  "status": "ok",
  "source_id": 3,
  "platform": "kadam",
  "tested_at": "2026-05-18T20:35:12.000Z",
  "details": { "account_balance": "$1240.55", "active_campaigns": 12 }
}

En cas d'échec, Trackily retourne le code HTTP retour de l'API plateforme + le body d'erreur (tronqué à 300 chars).

list_source_campaigns

Liste les campagnes existantes COTE plateforme (pas Trackily). Utile pour brancher en bulk les campagnes ad network sur des entrées Trackily.

{
  "name": "list_source_campaigns",
  "arguments": { "source_id": 3, "status": "active" }
}

update_source_campaign_bid / update_source_campaign_budget

Pour les plateformes qui exposent l'API budget/bid (Meta, TikTok, Google, Kadam). Utilisé en backend par Automizer quand tu déclenches une action change_budget.

pause_source_campaign / resume_source_campaign

Idem — pause une campagne SOUS-JACENTE chez la plateforme (pas la campagne Trackily). Utile quand tu veux pause l'origine du trafic.

Macros à connaître par plateforme

Quand tu mets ta campaign_url_hint dans le dashboard plateforme, tu utilises les macros NATIVES de la plateforme — Trackily ne les invente pas, il les passe telles quelles.

Kadam

/c/YOUR-SLUG?click_id={click_id}&cost={cost}&sub2={campaign_id}&sub3={creative_id}&sub4={source_id}

PropellerAds

/c/YOUR-SLUG?click_id=${SUBID}&cost=${BID}&sub2=${CAMPAIGN_ID}&sub3=${CREATIVE_ID}&sub4=${ZONEID}&country=${COUNTRY}

Meta

/c/YOUR-SLUG?sub1={{campaign.id}}&sub2={{adset.id}}&sub3={{ad.id}}&sub4={{placement}}

À noter pour Meta : le fbclid est posé automatiquement par Facebook, pas besoin de le mettre dans l'URL — Trackily le capture côté /r/<slug> (redirect tracker) ou via le pixel.

TikTok

/c/YOUR-SLUG?click_id=__CLICKID__&sub1=__CID__&sub2=__AID__&sub3=__ADID__
/c/YOUR-SLUG?gclid={gclid}&sub1={campaignid}&sub2={adgroupid}&sub3={creative}&sub4={keyword}

Taboola

/c/YOUR-SLUG?click_id={click_id}&sub1={campaign_id}&sub2={site}&sub3={platform}&country={country}

MGID

/c/YOUR-SLUG?click_id={click_id}&cost={cpc}&sub1={campaign_id}&sub2={widget_id}

ExoClick

/c/YOUR-SLUG?click_id={conversions_tracking}&cost={price}&sub1={campaign_id}&sub2={zone_id}&country={country_code}

RichAds

/c/YOUR-SLUG?click_id=${CLICK_ID}&cost=${COST}&sub1=${CAMPAIGN_ID}&sub2=${CREATIVE_ID}&country=${COUNTRY}

Custom

Tu fournis toi-même click_id_macro + cost_macro à la création de la source. Si tu ne sais pas, demande à la doc de ton ad network.

Postback (conversion tracking)

Chaque template expose aussi un postback_template qui dit où renvoyer la conversion VERS la plateforme (server-to-server). Exemple Kadam : https://kdtrk.net/ru/postback/?data={sub2}.

Tu configures ce postback côté plateforme (Kadam Dashboard → Campagne → Postback URL) — Trackily ne fire PAS le postback vers la plateforme automatiquement (sauf pour Meta CAPI / TikTok Events API si tu as activé l'intégration server-side).

À l'inverse, le postback vers Trackily (offer affiliate → Trackily) se configure dans l'offre, pas dans la source.

Notes spécifiques par plateforme

Meta (FB / IG)

Le pixel client-side n'est plus fiable depuis iOS 14.5+. Utilise CAPI (Conversions API) côté server pour le tracking conversion — Trackily peut le faire automatiquement si pixel_id + access_token sont valides et tu uses la source comme handler dans tes offres.

TikTok

Idem : Events API server-side recommandé. TikTok pénalise sévèrement les comptes avec mauvaise qualité de signal.

Authentification OAuth 2.0 obligatoire (pas juste un API key). Tu dois passer par Google Cloud Console → Credentials pour obtenir client_id + client_secret, puis générer un refresh_token via OAuth flow. Doc : https://developers.google.com/google-ads/api/docs/oauth/cloud-project.

Kadam, PropellerAds, MGID, RichAds, ExoClick

API token simple, pas d'OAuth. Le plus rapide à brancher (2 minutes).

Exemples

Créer une source Kadam via l'UI (le plus courant)

  1. Récupère ton API token : Kadam dashboard → Profile → API Token.
  2. Trackily → Sources → Add Source → Kadam.
  3. Colle le token, Save.
  4. Test connection → tu vois le solde de ton compte = OK.
  5. Crée une campagne Trackily avec source_id pointant cette nouvelle source.

Source Custom pour un ad network exotique

Si tu travailles avec un ad network non listé (NewBitAds, Adnium, …) :

  1. Sources → Add Source → Custom.
  2. Donne un nom (name_custom: "Adnium").
  3. (Optionnel) api_url, api_key, postback_url.
  4. Macros : remplis click_id_macro (ex {clickid}) et cost_macro (ex {cost}) selon ce que l'ad network supporte.
  5. Save. La source apparaît dans le dropdown campagnes — pas de sync API, mais le tracking marche.

Erreurs courantes

  • Token expiré : les Bearer tokens Kadam/PropellerAds n'expirent pas, mais Meta/Google OAuth oui (Meta = 60 jours pour les tokens longue durée). Refresh régulièrement.
  • Wrong ad account ID : Meta = act_123456789 avec le préfixe act_, pas juste les chiffres.
  • Macro mal recopiée : Kadam {click_id} avec un underscore, PropellerAds ${SUBID} en MAJUSCULES avec dollar-accolade. Copie-colle depuis sources.md plutôt que retaper.
  • Test connection skip : tu peux créer une campagne avec une source non testée — elle marche pour le tracking simple mais aucune API call (sync, list, pause) ne fonctionnera. Test toujours juste après la création.
  • Source Custom sans macros : la campagne route le trafic mais tu perds tous les sub-IDs dans le reporting. Toujours définir AU MINIMUM click_id_macro.

Voir aussi