Keitaro sync flow — what data, how often

Last updated: May 19, 2026

Keitaro sync flow — what data, how often

Keitaro syncs every 15 minutes (incremental) + full 30-day backfill on first sync. The mapping system links Keitaro campaigns to Wevion ad campaigns so conversion data attributes correctly. Breakdowns are available by sub-ID, landing page, offer, and geo.

Who is this for

Affiliate marketers who connected Keitaro (com-107) and want to understand:

  • What data flows + how often

  • How to set up campaign mappings

  • How to read sub-ID and other breakdowns

What syncs from Keitaro

Backend uses apps/backend/src/tracker-hub/sync/ plus 11+ tracker-* repositories. Pulled data:

Campaigns

  • Campaign ID, name, status (active/paused/archived/deleted — Keitaro states mapped to Wevion canonical)

  • Domain

  • Traffic flow rules

  • Last modified timestamp

Offers

  • Offer ID, name, payout, currency, country

  • Linked landing pages

  • Affiliate network (if applicable)

Landing pages

  • Landing page ID, name, URL

  • Country + language

Flows

  • Flow ID, rules (filter on traffic source, user agent, GEO, etc.)

  • Distribution weights

Traffic sources

  • Source ID, name (Facebook, Google, TikTok, etc.)

  • Tokens / template

Click logs

  • Click ID (used as sub_id for Wevion attribution)

  • Timestamp

  • Sub-IDs (sub_1 through sub_N — typically sub_1 = click_id)

  • IP + user agent + GEO + device

  • Referring URL

  • Campaign + flow + offer

Click logs syncs incrementally every 15 min.

Conversions

  • Conversion ID, linked click ID

  • Status (confirmed, pending, rejected, refunded)

  • Revenue + currency

  • Conversion timestamp

Conversions sync every 15 min, with Keitaro state mapped to Wevion canonical state.

Mapping system

The mapping system is critical for correct attribution. Without mappings, Keitaro conversions don't link to specific Wevion ad campaigns.

Concept

  • Keitaro has Campaign X for "Summer Sale" (Keitaro campaign ID 12345)

  • Wevion has Campaign Y for "Summer Sale" on Meta (Wevion campaign ID abc-xyz)

  • The mapping connects: Keitaro 12345 Wevion abc-xyz

  • After mapping: every Keitaro conversion for campaign 12345 is attributed to Wevion campaign abc-xyz

Setup mappings

Verified endpoints:

Endpoint

Method

Use

/api/v1/trackers/:configId/mappings/setup

POST

Initial wizard (suggest auto-mappings based on names/UTM)

/api/v1/trackers/:configId/mappings/detect

POST

Auto-detect potential mappings

/api/v1/trackers/:configId/mappings

GET

List current mappings

/api/v1/trackers/:configId/mappings

PUT

Update mappings

/api/v1/trackers/:configId/mappings/rules

GET/POST

Define mapping rules (e.g. by sub_1 prefix)

Mapping rules

Beyond 1:1 manual mappings, you can define rules:

  • "All Keitaro campaigns with sub_1 starting with fb_ → attribute to Meta campaign Y"

  • "All conversions from Keitaro flow flow-id-XYZ → attribute to Wevion campaign Z"

  • "Wildcard: Keitaro campaign name matching pattern Summer_* → Wevion campaign Summer Sale 2026"

Rules apply automatically as new Keitaro campaigns are created.

Breakdowns

Reports available at /api/v1/trackers/:configId/breakdowns/{type}:

Sub-ID breakdown (/breakdowns/sub)

Group conversions by sub-ID values:

  • See which sub_1 values (typically click_id or ad_id) drove conversions

  • Useful for: ad-level analysis when sub_1 = ad creative ID

Landing breakdown (/breakdowns/landing)

Group by landing page:

  • Which landing pages convert best

  • Tied to A/B test results when landings are variations

Offer breakdown (/breakdowns/offer)

Group by Keitaro offer:

  • Per-product / per-offer revenue + conversion rate

  • Useful for multi-offer affiliate programs

Geo breakdown (/breakdowns/geo)

Group by country / region:

  • Per-country conversion rates

  • Useful for geo-targeted campaigns optimization

Sync frequency

Data type

Frequency

Click logs

15 min (incremental)

Conversions

15 min (incremental)

Campaigns

15 min

Offers + landing + flows

15 min

Initial backfill

Last 30 days on first sync

Full re-sync (manual)

Available via force-sync, optional 90-day window

Conversion state mapping

Keitaro tracks conversions in 4 main states. Wevion maps them to canonical states:

Keitaro state

Wevion canonical

active

active (counted)

paused

paused (excluded from real-time)

archived

archived (historical only)

deleted

deleted (excluded entirely)

This means refunds and rejections (Keitaro side) propagate correctly to Wevion's revenue reports.

How Wevion uses Keitaro data

In analytics

  • Dashboard: Keitaro-attributed revenue per ad campaign

  • Cross-Channel Analytics: Keitaro is a "source" alongside browser pixel attribution

  • Per-campaign breakdown: drill into ad campaign → see Keitaro conversions

In ad-platform forwarding

  • Wevion can forward Keitaro conversions to Meta CAPI / Google Conversions API / TikTok Events API

  • Configuration at /trackers/:configId → Forwarding tab

  • Enables server-side conversion signals from your tracker to your ad platforms (no browser dependency)

In rules

  • Create rules that fire based on Keitaro conversion data

  • E.g. "If Keitaro conversion rate on this Keitaro campaign drops below 2% over 3 days, pause linked Wevion campaign"

Sub-IDs deep dive

Most affiliates use sub_1 = {click_id} as the universal identifier. Wevion's postback integration also uses click_id for tracker→ad-platform attribution.

Other common sub usages:

  • sub_2 = ad creative variant ID

  • sub_3 = landing page variant ID

  • sub_4 = audience segment

  • sub_5 = day-part / time slot

Sub-ID semantics are tracker-side conventions; document yours for clarity within your team.

Common questions

  • "Mapping wizard auto-suggests wrong mappings": review suggestions before saving. Manual override always available.

  • "How does Wevion choose which Keitaro conversion = which Wevion ad?": via mapping (campaign-level) + click_id (visit-level). For visit-level, ensure your ad URL passes click_id in UTM or as sub_1 to Keitaro.

  • "Conversion shown in Keitaro, not in Wevion": 15-min sync delay. If still missing after 1h, check mapping exists for the Keitaro campaign.

  • "Bulk sub_id breakdown slow": large tracker installs (millions of clicks). Use date filters to narrow.

  • "Conversion attributed to wrong campaign": mapping issue. Review /trackers/:configId/mappings.

Related