Zinn® Ads counts what your ads really bring in: it puts the right tags on your site, keeps the ad click id each visitor arrived with, and sends your real sales, trials, leads and sign-ups to every ad network you use, from the browser and from our servers.
Conversion tracking setup
Each connected Google Ads or Microsoft Advertising account has a Conversion tracking setup card. Pick how the network learns about a sale:
- Google Analytics 4 key events: best when GA4 already records your sales on your own site. Link the GA4 property to the ad account in Google Analytics (Admin, Product links, Google Ads links), then pick the key events that mean a sale or a lead and import them.
- Server-side upload of your real sales: best when checkout happens on another site, or when you want sales counted even when a visitor blocks tracking. We prepare the offline conversion action for you; it is created when you approve it.
The card says whether it is Working (a conversion arrived recently), set up with no conversion yet, or waiting for your approval. Every change waits in the list of changes on the page; nothing changes at the network until you approve it.
The tracking hub
Zinn® Ads → Tracking hub keeps the tag id and conversion ids of each ad network you use, and of Google Analytics, in one place. Enter them once and every site you install Zinn® Ads on uses them, unless that site sets its own.
Under Server-side keys paste a network's own server-side key (a Conversions API or Events API token, or the GA4 Measurement Protocol secret). Zinn® Ads then sends each conversion from our servers as well as the browser, so ad blockers and lost cookies miss fewer of them. Keys are kept in our secrets vault, are never shown again after you save them and never appear in your site's code. Only outcomes where the visitor allowed ad data are sent, the e-mail address hashed, with the same order id as the browser event, so the network counts each sale once. A test code sends events to the network's test view only. If a network refuses a key, the hub says so and nothing is sent with it until you replace it.
The Zinn® Ads tag on any site
On WordPress use the Zinn® Ads plugin. Anywhere else, a universal snippet, a Shopify app and a Google Tag Manager template carry the same tracking-hub settings. The tag keeps the first ad click id a visitor arrives with (gclid, msclkid, fbclid, ttclid, li_fat_id, twclid, epik), so a later visit never overwrites it, and passes it on to your checkout (for example Stripe's client_reference_id). It sets Google Consent Mode v2: ad and analytics storage start denied for visitors in the European Economic Area, the United Kingdom and Switzerland until they allow it.
First-party tracking on Cloudflare
If your site's domain is on Cloudflare, Zinn® Ads can serve the tags from your own domain: you create a Cloudflare API token (Zone Read and Workers Routes Edit for the zone, Workers Scripts Edit for the account) and we add one Worker and one route under your domain, nothing else. Google's tag then loads from the same site as the page, and Consent Mode v2 works as before. The card shows Serving first-party, and says plainly when the route was removed or the token no longer works.
Cloudflare Zaraz
Prefer to run the tags at Cloudflare's edge with no code on your site? Connect the zone with a token that has Zone Read and Zaraz Edit only; we check that it can edit Zaraz and keep it in our vault. Before the first install we read your zone once, without changing it, so the consent box starts from your zone's real consent setting. Install then writes the Zaraz tools, triggers and consent from your tracking hub in one click. Afterwards the two stay in step: a change made in Cloudflare is shown to you to keep or undo, every version is kept (the zone as it stood before the first install is marked Before install), and any version can be restored for 30 days. The WordPress plugin offers the same guided setup from wp-admin.
Send events from your own server
Zinn® Ads → Server events takes each sale, trial, lead or sign-up from your server once, with your own event id, and sends it to every connected network that takes server events; sending the same id again is ignored, so retries are safe. Create an API key with the Zinn® Ads manage permission, and set an upload action for each kind of event on the account's tracking page. The SDKs are generated from our OpenAPI spec. Send an e-mail address only if you have to: it is hashed as soon as it arrives and never stored. The latest events show what each network did with them.
Customer Match lists
Under Tracking, Customer Match lists upload customers who agreed to it, so Google Ads can show them your ads or leave them out. Tick both consents and accept the Customer Match terms; we record your name and the date. Each e-mail address or phone number becomes a one-way code the moment it arrives, and only the code is kept.
From an AI assistant
An AI assistant connected over MCP can read the hub with ads_tracking_hub, the site tags with ads_site_tags, the server events with ads_server_events and Customer Match lists with ads_audiences.
Step-by-step guide
Check ad tracking and recover missed conversions on zinnads.com walks through it with screenshots of the real screens. Every Zinn® Ads guide: zinnads.com/kb.