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 neededScript inside the accountNinja Leads
Time to analyse a large account30 minutes per run, and whatever doesn't fit goes undoneNo limit: the server decides
Analysing sites that block GoogleImpossible: it comes from a Google IP and gets no answerComes in from an ordinary IP
Uploading offline conversionsThat capability doesn't exist: files and schedules must be built by handAutomated, every night
Withdrawing a wrong conversionDoesn't existYes, and it's reversible
Reacting to a lead as it happensHourly, at bestWithin the minute
Who runs the codeYour account, on your quotasWe 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.