Digital marketing

Analytics for marketing

Analytics for marketing means picking one number per channel that would change your decision if it moved; every other number in the report is decoration. The hard part is not picking that number, it is throwing the rest away.

  • Lesson 7 of 8
  • Intermediate
  • Free, no signup

One number per channel, and the number to let go of

In each cell, first the number attached to a decision, then the one that only feels good.

  • Organic search

    clicks on the pages you wrote in order to sell. Let average position go.

  • Social

    conversations that started. Let the follower count go.

  • Email

    clicks on a tagged link. Let open rate go.

  • Paid advertising

    cost of one real enquiry. Let impressions go.

Four numbers

This split is our choice, not a standard. If your business has a different number that changes a decision, that one is right.

Last checked: Facts and tool names in this lesson are re-checked against their sources on this date.

Which numbers to watch and which to leave alone

The rule we use ourselves is one sentence: a number is worth watching if you would do something different when it moves. If your post impressions go from eight thousand to twelve thousand and on Saturday you do exactly what you were going to do anyway, that number is not a number for you, it is a feeling.

Three numbers that are almost always misleading. First the follower count, which only says how many people pressed a button one day and says nothing about today. Second impressions and views, which are an input and not a result, and which on Telegram even rise with age without a single new reader. Third the average position in Search Console, which is the worst of them because it looks like a precise figure.

Google itself has written down how that number is built: the position shown in the Performance report is the topmost position a link to your page held in results, "averaged across all queries" in which your property appeared. Which means that the moment your page starts showing on page three for one new phrase, the average position gets worse without anything having got worse. If your monthly report uses that number as a measure of progress, the report is lying to you.

Keep instead one number per channel that is attached to a decision: for search, clicks on the pages you wrote in order to sell; for social, the number of conversations started; for email, clicks on a tagged link; for advertising, the cost of one real enquiry. Four numbers. If your report holds more than that, nobody reads the rest.

A matrix of glass tiles with one white tile per row and red, green and blue tags on a glowing link cable

What UTM is, and what you lose without it

A few words you attach to the end of a page address so that when someone clicks the link, Analytics knows where the link was. Without them, a click from an Instagram bio, a click from a channel post and a click from your email signature all land in the same anonymous row, and you can no longer say which piece of work paid off.

Google publishes the list of parameters, and two points on that page are rarely repeated anywhere else. First, Google says plainly that whenever you add parameters you should always use utm_source, utm_medium and utm_campaign; the rest are optional. Second, two of the parameters on that list, utm_creative_format and utm_marketing_tactic, are in Google's own words "not currently reported in Google Analytics properties". You can set them and never see them anywhere.

A third point that confuses most people: Google states that UTM parameters are omitted from the Landing page + query string and Page path + query string dimensions and are instead populated in Page location. So if you went looking for your campaign tag in the pages report and could not find it, nothing is broken; it is somewhere else.

And the discipline everything depends on is clerical rather than technical: one name per place, always the same one. Write instagram once, Instagram another time and insta a third, and you have built three separate rows in the report, none of which is the real number. A plain file recording which name you use for each channel matters more than any analysis tool.

What keeps a report readable, and what ruins it

Link tagging disciplineone file, five minutes

Always

  • set source, medium and campaign together, every time
  • write everything in lowercase
  • keep one file recording the name used for each channel
  • open the tagged link once before you publish it

Never

  • spell one channel differently each time
  • tag a link that points inside your own site
  • put anybody's name, phone number or email inside a parameter
  • rely on the two parameters Google says are not reported

Tagging only fixes where the visit came from. Whether that visit turned into a sale is a different question, and this list does not answer it.

Why the Analytics number never matches the Search Console number

Because they count two different things and neither of them is broken. Search Console looks from Google's side: someone clicked your link in search results. Analytics looks from your site's side: a page opened in someone's browser, the measurement code ran, and a message went to Google's server.

Several things can happen between those two moments. The user can go back before the page finishes loading. A browser or an extension can block the measurement script. And most of all, Search Console counts Google Search only, while Analytics counts arrivals from everywhere. That is why comparing the two number to number is a meaningless exercise; the meaningful thing is to compare each one against its own history.

