Get the newsletter Newsletter
Creator growth

I built a tracking plugin because I was tired of guessing which ads work

Meta says one number, my inbox says another. So I built Straycy, a WordPress plugin that shows which ads bring paying customers and sends every lead and sale to the ad platforms from your own server.

How this site makes money

Some links on this site are affiliate links. If you buy through one, I may earn a commission at no extra cost to you. Vendors never see or approve what I write, and a commission never changes what I recommend. Each guide says what it is based on. Read the full disclosure

Straycy homepage: server-side ad tracking, no server to set up

For years I had the same slightly annoying feeling every time I opened Ads Manager.

Meta tells me one number. My inbox tells me another. Google sits somewhere in the middle, smiling politely. And the one question I actually cared about, which ad brought me a customer who paid, was always the one I could answer the least.

I’ve been doing marketing and sales for more than 15 years. I’ve spent a lot of money on ads, other people’s and my own. You’d think by now I’d have this figured out. I didn’t. So I built something.

It’s called Straycy (opens in new tab). It’s a WordPress plugin, I launched it this week, and this post is the story behind it: what it does, why it exists, and where I want to take it.

The problem everyone knows and nobody wants to set up

Here’s the thing most marketers already know. The tracking pixel on your site runs in the visitor’s browser. Ad blockers block it. Safari and Firefox chop its cookies. iOS made a mess of the rest. So a good part of your conversions never reach Meta or Google, and the ad algorithm optimises on a picture with holes in it.

The fix is also well known: send your conversions from your server, not only from the browser. Meta calls it the Conversions API, and the others have their own versions.

And then you look at how people actually do that. A GTM server container on Google Cloud. Or a paid forwarding service. Tags, triggers, data layer variables, an afternoon in preview mode, and one more monthly bill. I know how to set all that up and I still didn’t want to. Now imagine how a dance studio owner or a small web shop feels about it.

Animation: 10 sales, the browser pixel reports 6, server-side tracking sends all 10
Same 10 sales. The pixel loses some on the way. The server doesn’t care about ad blockers.

I built it for my own marketing first

Straycy started as a tool for me. I run ads for my own projects, including a dance studio (yes, I teach bachata, it’s a long story), and I wanted to finally see which ads bring paying customers. Not clicks. Not “leads” that never answer the phone. Customers.

I also wanted it to live where my sites already live: inside WordPress. No extra server. No cloud bill I’d forget about. Install a plugin, paste a few keys, done.

After a while it worked well enough on my own sites that keeping it to myself started to feel a bit silly. So I decided to share it.

So what does it actually do?

In plain words: Straycy remembers where every visitor came from, notices when they become a lead or a customer, and tells your ad platforms about it from your own server.

When someone lands on your site, Straycy grabs the source right away: the UTMs, the referrer, the ad click IDs (fbclid, gclid, ScCid, oppref and friends). When that person later fills in a form or buys something, the source is still there, stuck to the lead.

Animation: a new lead gets its source filled in, facebook / cpc / autumn-classes
No more “Direct ???”. The source is captured when they land and kept with the lead.

Then it sends that lead or sale to Meta, ChatGPT Ads, Reddit and Snapchat from your server, and to Google with Enhanced Conversions. If the browser pixel also fires, both carry the same event ID, so the platform counts the conversion once and keeps the better data.

Animation: one form submit goes from WordPress to Meta, ChatGPT Ads, Reddit, Snapchat and Google Ads
One form submit, five ad platforms, zero tags.

The part I’m secretly most proud of is that you don’t set up any events. Straycy finds your forms by itself (Forminator, Contact Form 7, WPForms, even custom JavaScript forms that redirect), your WooCommerce checkout and your Stripe payments. Stripe sales only count after Stripe confirms the payment, so the revenue is real.

Straycy smart capture: forms, WooCommerce checkout and Stripe payments detected automatically
What you skip: the GTM container, the triggers, the data layer, the developer hours.

A few more things it does that I wanted for myself:

  • Every person becomes one contact, so you see their whole story and their lifetime value, not ten random rows.
  • Your data stays in your own WordPress database. It doesn’t go through my servers.
  • It waits for your cookie banner. By default, no consent means no ad tracking. That’s how it should be in Europe, and honestly everywhere.

ChatGPT is an ad channel now, which is wild

Not long ago “ChatGPT traffic” meant someone asked a question and clicked a link. Now ChatGPT runs ads too. Straycy sends conversions to the ChatGPT Ads Conversions API, and it tells apart two very different visitors: someone who clicked a ChatGPT ad, and someone who found you in a ChatGPT answer. Those are not the same thing, and you really want to know which one buys.

Things I learned building it

  • Cookie banners are their own universe. Every consent tool stores the visitor’s choice a bit differently, and some people paste the banner in as a script instead of using a plugin. Making tracking follow the banner properly, including on the server side, took way more work than I expected.
  • Caching will humble you. You test everything, it all works, and then a caching plugin happily serves the first visitor’s version of the page to everyone else. Lesson learned, fixed, and now I test in private windows like a paranoid person.
  • Trust nothing a URL tells you. If a sale isn’t confirmed by Stripe or WooCommerce, it doesn’t count. Fake conversions are worse than missing ones, because the algorithm learns from them.
  • A friendly first customer is gold. Anton from Dance Social Helsinki lets me test new features on his live site, and tells me straight when something looks off. Every founder needs an Anton.
Anton, Dance Social Helsinki

We have been running Facebook ads for our dance classes for a long time. With Straycy, we saw an uplift in accuracy and which ads actually bring us paying customers.

Anton, Dance Social Helsinki

Where I want to take it

Right now Straycy answers “which ad brought this lead?”. The next question is the one that really moves money: what was that lead actually worth?

Straycy contact view with lifetime value and first-touch source
One person, every purchase, and the ad that brought them in the first place.

Lifetime value per channel is already in there. Next I want you to be able to mark a lead as a won customer, with the real value, and have Straycy send that back to the ad platform that brought them. Then Meta and Google stop optimising for form fills and start optimising for people who actually pay. That’s the stuff big companies pay a data team for, and I think a small business with a WordPress site deserves it too.

Also on the list:

  • Server-side Google Ads, on top of the Enhanced Conversions that work today.
  • More platforms. Microsoft, TikTok, LinkedIn, Pinterest and X are all on the list.
  • A proper view for agencies that run tracking for lots of client sites.

The big picture is simple. I want every small business to know which marketing actually makes them money, without hiring anyone or learning what a server container is.

Want to try it?

There’s a free 30-day trial, no credit card. Plans start at €9 a month for one site. You can find everything at straycy.com (opens in new tab).

Launch week: the first 20 customers get 75% off any plan for 12 months with the code FOUNDER75. Ends Thursday 29 October at 23:59 (Tallinn time). Claim it here (opens in new tab).

And if you try it, tell me what breaks. Seriously. Email me at hi@straycy.com or message me on LinkedIn. I read everything.

Johannes

P.S. Yes, every link to straycy.com in this post has UTMs on it. Old habits.

Written by

Founder · 15+ years in marketing and growth · Ex-LHV, Change · Master's in Business IT, TalTech

I've spent 15+ years in marketing and growth, from a T-shirt startup that flopped to leading growth at fintech and payments companies. Today I write about building an audience and turning it into a business, and I only recommend tools I'd pay for myself.

Contents

Share this guide

Back to top