inemaSEO 3 — Measurement and Routine: the number that matters is the non-branded one|INEMA.CLUB-PRO

Lesson 2 · 18 min

Weekly export that separates the brand from anonymized queries

The baseline is a photo. To see the movie, you need the same photo every week, in the same format. The gsc_semanal.py script does that: it separates branded, non-branded, and anonymized, and writes one row per week. Without Google credentials, the same spreadsheet by hand works.

Start the lesson
A shelf with binders organized by color and an open notebook showing a spreadsheet.

In this lesson you will

  1. 1What gsc_semanal.py writes and why
  2. 2Reading resumo.csv week by week
  3. 3INEMA's real arc: impressions go up, non-branded clicks don't
  4. 4Doing the same by hand when there are no credentials

Goal: build the weekly export that writes total, branded, non-branded, and anonymized in one row per week.

01From the week on the dashboard to the row in the file

Click each block.

Click each block in the diagram to see what it does.

One row per week is little work and becomes the history the dashboard doesn't keep.

02How the export works

Click each step.

1. Credential

The script uses your gcloud login with the Search Console read-only scope and a Google Cloud project for the quota.

If you don't have this, skip to step 4: the spreadsheet by hand gives the same result, just slower.

03The command and the file it writes

Command from the open script gsc_semanal.py. Replace what is between < > with your own. It needs a Google credential; without it, use the spreadsheet.

Terminal · read-only login (once)
gcloud auth application-default login \
  --scopes=https://www.googleapis.com/auth/webmasters.readonly,https://www.googleapis.com/auth/cloud-platform
Terminal · the week's export
export GSC_SITES="sc-domain:<seusite.com>"
export GSC_MARCA="<seusite>|<seu nome>|<erro comum>"
export GSC_QUOTA_PROJ="<projeto-da-cota>"
python3 tools/gsc_semanal.py --dias 7 --saida dados/gsc
resumo.csv header
inicio,fim,site,total_cliques,total_impr,marca_cliques,marca_impr,sem_marca_cliques,sem_marca_impr,anonimas_cliques,anonimas_impr,consultas_sem_marca
Example from the repository
weektotalbrandednon-brandedanonymizednon-branded queries
09/16–09/22104/43779/2450/825/1843
09/24–09/3077/82057/2200/5420/54629
09/27–10/0387/81768/2880/5519/47436
09/28–10/0477/70860/2530/4717/40830
10/05–10/11114/70287/2380/15727/30751

Clicks/impressions. Real file from inemaSEO (2026).

04Practice: two weeks logged

E2 needs a week of waiting.

E1 · Regex and first week

30 min

Fine-tune the regex from lesson 1 with at least 3 variations of your brand and the typos that show up in your queries. Log the first week, with the script or by hand.

Done when: the summary (CSV or spreadsheet) has the first row with the three buckets, and no query with your name ended up in the non-branded bucket.

E2 · Second week and comparison

20 min

One week later, on the same day, log the second row and write one sentence comparing the non-branded numbers of the two weeks.

Done when: there are two rows with no days in common and a sentence like "non-branded impressions went from X to Y; clicks from A to B".

05Test what you learned

The explanation appears after your answer.

Question 1 of 4

The non-branded impressions for inema.club went from 8 to 157 in four weeks, and the non-branded clicks stayed at 0. What does that tell you?skill

06Take with you

One row per weekSame day, same buckets, a file that only grows.
Impressions first, then clicksNon-branded starts with impressions. At INEMA, 8 → 157 in four weeks, with 0 clicks on the club.
Script or spreadsheetgsc_semanal.py automates it; without a credential, the dashboard gives the same number.

Going further

Previous lessonNext lesson