Each answers a question only it can answer. Search Console tells you which phrases people searched, saw you and did not click; no other tool has that, and it is the place from which page titles and meta descriptions should be corrected. Analytics tells you what happened after the visit and where people came from. If you work with both, the lessons on Search Console and Google Analytics 4 in this section open up the tool layer in more detail.

Search Console and Analytics: which question each one answers

Search Console

  • counts from Google's side: a click on a result
  • Google Search only, no other channel
  • shows the phrases where people saw you and did not click
  • needs no code on the site

Google Analytics

  • counts from the site's side: the measurement code running
  • arrivals from anywhere, including tagged links
  • tells you what happened after the visit
  • counts nothing if the script does not run

Neither is broken and their numbers are not meant to match. This figure is about the difference in question, not about which one is more accurate.

Before you trust the number, check the measurement itself

The most common reason a chart drops suddenly is not a real drop; it is measurement that broke. And the worst version is the silent one: no error is logged anywhere, the report arrives every day, only the numbers are smaller.

Three things worth checking once a month. That the measurement code is still on every page, including new pages and checkout pages. That the script file actually returns a 200 and not a 404; you can see this in the server log or in the browser's network tab. And that the page cache is not serving an old copy of the HTML pointing at an address that no longer exists.

That last item is the one we learned the hard way, and it is written out in the first-hand section of this page. The short version: when your site's HTML sits in a cache layer for weeks, any change to the name of a script file can cut measurement off, and you will see it not in the report but only in the server log.

A monthly report somebody actually reads

One page. Any longer and nobody reads it, and you yourself will not have the patience to build it next month.

The four channel numbers you chose above, each beside last month's number rather than standing alone. Under them two lines about what changed and one guess at why, marked plainly as a guess. Then one thing you intend to try next month. And at the end, one line about what you do not know; that line is what separates a report from an advertisement.

What is not in the report matters too: charts nobody makes a decision from, screenshots of tool dashboards, and any number whose origin you cannot state. If you cannot explain a number in two sentences, it has no business being in your report.

The fast path, with AI

What a model is genuinely good at in analysis is not telling you what happened. It does not know, and if it says so it is inventing a story. What it is good at is finding, in a sixty-row table, the rows that differ from the rest, and writing a few possibilities for each one that you then go and check. The model looks on your behalf; it does not think on your behalf. That difference is what separates a ten-minute analysis from a page of irrelevant text.

  1. Export the month as a plain table: a channel or page column, a this-month column, a last-month column. Three columns is enough.
  2. Before pasting, delete any column holding somebody's name, email or phone number. Aggregate data stays, personal data does not.
  3. Send the recipe below and treat the output as a to-do list rather than a conclusion. Every line of it is one thing to go and look at.
  4. Go to the technical possibilities first: measurement code, cache, a changed page address. If the drop is of that kind, the rest of the analysis is meaningless.
  5. This does not need an expensive model; the work is mechanical and a fast model of the Flash class handles it. See the AI section of this site for today's pick.

Copy-ready recipe

Below is a site's monthly export. Columns: {column names}. Period: {this month} against {last month}.

{table}

Do three things, then stop:

1. Point out the rows whose change does not fit the change in the rest of the table. For each row write only what is unusual about it.
2. For each row write at most three possibilities, and write each one so that I can go and check it. Put technical possibilities such as broken measurement or a changed page address separately and first.
3. Say what data is missing from this table that would be needed to answer the question.

Rules:
- Write no number that is not in the table, and calculate no percentage except from these columns.
- Draw no conclusions and do not say what happened. Possibilities only.
- Give no marketing advice. I want a checklist.
- If the table is not enough to answer part of this, say so.

Before you trust the output: The output of this recipe is a checklist, and no line of it is true until you have checked it. Keep three things in mind. First, the model does not know what you did or did not do last month, so the largest cause of any change is usually not in the table, it is in your calendar. Second, if it writes a sentence declaring a cause with certainty, throw that sentence away; a two-column table cannot produce it. And third, work through the technical possibilities before any marketing interpretation, because a drop in measurement looks exactly like a real drop and only the server log separates them.

AI in this kind of work

