Skip to content

Marketing sources

The marketing module reads five sources, and each has its own requirements: three ride an employee’s Google connection, one rides an API key held by the whole agency, and one rides a credential stored on a single website. Beside them, Google Tag Manager sits in the same picker, as a connection with no numbers of its own. This page is about the linking itself. What you then see on the dashboard is covered under Marketing.

  • The Marketing panel on the client page, via ⋯ → Bewerken (Edit), or the + on the client’s Marketing tab: this is where you link accounts per client, for all five sources and Tag Manager.
  • Instellingen → Marketing (Settings → Marketing): the SE Ranking API-sleutel (SE Ranking API key), the optional SE Ranking Data API-sleutel (Data API key), the house default for the comparison and the AI Search overview, and the names under which a client reads the sources.
  • Instellingen → Google Ads: the developer token. See Google Ads.
  • Instellingen → Google Workspace: the OAuth client three of the five sources ride on. See Google Workspace.
  • The WordPress card on a website: the Application Password the Rank Math source rides on. See WordPress.
SourceWhat you linkWhat you prepare firstWhat it gives you
Google Analyticsa GA4 propertyAnalytics Admin API and Analytics Data APISessions, Users, New users, Key events, Conversions, Engagement, Revenue
Search Consolea verified site (domain or URL prefix)Search Console APIClicks, Impressions, CTR, Average position, and Impressions in AI once you upload the export
Google Adsa client account, never a manager accountGoogle Ads API and a developer tokenCost, Clicks, Impressions, Conversions, Conversion value
SE Rankinga projectan API key for the agency, and for the AI Search overview access to the Data APIAverage position, Top 3, Top 10, Top 30, Ranking and Tracked keywords, and the AI Search overview
Rank Matha connected websitean Application Password on that WordPress site, and a Content AI subscriptionAI visibility score, Mentions, Citations, Average sentiment, Average rank

You enable the APIs in the Google Cloud project of your own OAuth client, under APIs & Services → Library.

  1. In your Cloud project, enable four APIs: Google Analytics Admin API, Google Analytics Data API, Google Search Console API and Google Ads API. Enable only the Data API and the property picker stays empty while everything else looks configured.

  2. Create a developer token in the API Center of your Google Ads manager account and enter it under Instellingen → Google Ads. It is stored encrypted and never returned; leave the field empty later to keep it.

  3. Connect your own Google account under Instellingen → Mijn account (Settings → My account), card Google-account, button Google koppelen (Connect Google). If you may manage marketing links, Analytics, Search Console and Ads are folded into that same consent: one trip through Google’s screen.

  4. Open a client, use the ⋯ menu on the Marketing panel and choose Bewerken (Edit). Pick an account in Analytics-property, Search Console-site and Ads-account. If the client has more than one website, first choose under Koppelen aan website (Link to website) which site the link belongs to; otherwise it stays on Hele klant (Whole client). A client with exactly one website has it chosen already.

A picker shows what your connection can reach at Google, not what the agency holds. If it stays empty it says why: no Google account yet (with a Google koppelen link), missing scopes (Google opnieuw koppelen, reconnect), or for Ads that a developer token is still needed.

A missing Google connection decides a sentence, never whether the rest is drawn. A client with a working SE Ranking project and a Rank Math link gets its pickers and figures as usual, even on an install without a single Google account.

Several links per source per client are allowed: a client with two sites gets two Search Console links and two properties, each attached to its own website.

SE Ranking works differently from the three Google sources: no OAuth, no personal connection, but an SE Ranking API-sleutel for the whole agency under Instellingen → Marketing. Every client project is linked to it, in the same picker as the other sources, under SE Ranking-project. Keyword positions, the site audit and the AI Result Tracker then work everywhere at once.

SE Ranking sells two APIs and issues a key for each: the project API (rankings, audit) and the Data API (AI search). Often one key works for both, often it does not. If you have a separate Data API key, put it in SE Ranking Data API-sleutel (optioneel); empty means the first key serves both. Sleutel controleren (Check key) asks each API with the key actually used for it, shows how many Data API units you have left, and costs nothing itself.

From the Data API schakl. reads four figures per client about AI answers: Merkvermeldingen (brand mentions), Links naar de site (links to the site), Gemiddelde positie (average position, lower is better) and Potentieel AI-verkeer (AI opportunity traffic). It is always about the last whole month, compared with the month before, and it sits on the client’s dashboard and as a chapter in the report.

When the house default applies, schakl. only asks for clients with an active marketing link. The domain comes from the linked project or the client’s first website, the brand from what SE Ranking recognises on that domain; you can fill in either per client yourself. In the Dutch database only Google AI Overviews has a monthly series, so for a Dutch client Alle engines samen (all engines together) is the useful choice. A site SE Ranking does not know gets a sentence instead of four dashes.

Impressions in AI Overviews: the Search Console export

Section titled “Impressions in AI Overviews: the Search Console export”

