In partnership with

How to Instrument Every Number on Your AI Visibility Scorecard | Mastering AI Visibility

200 Ways To Make Money With AI

Ready to transform artificial intelligence from a buzzword into your personal revenue generator?

HubSpot’s groundbreaking guide "200+ AI-Powered Income Ideas" is your gateway to financial innovation in the digital age.

Inside you'll discover:

  • A curated collection of 200+ profitable opportunities spanning content creation, e-commerce, gaming, and emerging digital markets, each vetted for real-world potential

  • Step-by-step implementation guides designed for beginners, making AI accessible regardless of your technical background

  • Cutting-edge strategies aligned with current market trends, ensuring your ventures stay ahead of the curve

Download your guide today and unlock a future where artificial intelligence powers your success. Your next income stream is waiting.

Issue #29 gave you nine KPIs. This one wires them up. No vendor, no dashboard, no procurement cycle. A spreadsheet, a GA4 regex, a grep, and a form field.

You can buy a tool later. Build the instrumentation first, because if you cannot compute the number by hand, you will not be able to tell whether the tool is computing it correctly.

6
columns in the tracker. Every KPI on the scorecard is a pivot on those six.
Build the sheet before you buy the dashboard.
The citedby AI visibility tracker · Structure, not a measured benchmark

1. The tracker. Six columns, one row per prompt per engine.

This is the base table. Everything else is derived from it. The one rule that matters: engine is a key, never an aggregate. The moment you collapse it, your Share of AI Voice becomes an average of retrieval systems that do not share a source distribution.

# One row per prompt, per engine, per week. Six columns. That is the whole system. week | prompt | engine | cited | rank | competitors_named ------------|---------------------------------|------------|-------|------|------------------ 2026-07-14 | best [category] for [ICP] | chatgpt | 1 | 2 | Brand B; Brand C 2026-07-14 | best [category] for [ICP] | perplexity | 0 | | Brand B; Brand D 2026-07-14 | best [category] for [ICP] | google-ai | 1 | 4 | Brand B 2026-07-14 | how do I [solve core problem] | chatgpt | 0 | | Brand C # Every KPI on the scorecard is a pivot on this table: # citation rate = AVG(cited) GROUP BY engine # share of AI voice = SUM(cited) / SUM(all brands) GROUP BY engine # recommendation rank= AVG(rank) WHERE cited = 1 GROUP BY engine # Never GROUP BY nothing. That is the blended score, and it lies.

2. The prompt set. Build it once, freeze it, then never quietly change it.

1
Take 20 prompts your buyers actually use
From your Search Console query report, your sales call notes, and your support tickets. Their words, not your keyword list. Issue #26 covers how to choose them across the five buying stages.
2
Split branded from unbranded, and track them apart
A prompt that names you will cite you almost every time. Leave it in the main set and it inflates your Share of AI Voice into a number that means nothing. Keep two tabs.
3
Freeze the set for a quarter
Adding prompts mid-quarter changes the denominator, and your trend line becomes a fiction. Add them at the quarter boundary, and note the change in the sheet.
4
Run it in a clean session, every time
Logged out, no history, incognito. Personalisation will otherwise quietly show you an answer tuned to a person who has been researching your own brand all week. That person is you.

3. AI referral traffic. Your analytics is undercounting it.

Most AI engines strip the referrer when a user moves from the app to the browser, so the session lands in Direct. If you have never fixed this, your AI traffic number is wrong and it is wrong in the direction that makes you look bad.

# GA4 custom channel group. AI referrals land in "Direct" by default, # because most engines strip the referrer on the app-to-browser handoff. # Admin -> Data display -> Channel groups -> Create new Channel name: AI Search Condition: Source matches regex chatgpt\.com|chat\.openai\.com|openai\.com |perplexity\.ai |gemini\.google\.com|bard\.google\.com |claude\.ai |copilot\.microsoft\.com|bing\.com/chat |you\.com|phind\.com # Order it ABOVE Organic Search, or Google AI traffic gets swallowed by it.

Two cautions. Order the channel group above Organic Search or Google AI traffic gets absorbed into it. And accept that even after this, the number is a floor rather than a truth. That is what the self-reported field on your demo form is for, and it is why it is a tier 1 KPI rather than a nice-to-have.

4. Crawler access. The log is the only honest source.

