Keitaro and the Official Meta API: Your Tracker Next to a Compliant Campaign Layer
Lena Brandt
Ad Policy & Compliance Analyst
Plenty of media buyers run Keitaro and the official Meta API side by side. The tracker records clicks, offers and payouts on infrastructure they control, and a campaign tool connected through Meta's Marketing API handles launches, budgets and rules. This guide covers why that split makes sense, why the two sets of numbers rarely agree, how the connection method shapes account risk, and what changes when Keitaro sits inside Wevion.
Quick answer: Keep Keitaro as your record of clicks, offers and payouts, and run campaigns through a tool that connects to Meta's official Marketing API with OAuth. Wevion puts both in one workspace: Keitaro syncs every 15 minutes, conversions arrive by S2S postback, and changes proposed by Wavo, the AI copilot, wait for your approval.
If you already run Keitaro and want to see what the integration looks like in practice, the Keitaro and trackers page lists every capability. The rest of this article explains the reasoning behind it.
Why run a tracker and a campaign tool?
A tracker and a campaign tool answer two different questions, which is why most affiliate media buyers end up paying for both. Keitaro answers what happened after the click: which offer converted, which landing page held attention, which sub ID drove the payout, and what the affiliate network finally confirmed. An ad platform answers what happened before and at the click, and it is the only place where budgets, bids and audiences actually change.
Neither side can do the other's job. Keitaro cannot raise a budget on an ad set that is printing money. Ads Manager cannot see the payout your network sends three days later. So the work becomes two dashboards and a spreadsheet, with someone matching campaign names by hand every morning.
The pattern holds across channels too. When an offer moves from social to native, the tracker stays constant while the traffic sources change, a workflow we walk through in scaling one affiliate offer from social to native with Keitaro intact.
Put this guide to work
Launch, test and scale campaigns on six ad platforms from one place, with Wavo, the AI copilot, at your side. Free for 14 days.
Why don't Keitaro and Meta agree?
Keitaro and Meta rarely report the same conversion count, and that gap is expected rather than a sign that one of them is broken. Each system measures from its own position, with its own rules about what counts and when.
The usual causes:
- Attribution windows. Meta credits conversions inside its attribution setting, which by default includes 7-day click and 1-day view, and some of those conversions are modelled. Keitaro counts the postbacks it receives.
- Click definitions. A link click in Meta is not the same event as a click your tracker logs on the landing page. Slow pages and bounces before the redirect fires open a gap straight away.
- Time zones. An ad account set to one time zone and a tracker set to another will split the same day differently.
- Late postbacks. Networks often confirm conversions hours or days later, so yesterday's numbers keep moving in the tracker after the platform has settled.
- Missing parameters. If the campaign, ad set or ad ID never reaches the tracker, a conversion can be counted but never tied back to an ad.
A workable rule is to trust the tracker for revenue and payouts, trust the platform for spend and delivery, and reconcile the two on IDs rather than names. Our Keitaro postback reconciliation story shows how one team traced a mismatch to its cause, and the postback QA protocol is a checklist for catching broken wiring before it costs you a week of data.
How should your campaign tool connect?
The way a campaign tool connects to your ad accounts matters more for account risk than almost any feature it offers. There are two broad approaches, and they behave very differently.
Official API with OAuth. You sign in with Meta, review the permissions the tool's Meta app requests, and grant them. The tool then works through Meta's Marketing API, the route Meta built for software that manages ads. Nobody holds your password, the access token can be revoked from your Meta settings, and every change is a documented API call.
Session-based tools. These drive the Ads Manager interface through a stored browser session, saved cookies or a shared login. They can reach anything a person can click, but they depend on the interface staying the same, they hold credentials that were never meant to leave your browser, and Meta's automated data collection terms restrict automated access that happens outside its APIs.
Account restrictions are the documented problem here, and it is worth being precise about it. Meta enforces its advertising policies on every account, whatever tool runs it, so no software can promise an account will never be restricted. What the connection method decides is whether the tooling adds its own risk on top. Our explainer on how Wevion connects through OAuth with encrypted tokens covers the details.
Wevion connects to Meta, Google, TikTok, Taboola, Snapchat and Outbrain through each platform's official API, using OAuth on Meta so that nobody shares a password. Platform data syncs about every 15 minutes, rules run on schedules you choose, and changes proposed by Wavo, the AI copilot, wait for a person to approve them before anything happens.
An admin can also paste a Meta System User token when a setup calls for it, though signing in with OAuth is the standard route.
A note on cloaking
Some trackers include traffic filtering that can be used to show ad reviewers a different page from the one real visitors see. Meta's Advertising Standards treat this as circumventing its systems, and it is a documented reason for restricting ad accounts, pages and Business Managers. The Wevion integration reads tracking data from Keitaro. It does not route visitors, filter traffic or change what anyone sees.
Keitaro inside Wevion
Connecting Keitaro to Wevion puts tracker data in the same workspace as your ad accounts, so the morning reconciliation stops being a copy-and-paste job. Here is what the integration does today:
- Your own instance. Paste your Keitaro URL and API key, test the connection, then save. The key is stored encrypted, and you can revoke it from Keitaro at any time.
- Sync every 15 minutes. The first import pulls the last 30 days, and every later run is listed in Sync History, including any run that failed and its error.
- Five synced tables. Campaigns, offers, landing pages, traffic sources and affiliate networks each sync into their own table.
- Campaign mapping. Keitaro parameters map to Meta campaigns, ad sets and ads, matched by ID or name. Mapping rules can be detected automatically, a fallback parameter catches misses, and coverage shows what is still unmapped.
- Breakdowns. Clicks, conversions, revenue, cost, profit, ROI and conversion rate by sub ID, offer, landing page and geo.
- S2S postback. Conversions sent to Wevion by server-to-server postback are stored once per transaction ID and appear next to your Meta campaigns in the Wevion Ads Manager view.
- Team Access. Each team member maps to one or more Keitaro users, so the permissions they hold in Keitaro carry over. Owners and admins see everything; any other member with no mapping cannot see the tracker at all.
The same Trackers page connects Voluum, RedTrack, BeMob, Binom, ClickFlare and Everflow, so the approach does not depend on which tracker your team settled on.
Rules on a 15-minute sync
Automation on a 15-minute data cycle works best when rules guard spend over hours and days rather than chasing single conversions. Ad platform data in Wevion syncs about every 15 minutes, and each rule runs on its own schedule: every 30 minutes by default, down to every 15 minutes, up to once a day. Rules act only on the conditions you set.
That rhythm suits the jobs rules are good at:
- Pausing an ad set that has spent past your threshold with no conversions over three days.
- Trimming a budget when cost per acquisition stays above target across a seven-day window.
- Holding changes to working hours, so nothing moves while nobody is watching.
Every rule can be tested with a dry run that shows what it would match without changing anything. Cooldowns stop a rule acting on the same entity again too soon, a daily cap limits how often it runs, and run history records each entity's state before and after. Suggestions from Wavo, the AI copilot, follow the same principle: it proposes, and you confirm.
Keep one habit from the tracker world. When Keitaro tells a different story from the platform metric a rule reads, check your mapping and postbacks before you trust the rule. Our guide to handing off Meta ad rules to an approval gate shows how to stage that trust.
The cost of the stack, honestly
Counting the real cost of a tracker plus campaign tool setup means looking past the invoices. The subscription lines are easy to find. The expensive lines are usually the ones nobody writes down.
A fair worksheet includes:
- Tracker running costs. A self-hosted Keitaro needs a server, domains, SSL and someone to keep it updated.
- Campaign tool costs. The subscription, plus the time it takes to onboard and offboard each buyer.
- Reconciliation time. Hours per week spent matching tracker rows to platform rows by hand.
- Restriction costs. Downtime, appeals, rebuilt audiences and lost pixel history when an account is restricted. Tools that rely on shared logins or scripted sessions tend to inflate this line, even though it never appears on an invoice.
- Access risk. The work of resetting credentials when someone leaves, if access was ever shared by password.
Fill it in with your own numbers for one month. Most teams find that the reconciliation and restriction lines outweigh the subscriptions, which is the strongest argument for keeping tracking and campaigns on official connections in one place.
Key takeaways
- Keitaro and an ad platform answer different questions, so running both is normal.
- Expect their numbers to differ; reconcile on mapped IDs, not campaign names.
- How a tool connects matters for risk: official API and OAuth, not shared logins or scripted sessions.
- Cloaking is a documented policy violation, not a feature to compare.
- Rules on a 15-minute sync should guard spend over hours and be tested with a dry run first; Wavo, the AI copilot, proposes changes you approve.
Explore more in
Platform Comparison
Read the curated pillar page with every guide in this topic, ordered from foundations to advanced.