In analysis, AI does not replace the analyst but it does take over the boring part: reading a long table and marking the things that do not fit the rest. And that is exactly where useful use and dangerous use part company. Ask a model why sales fell and you will get an answer, and that answer is invented. Ask it where you should look and you get a list that saves you an hour.

Tools that actually help

  • Claude When the prompt says draw no conclusions and write possibilities only, it usually obeys, and for analysis that matters more than cleverness. Iran is on neither of Anthropic's two supported-country lists, and we read that on Anthropic's own page.
  • Gemini Fast and cheap on long tables, which makes it the better economics for a repeated monthly job. Persian is on the supported-language list for the web app but Iran is not on the supported-country list; both facts come from Google's own help pages.
  • NotebookLM Upload several months of reports as sources and it answers only from them, which is what stops a new number from appearing. Google says it works in the same regions the Gemini app works in, and Iran is not on that list.

Where it backfires

The main risk here is not hallucination in its ordinary form but in its more dangerous one: the model produces a sentence like "direct traffic fell because you paused the Instagram campaign", and the sentence looks reasonable, contains no invented figure, and does not follow from the data you gave it. What was fabricated is the reasoning rather than a number, and that is harder to spot. Anthropic keeps a page in its documentation aimed at reducing this behaviour, and its practical remedy is the one used in the recipe above: say explicitly that it must work only from the data given and must say so when the data is not enough.

The second risk looks smaller and is not: analytics exports often carry personal data. A raw order file holds phone numbers and addresses; a contact-form export holds names and emails. This is your customers' information, and pasting it into a chat box means sending it to another company's server; what happens next depends on the plan and the settings, and every service has its own page on it. Simple rule: delete the identifying columns before you copy. Aggregate analysis does not need them.

Sources: Anthropic docs: reduce hallucinations Anthropic: is my data used for model training Anthropic: supported countries and regions Google: where Gemini Apps are available Google: NotebookLM availability

Where this advice stops

Three things are not here. First, any benchmark number: we do not say what a good conversion rate is, what a normal click rate looks like, or how many visits a month are enough for your business. Such a figure is meaningless without knowing your industry, your prices and your city, and none has been published for the Iranian market anyway. Second, definitions and report names inside Google's tools change, and what we quote here was read from Google's own help pages on the verification date of this page; read that page before relying on it. And third, this lesson is about reading the numbers, not about the technical setup; installing and configuring the tools belongs to the Analytics and Search Console lessons.

From our own work

We once broke the measurement on this very site in a way no report would show. The local copy of gtag.js that we keep on our own server took its name from the file's content hash, so every night the file was downloaded fresh it got a new name and the previous copy was deleted at that instant. The trouble was that this site's HTML sits in an edge cache for up to thirty days, and that old HTML pointed at the old file name. So every visitor served a cached page requested a file that no longer existed.

And because that path is an nginx rewrite, PHP never ran at all and the requests were answered as a static 404. The result: no data was collected on cached pages and Google Analytics simply showed a smaller number, without one line of error anywhere. We found it in the server log: across four days of logs, six historical hashes had been requested and not one of them had ever returned a 200.

The fix was to make the file name stable and move cache-busting into a ?ver= query, so that stale HTML still lands on a real file. Today RGB_GA4_NAME in inc/analytics.php is the fixed gtag.js, and the cleanup of old copies is set to 45 days, deliberately longer than the thirty-day edge cache. The lesson that matters for this page: do not attribute a drop in the chart to marketing first. If your HTML is cached, file names are part of your measurement system.

Real follow-up questions

For a small business, how many analytics tools are needed?

Two: one to see arrivals from every channel and one to see the search side. A third tool usually just adds charts without answering a new question. If you have not made a decision from a tool in the last three months, remove it.

Direct traffic is large in my report; what does that mean?

Usually it means the source was not identified, not that someone typed the address. An untagged link in a messenger, a click from inside an application, and moving from a secure page to an insecure one all land in that same bucket. The best you can do is tag your own links so the bucket shrinks.

How often should I look at the report?

As often as you can act. Looking at a marketing chart daily usually shows nothing but ordinary noise and produces hasty decisions. Monthly for decisions and weekly for spotting technical breakage is a reasonable pairing.