Every hygiene alarm on the scorecard resolves to one question: can the crawlers actually read the page? Your CDN, your robots.txt and your JavaScript framework each get a vote, and none of them will tell you when they vote no.

# Are the crawlers even reaching you? Your server log knows. Nothing else does. grep -E "GPTBot|OAI-SearchBot|ChatGPT-User|PerplexityBot|ClaudeBot|Claude-SearchBot|Google-Extended" \ /var/log/nginx/access.log \ | awk '{print $1, $7, $9}' \ | sort | uniq -c | sort -rn | head -40 # Read two things: # 1. Is each bot present at all? An absent bot is a blocked bot. # 2. What status code is it getting? A 200 that returns an empty # JS shell is worse than a 403, because it looks like success.

The failure that hides best is a 200 that returns an empty shell. Your monitoring says the page is up. The crawler fetched HTML with no content in it, because the content arrives via JavaScript that no AI crawler executes. It looks like success in every dashboard you own.

“Your site’s technical foundations decide your visibility in AI search.”
Source: Humans of Martech, ep. 202, Jan 2026

5. The signals. Cheap, monthly, and mostly manual.

Branded web mentions. The highest-leverage signal on the scorecard, correlating 0.664 with AI Overview appearances across 75,000 brands, against 0.218 for backlinks. Count them monthly with a saved search across the sources that cite in your category. Not with a link tool.

Entity clarity. Ask each engine “what is [your brand]?” once a month. Log the answer verbatim. Score it out of ten as a human. Every wrong description becomes a content brief, and this is the single fastest way to find out that an engine thinks you are a company you have never heard of.

Content freshness. The share of your cited pages updated in the last 180 days. Pull the cited URLs from column six of the tracker, check their dateModified, and you have it.

6. Automate it, once it is boring

Do the first four weeks by hand. It is tedious, and it is the only way you will develop a feel for what the answers actually look like, which is a thing no dashboard will give you.

Then automate the parts that are mechanical: the log grep on a cron, the GA4 channel group once, and the freshness check as a script over the cited URLs. Keep the prompt run itself under human eyes for as long as you can stand it. The verbatim answers are where the content briefs come from, and an automated yes-or-no throws all of that away.

This week's fix
Build the six-column tracker and run your 20 prompts once, on every engine, this week.
Then fix the GA4 channel group. Those two together take an afternoon and they populate seven of the nine KPIs on the scorecard. The remaining two are pipeline and revenue, and those come from your CRM, not from a dashboard.

Frequently Asked Questions

How do I track AI Overviews and AI search traffic?

Two instruments, because neither is sufficient alone. First, a GA4 custom channel group matching a regex across chatgpt.com, perplexity.ai, gemini.google.com, claude.ai and copilot.microsoft.com, ordered above Organic Search. Second, a self-reported "how did you first hear about us?" field on your demo form, because most engines strip the referrer on the app-to-browser handoff and those sessions land in Direct no matter what you do.

How do I track traffic from AI Overviews specifically?

You largely cannot, and you should know that going in. Google AI Overviews appear on the search results page, so a click from one is attributed as ordinary Google organic traffic. The honest approach is to measure your citation rate inside AI Overviews with a weekly prompt run, and treat that as a visibility metric rather than a traffic one. Not everything that matters produces a click.

What tools do I need to measure AI visibility?

To start, none. A spreadsheet with six columns, a GA4 channel group, a grep over your server log, and one field on your demo form will populate seven of the nine KPIs. Build that first. If you cannot compute the number by hand, you will not be able to tell whether a vendor is computing it correctly, and every vendor computes Share of Voice slightly differently.

How often should I run my prompt set?

Weekly, in a clean logged-out session, with a set frozen for the quarter. Weekly is frequent enough to see a trend and infrequent enough to stay sane. The absolute number in any single week is close to worthless. The trend line is the entire point.

Why does my AI referral traffic look so low?

Because it almost certainly is being undercounted. Most AI engines strip the referrer when the user moves from the app to a browser, so those sessions are classified as Direct. Fix the GA4 channel group, then compare the result against your self-reported attribution field. The gap between the two is your undercount, and for most B2B teams it is large.
thrivestack.ai/citedby
Skip the spreadsheet.
citedby runs your prompt set across every engine each week, tracks citations per engine, and shows you the page each engine actually pulled.
Automate the tracker →
No credit card required  ·  Free to start