Since June 2026 Search Console shows how often a site appears in AI Overviews and AI Mode, in a Generative AI report of its own. The API does not return those figures, so schakl. does not estimate them either. The dashboard therefore carries a card Zichtbaarheid in AI-overzichten en AI-modus with a link to the report and the button Export uploaden (Upload export).

  1. Open the report from the card and export it by day. A weekly or monthly export is refused, with a sentence saying why.
  2. Upload the file on the card. Both the CSV of the dates table and Google’s whole zip are read, with English or Dutch column headers.
  3. The figure appears as Vertoningen in AI (impressions in AI): a tile, a trend, the comparison, a column in the cross-client overview and the AI Overviews chapter in the report.

The card says when the last upload was and which days it covered. The nightly sync never overwrites an upload. For a client nothing has been uploaded for, there is no tile and no chapter: absent is never zero.

Below the five sources, the same picker holds Tag Manager. A container has no daily numbers, so it gets no tiles; it is attached through Tag Manager’s own route and then sits on the panel’s row with the number of live tags and unpublished changes. The Tag Manager integration must be on and you must be allowed to link containers. See Google Tag Manager.

A new link gets a one-off backfill of a little over thirteen months, so the sparklines and the year-on-year comparison work straight away. After that, a nightly job collects the daily figures and re-pulls the last week while it is there: Search Console only finalises its numbers two to three days later, and attribution in Analytics keeps moving for a few days as well. For Google Ads it reaches back 30 days, because Google credits a conversion to the day of the click until the end of the conversion window; with a week, a month would be compared before Google has finished counting. Late figures therefore correct themselves.

The drill-downs under the tiles are read live from the source and kept for a day. At night they are fetched ahead for every client, so whoever opens a tab in the morning does not wait for Google.

Every link carries its state visibly: Gesynchroniseerd (Synced), Eerste synchronisatie loopt (First sync running), Synchronisatiefout (Sync error) or Verbinding verbroken (Connection lost), with Laatst gesynchroniseerd (Last synced) beside it. A broken link names whose Google account it ran through, because that is who to ask.

Unlinking erases nothing. The link is deactivated and the collected history stays; linking the same property again switches it back on.

If your agency sells a source under a name of its own, set it under Instellingen → Marketing. That name then appears on the dashboard, in the sentences about that source and in a report’s warnings. A client in the portal reads a source under your name or a neutral one, with no link to a console and without the colleague’s name behind it.

Analytics and Search Console as integrations of their own

Section titled “Analytics and Search Console as integrations of their own”

The dashboard asks Analytics and Search Console one question: how is this client doing. For every other question there are the Google Analytics and Google Search Console integrations, which you switch on under Instellingen → Integraties. They read live under the same Google consent, store nothing, do not need the Marketing module and never write.

IntegrationWhat it readsMCP section
Google Analyticsseventeen routes: properties, data streams, key events, custom dimensions and metrics, overview, daily series, breakdown, real time, metadata, a free-form report and a pivot/mcp/google-analytics
Google Search Consolethirteen routes: sites, sitemaps, overview, search types, daily and hourly figures, breakdown, movers, URL inspection, AI visibility and a free-form query/mcp/google-search-console

Both also join the growth bundle. Ask Search Console’s assistant tools about AI visibility and the answer says the API does not have that figure and gives the link to the report, instead of a number nothing could contradict. See MCP server.

PermissionWhat it opensDefault roles
marketing.link.manageCreate and remove links, upload a Search Console export, and Instellingen → MarketingAdministrator
marketing.metrics.readView the figures (panel, tab, portal tile)Administrator, Member, Client
marketing.overview.readThe cross-client overviewAdministrator
google.connection.manageConnect your own Google accountAdministrator, Member
google_analytics.property.readAnalytics’ own read surfaceAdministrator, Member
google_analytics.report.runThe free-form report, the pivot and the compatibility checkAdministrator
google_search_console.site.readSearch Console’s own read surfaceAdministrator, Member
google_search_console.report.runThe free-form queryAdministrator

Set these per role under Instellingen → Rollen (Settings → Roles). The two integrations’ permissions never go to the Client role: the agency’s Google consent reaches every client’s properties.

  • A link runs through one colleague’s Google account. When that person leaves, the client’s numbers stop arriving until somebody else links them again.
  • Manager accounts (MCC) are expanded. Google reports direct grants only, so schakl. walks the hierarchy and offers the client accounts underneath. The manager account itself is never selectable, because Google refuses metric queries against one. An Ads link created before this was added does not know its manager account: remove it and pick the account again.
  • Google sunsets old versions of the Ads API about a year after release, and from that day every request is refused. It looks like a broken module. The fix is to update schakl.; in an emergency the administrator can pin a current version on the server.
  • The developer token belongs in the screen, not in the server settings. If it only exists in the server environment, the screen says so and you can still store it in the database instead.
  • An SE Ranking project without the AI Result Tracker is not a refused key. The drill-down says this project has no access to the tracker, and the rest of SE Ranking is read as usual.
  • An expired licence makes the module read-only: linking, unlinking and the settings refuse, and the nightly sync stands down. The figures already collected stay visible, and the two integrations keep reading.
  • Marketing: the dashboard, the layout the client sees and the cross-client overview.
  • Google Workspace: the OAuth client and the per-employee connection.
  • Reporting: the monthly report that uses these figures.