BATracker vs ClickMagick: Which Tracker for Media Buying? (2026)
ClickMagick is a genuinely solid tool for affiliates and solo marketers who live in link tracking and attribution. But if you buy paid media at scale, you need a tracker built for campaigns, flows, and server-side conversions. Here's an honest look at both — and why BATracker is the modern choice for performance marketers.
1. What ClickMagick Does Well
Let's be fair up front: ClickMagick is a capable, legitimate, cloud-based tool with a loyal following. It is geared toward affiliates and solo marketers, and it does a good job at what it's designed for — link tracking and attribution. If your world is trackable links, funnels, and email or organic traffic, ClickMagick gives you a clean way to see where your clicks and conversions come from.
It also includes "Click Shield", its bot-filtering feature designed to keep low-quality and bot clicks out of your links. For an individual affiliate protecting a handful of links, that's a meaningful safeguard.
Where the fit starts to change is scale and campaign depth. ClickMagick is less of a media-buying campaign-flow tracker and more of a link-attribution tool. Once you're running many campaigns across native, push, pop, Facebook, and TikTok — rotating landers and offers, receiving network postbacks, and firing server-side conversions — you want a tracker purpose-built for that workflow. That's where BATracker comes in.
2. What BATracker Is Built For
BATracker ("Best Ad Tracker") is a cloud-native — and optionally self-hosted — tracker built specifically for performance marketers and media buyers. It runs on a modern stack: a Fastify (Node.js) tracker for redirects, ClickHouse (a columnar, real-time analytics database) for reporting, Redis for caching and dedup, PostgreSQL for configuration, and BullMQ for its job queue.
That architecture translates into concrete media-buying benefits: sub-10ms redirects, real-time analytics with no cold starts, and a click pipeline that buffers writes and flushes to ClickHouse in batches (roughly every two seconds) with a Redis crash-safety backup so clicks aren't lost on restart. Every visit gets a unique click ID, cached in Redis for fast postback lookups with a ClickHouse fallback if Redis misses.
In short: ClickMagick helps you track links; BATracker is engineered to run and optimize paid campaigns at volume.
3. Feature Comparison Table
Both tools track clicks and conversions. The difference is depth for paid media buying. Here's how they line up:
| Capability | BATracker | ClickMagick |
|---|---|---|
| Core focus | Paid media buying & campaign flows | Link tracking & attribution for affiliates/solos |
| Campaign flows & weighted rotation | Yes — landers & offers, weighted A/B | Link-centric |
| S2S postback tracking | Yes — universal + HasOffers/Cake/Everflow | Attribution-focused |
| Sub IDs | sub1–sub20 custom parameters | Basic sub tracking |
| Server-side Meta CAPI + TikTok | Yes — with event_id dedup | Not its primary focus |
| Bot / traffic filtering | Bot, datacenter, proxy + rule engine | Click Shield bot filtering |
| Real-time reporting engine | Multi-dimensional, ClickHouse | Link/funnel reports |
| Custom tracking domains + auto-SSL | Yes — Cloudflare-managed, auto-renewing | Custom domains |
| Deployment | Cloud and self-hosted | Cloud |
ClickMagick descriptions reflect its general positioning as a link-tracking and attribution tool for affiliates and solo marketers with its Click Shield bot filtering.
4. Flows & Weighted Rotation
The single biggest gap for media buyers is campaign flows. BATracker routes each visitor through a flow — SIMPLE, MULTI_PATH, or RULE_BASED — that decides which lander-and-offer combination they see. Paths carry weights for weighted rotation, an isDefault fallback, and a direct-linking option to skip the lander and go straight to the offer.
Path rules are evaluated by priority (lowest first), with matchType ALL (AND) or ANY (OR) across the same rich dimension set used for filtering — geo, device, OS, browser, ISP, sub IDs, time, and more — and each rule can ALLOW, BLOCK, REDIRECT, DO_NOT_TRACK, or DO_NOT_POSTBACK. First matching rule wins, and you always keep a default path.
Independent lander & offer A/B testing
BATracker separates lander weights (PathLander) from offer weights (PathOffer), so you can A/B test landers and offers independently in the same flow. Combined with landing-page rotation, the {offer_url} CTA token, and separate LP view / LP click / LP CTR metrics, you get true campaign-level optimization — geo splits (US to Offer A, UK to Offer B), mobile vs desktop landers, dayparting, and ISP targeting all live in one flow.
5. S2S Postbacks & Sub IDs
Paid media relies on server-to-server (S2S) postback tracking, and BATracker treats it as a first-class citizen. Its universal inbound endpoint accepts /postback?clickid={click_id}&payout={payout}&status={status}, plus network-specific formats for HasOffers, Cake, and Everflow. Because conversions are keyed by click ID — not cookies or pixels — they're immune to ad blockers, ITP, cookie restrictions, and page-close.
The reliability engineering underneath matters when real money is on the line. Conversions flow through a BullMQ queue with 3 retry attempts and exponential backoff. Each conversion gets a deterministic conversion ID derived from a SHA-256 of the job seed, so retries reuse the same ID and never create duplicate rows. The conversion is written to ClickHouse before any postbacks or pixels fire — so even if delivery fails downstream, the conversion is already recorded. Networks that re-send the same transaction_id get the existing conversion back instead of a double count.
On granularity, BATracker carries sub1 through sub20 — twenty custom tracking parameters — straight from your traffic source into every report. That's the level of detail native and push buyers need to blacklist a single zone, placement, or widget while keeping the rest of the campaign live.
6. Server-Side Meta CAPI + TikTok
This is where the modern media buyer wins or loses. Browser pixels alone leak conversions to ad blockers and privacy features. BATracker fires the Meta Conversions API and TikTok Events API server-side — and, crucially, it sends the same deterministic event_id on the server event that the browser pixel uses, so Meta and TikTok automatically deduplicate the two. You get server-side reliability without double-counting.
Meta CAPI
Posts to the Graph API events endpoint with mapped event names (sale/conversion to Purchase, lead to Lead, registration to CompleteRegistration, and more). Hashes user data (email, phone, external_id, geo) with SHA-256, sends IP and user agent raw, and builds fbc from fbclid. Access tokens are stored encrypted (AES-256-GCM), decrypted only at send time.
TikTok Events API
Posts to the TikTok events endpoint with mapped events (sale to CompletePayment, lead to SubmitForm, registration to CompleteRegistration, install to Download). Carries ttclid, the same event_id for dedup, hashed user data, and full context (page URL, IP, user agent, value, currency, order_id).
A single campaign can carry many pixels, each with its own event name, and custom conversions can map a postback event (for example ?event=AddToCart) to a specific platform event and pixel. Pixel fires run in parallel with Promise.allSettled, so one platform failing never blocks the rest — and every fire is logged with platform, event name, full payload, HTTP status, and response body in Settings.
7. Bot Filtering & Traffic Quality
ClickMagick's Click Shield is a genuine strength for protecting affiliate links. BATracker approaches the problem as a configurable rule engine for media buyers who need to shape traffic quality across whole campaigns.
- • Automatic bot detection from the user agent — extensive patterns for crawlers, scrapers, headless browsers (selenium, puppeteer, playwright, phantom), CLI tools (curl, wget, python-requests), search engines, SEO crawlers, and AI crawlers. An empty user agent is treated as a bot.
- • Datacenter detection — visitors from hosting/cloud ISPs (AWS, Google Cloud, Azure, DigitalOcean, OVH, Hetzner, and many more) are flagged as datacenter connections; real users almost never come from datacenters.
- • Proxy/VPN detection and connection-type flags.
- • IP click-frequency (CLICKS_PER_IP) to catch repeated clicks from the same address.
You act on any of these with filter rules across dozens of dimensions — country, city, region, ISP, datacenter, device, OS, browser, language, referrer, IP/CIDR ranges, sub1–sub20, weekday, time of day, and bot status — using operators from simple equals to in_range CIDR and length-capped regex. Actions are BLOCK (returns 404, logged as filtered, and does not consume your visit quota), REDIRECT to a fallback URL, ALLOW (whitelist), or FLAG for review. Reusable filter templates share rule sets across campaigns, while inline per-campaign filters take precedence, and time filters evaluate in each campaign's configured timezone.
8. Real-Time Reporting & Domains
BATracker's reporting runs on ClickHouse, so it's genuinely real-time and multi-dimensional. Break results down by campaign, offer, lander, traffic source, country, device, OS, browser, day, hour, and sub IDs — and read every metric a media buyer cares about: visits, unique visits, LP clicks, LP CTR, conversions, CR, revenue, cost, profit, ROI, EPC, CPC, and CPA. Everything exports to CSV, and all times display in your workspace timezone. A real-time live feed shows incoming clicks as they land.
Custom domains with automatic SSL
Every workspace uses its own bring-your-own tracking domain — never a shared one. Add a domain, set the CNAME and TXT records, and SSL is provisioned automatically and auto-renews via Cloudflare for SaaS. That means professional URLs, better deliverability, and avoiding shared blocklists.
On top of that, BATracker layers alerts (ROI drop, conversion milestones, spend limits, no-conversion windows, traffic drops), daily/total caps for clicks, conversions, and budget at both campaign and offer level, split testing with statistical significance, and API keys for programmatic access.
9. Which Should You Choose?
Choose ClickMagick if…
You're an affiliate or solo marketer whose main need is clean link tracking and attribution with solid bot filtering on your links, and you're not running deep, multi-path paid campaigns with network postbacks and server-side pixels.
Choose BATracker if…
You buy paid media at scale and need campaign flows, weighted lander/offer rotation, S2S postbacks, sub1–sub20, multi-dimensional real-time reports, and server-side Meta CAPI + TikTok with event_id dedup — with the option to run in the cloud or self-hosted.
Both are legitimate tools. But for performance marketers and media buyers who need depth, reliability, and a modern real-time stack, BATracker is purpose-built for the job.
10. Frequently Asked Questions
What is the difference between BATracker and ClickMagick?
Does BATracker support server-side conversion tracking for Meta and TikTok?
Why do media buyers need S2S postback tracking?
How does BATracker filter bot and low-quality traffic?
Can I self-host BATracker?
Track Paid Campaigns the Way Media Buyers Actually Work
Flows, weighted rotation, S2S postbacks, sub1–sub20, and server-side Meta CAPI + TikTok with event_id dedup — on a real-time ClickHouse stack. Cloud or self-hosted.
Start Your Free Trial