Keitaro sync flow — what data, how often

Keitaro sync pulls campaigns + clicks + conversions every 15 min. Mappings link Keitaro campaigns to Wevion campaigns. Breakdowns by sub/landing/offer/geo.

Written By Salvatore Sinigaglia

Last updated About 5 hours ago

Keitaro sync pulls campaigns + clicks + conversions every 15 min. Mappings link Keitaro campaigns to Wevion campaigns. Breakdowns by sub/landing/offer/geo.

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 (approved, pending, rejected, hold — Wevion canonical ConversionStatus)
  • Revenue + currency
  • Conversion timestamp

Conversions sync every 15 min, with Keitaro state mapped to Wevion canonical conversion 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:

EndpointMethodUse
/api/v1/trackers/:configId/mappings/setupPOSTInitial wizard (suggest auto-mappings based on names/UTM)
/api/v1/trackers/:configId/mappings/detectPOSTAuto-detect potential mappings
/api/v1/trackers/:configId/mappingsGETList current mappings
/api/v1/trackers/:configId/mappingsPUTUpdate mappings
/api/v1/trackers/:configId/mappings/rulesGET/POSTDefine 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 typeFrequency
Click logs15 min (incremental)
Conversions15 min (incremental)
Campaigns15 min
Offers + landing + flows15 min
Initial backfillLast 30 days on first sync (TRACKER_HISTORY_LOOKBACK_DAYS, default 30)
Full re-sync (manual)Available via force-sync

Conversion state mapping

Wevion normalizes tracker conversion states to its canonical ConversionStatus (4 values):

Wevion conversion statusMeaning
approvedconfirmed conversion (counted in revenue)
pendingnot yet confirmed
rejectedrejected / invalid (excluded from revenue)
holdon hold pending review

Entity records (campaigns, offers, etc.) use a separate TrackerEntityStatus enum: active / paused / archived / deleted. This means rejections and holds (tracker 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 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 Meta postback store also keys on click_id / transaction data for attributing stored conversions.

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.

FAQ

How often does Keitaro data sync to Wevion?

Keitaro syncs incrementally every 15 minutes for click logs, conversions, campaigns, offers, landing pages, and flows, plus a ~30-day backfill on the first sync (TRACKER_HISTORY_LOOKBACK_DAYS, default 30). A manual force-sync is also available. If a conversion shows in Keitaro but not Wevion, it's usually the 15-minute delay — check the mapping if it's still missing after an hour.

Why aren't my Keitaro conversions attributed to specific ad campaigns?

The mapping system links Keitaro campaigns to your Wevion ad campaigns, and without it conversions don't attribute correctly. Set up mappings at /trackers/:configId/mappings — the setup wizard can auto-suggest matches based on names and UTM, and you can define rules like Keitaro campaigns whose sub_1 starts with fb_ mapping to a Meta campaign. Always review suggestions before saving.

What breakdowns can I see for Keitaro data in Wevion?

Wevion offers four breakdowns for Keitaro data: sub-ID, landing page, offer, and geo. The sub-ID breakdown groups conversions by values like sub_1; landing shows which pages convert best; offer gives per-product revenue and conversion rate; and geo shows per-country conversion rates. For large tracker installs, use date filters to keep sub-ID breakdowns fast.

Does Wevion forward Keitaro conversions to my ad platforms?

No. The Tracker Hub pulls Keitaro data into Wevion for analytics, attribution, and rules — there is no tracker-to-ad-platform forwarding path and no "Forwarding tab" in the current code. Keitaro conversion states are mapped to Wevion's canonical ConversionStatus (approved / pending / rejected / hold) so rejections and holds propagate correctly to revenue reports.

Which sub-ID does Wevion use for Keitaro attribution?

Most affiliates use sub_1 set to the {click_id}, and Wevion's Meta postback store also keys on click_id / transaction data for attributing stored conversions. Other sub-IDs are tracker-side conventions — teams commonly use sub_2 for an ad creative variant, sub_3 for a landing page variant, sub_4 for an audience segment. To attribute at visit level, pass click_id in your ad URL to Keitaro.