How it is built
The boring part is the one that makes it work
This page is for anyone who wants to know what's underneath before trusting someone with their measurement. There is nothing here that can't be verified in your own account.
Architecture
Where each piece runs
The only thing living on your side is one tag on your website. Everything else happens on our server and talks to Google through its official interface.
Your website
A tag that collects the visit, the click identifier and the consent. It is small and doesn't block your page from loading.
The collector
Receives and answers in milliseconds. If anything downstream fails, the data is already stored: a lead is never lost because a process was busy.
The engine
Scores, deduplicates, decides and prepares what needs uploading. This is where the rating and the shield's six layers live.
The Google Ads connection
Reading what happens in the account and writing conversions and exclusions, through the official API.
Your sheet and your reports
What you see. The sheet is the interface, not the database: delete a row and the system still knows what happened.
The decision that shapes everything
Why the engine doesn't run inside your Google Ads
Almost every tool of this kind is a script installed in the advertiser's account. It is easier to sell and it has a ceiling that cannot be lifted.
| What's needed | Script inside the account | Ninja Leads |
|---|---|---|
| Time to analyse a large account | 30 minutes per run, and whatever doesn't fit goes undone | No limit: the server decides |
| Analysing sites that block Google | Impossible: it comes from a Google IP and gets no answer | Comes in from an ordinary IP |
| Uploading offline conversions | That capability doesn't exist: files and schedules must be built by hand | Automated, every night |
| Withdrawing a wrong conversion | Doesn't exist | Yes, and it's reversible |
| Reacting to a lead as it happens | Hourly, at best | Within the minute |
| Who runs the code | Your account, on your quotas | We do, on ours |
With one exception, and it is deliberate: layer 3 — bids and budgets — is a script inside your account. The table above doesn't apply there: it doesn't have to analyse anything heavy or read third-party sites, it has to act on your campaigns every night. And doing it from the inside means we need no permission from you to change bids: your own account runs it.
This isn't a design opinion: every row in that table is something that cannot be done from the inside, and the first four are exactly the ones that create the value.
Measurement
The three places where attribution breaks
Before scoring a lead you have to know where it came from. And that, which looks solved, gets lost on the way more often than anyone admits.
The subdomain jump
The ad lands on landing.yoursite.com and the form lives on yoursite.com. What the browser stored on one, the other cannot see, and the click identifier disappears.
Solved by also storing it at the root domain, and by reading the reference Google's own tag leaves when it exists.
The network guessed by eye
With only the click identifier, many systems assume "Search" and move on, even when it was Performance Max or Demand Gen.
Solved by asking Google about that specific click: real campaign and real type, not deduced.
What wasn't a lead
An account login, a cart step, an internal search or a newsletter sign-up all arrive as "form submitted" and pollute everything downstream.
Solved by recognising them for what they are and discarding them before anything is scored.
Reliability
What happens when something fails
A system that only works when everything goes well is no use for measuring money. These are the decisions taken with the bad day in mind.
Store first
The lead is stored on arrival and processed afterwards. If the engine is busy, the lead is already safe.
Retries
Transient API failures — which are real and frequent — are retried automatically instead of writing off the day.
Nothing counts twice
Every conversion carries a stable reference: if it is re-sent, Google recognises it and doesn't duplicate it.
Dry run before writing
Anything that will change your account is validated against Google in test mode first. If it doesn't check out, it isn't executed.
What we need from you
The setup, without the small print
1 · One tag on your site
A single line in the <head>. There's a plugin for WordPress; if a developer runs your site, it's five minutes of their time. It updates itself from our server: you never have to touch it again.
2 · Access to your Google Ads
Standard access to your account — not admin, and no moving it into any agency. You grant it, you revoke it in one click, and your account stays yours.
4 · Pasting the bidding script
One copy-paste into your Google Ads scripts, five minutes, and layer 3 starts working. You authorise it from your own account: you give us no permission to change anything.
3 · Telling us what a good lead is
The best-spent half hour of the project: which customer you want, where you operate and what "sale" means in your business. That's where the calibration comes from.
And what we won't ask for: changing your CRM, rebuilding your website, moving your account into our manager or signing anything before seeing what can be measured.
Next step
Does the way it's built add up for you?
If you got this far, you probably have specific questions. Those are the good ones.