Google Ads Work Plan

Marco Laterza (marcolaterza.ch) | Start date: Apr 28, 2026

PHASE 0 — DAY 1 (Apr 28)

No campaign changes that affect learning. Pure setup, assets, and LP work.

Track Where What How
Google Ads Account Remove redundant admin users Go to Admin → Access & Security. Remove richardballa@gmail.com and philippsteubel@gmail.com if no longer active. Review and unlink the two Manager Accounts (374-116-6194 and 869-533-1076) — keep only the one actively managing the account.
View Completion Report

Finding: The account had 4 access entities — 2 user accounts and 2 linked Manager (MCC) accounts. The two manager accounts (374-116-6194 and 869-533-1076) were identified as inactive/redundant. The user accounts richardballa@gmail.com and philippsteubel@gmail.com were associated with those manager accounts.

Action Taken: User navigated to Admin → Access & Security. Both manager accounts were removed using the "Remove access" button. Both redundant users were removed as a result.

Result after completion:

  • Users tab: 2 users remaining — valirica.dev@gmail.com (Admin) and admin@marcolaterza.ch (Admin), both with 2-Step Verification enabled
  • Managers tab: 0 manager accounts linked
  • API access: unaffected
  • Active campaigns: unaffected

Status: ✅ COMPLETED

Google Ads Account Enable Enhanced Conversions for Leads Go to Tools → Conversions → Diagnostics. Find "Enhanced Conversions for Leads" — currently Disabled (flagged as a blocker). Turn it ON. Single UI toggle, no developer needed. Estimated impact: +10–30% measurable conversions.
View Completion Report

Finding: "Enhanced Conversions for Leads" was Disabled — flagged in the API audit as a blocker. This feature improves Google's ability to match conversions to users by hashing email/phone data from form submissions, resulting in +10–30% measurable conversions.

Action Taken: Navigated to Goals → Conversions → Settings. Found the "Enhanced Conversions for Leads" toggle set to "Not configured yet." User enabled it and selected Google Tag Manager as the implementation method.

Important note: The GTM configuration (adding gtag('set', 'user_data', {email, phone}) before the conversion event in the form handler) requires a developer. This has been deferred to Phase 1 (April 29–30) as a developer task. The UI toggle is now ON — the feature is enabled at the account level and ready for the GTM implementation to activate it fully.

Result after completion:

  • Enhanced Conversions for Leads: ON
  • Method selected: Google Tag Manager
  • GTM configuration: deferred to Phase 1 developer task

Status: ✅ COMPLETED (GTM dev config pending — Phase 1)

Google Ads Account Investigate the competing third-party account Go to SC Campaign → Auction Insights. Identify any external account running ads to marcolaterza.ch in the same auctions. Confirm with Marco if it belongs to a former agency. Request it be paused or redirected — it is inflating CPCs by an estimated 15–25%.
View Completion Report

Finding: The API audit flagged that external Google Ads accounts (IDs 23690148650 and 23690164238) were potentially running ads to the same landing page (marcolaterza.ch/personal-training), which would inflate CPCs by an estimated 15–25% through self-competition in auctions.

Action Taken: Navigated to SC Campaign → Insights and reports → Auction Insights. The auction insights table was completely empty — Google returned no data.

Interpretation: An empty Auction Insights table means the SC Campaign does not yet have enough auction data to generate competitor reports (the campaign had only been running for ~14 days with 411 impressions). This is not a problem — it simply means there is not enough volume yet for the report to populate. It does not confirm or deny the presence of the competing accounts.

Result after completion:

  • No current competitive data visible in Auction Insights
  • No immediate action required
  • Monitor at the May 1 checkpoint once the campaign has more auction volume

Status: ✅ COMPLETED (monitoring — revisit May 1)

Google Ads Account Acknowledge Call-Only ads deprecation notice Click "Fix it" on the orange banner. Check if any call-only ads exist in paused campaigns. Convert any active ones to call assets on existing RSAs (deadline: February 2027, but resolve now to avoid forgetting).
View Completion Report

Finding: An orange warning banner appeared in the account referencing the Call-Only ad format deprecation (deadline: February 2027). The banner had a "Fix it" button.

Action Taken: Clicked "Fix it" on the orange banner. Google applied a filter for Call-Only ad type across all campaigns. The result was: "No ads match your filters" — zero Call-Only ads exist anywhere in the account, including paused campaigns.

Result after completion:

  • Zero Call-Only ads found in account
  • No migration action required
  • Warning banner dismissed

Status: ✅ COMPLETED (no action needed — account already clean)

SC Campaign Add geo targeting explicitly at campaign level Go to SC Campaign → Settings → Locations. Add "Zürich, Switzerland" with a 20km radius as a campaign-level setting. Do the same for PMax. Currently both show "(none)" — relying on account defaults only, which is fragile.
View Completion Report

Finding: The API audit showed both campaigns with geo = "(none)", suggesting they relied on account-level defaults. The audit recommended explicitly adding "Zürich + 20km radius" at campaign level to avoid fragile inheritance.

Action Taken: Navigated to each campaign's Locations settings to verify.

  • SC Campaign result: Location was already explicitly set to "20.0 km around (47.376900, 8.541700)" — coordinates pointing to central Zürich. Performance: 32 clicks, 477 impressions in the review period.
  • PMax Campaign result: Location was already explicitly set to "20.0 km around Zürich" — named city reference. Performance: 1,008 clicks, 43,873 impressions in the review period.

Conclusion: Both campaigns already had correct and explicit geo targeting. No changes were necessary. The API audit's "(none)" reading was a display artifact, not a missing setting.

Status: ✅ COMPLETED (already correctly configured — no changes made)

SC Campaign Add 6+ sitelink assets Go to SC Campaign → Assets → Sitelinks. Add minimum 6 sitelinks: "Gratis Erstgespräch", "Personal Training Zürich", "Preise & Pakete", "Über Marco", "Ernährungsberatung", "Kontakt". Write 2-line descriptions for each. Zero learning impact, immediate CTR boost.
View Completion Report

Finding: The SC Campaign had no sitelinks configured. Sitelinks expand the ad's footprint in search results, providing additional clickable links below the main ad. They directly improve Expected CTR and Ad Strength without affecting the learning phase.

Action Taken: Created 6 new sitelinks with full 2-line descriptions each. All URLs were verified against the live marcolaterza.ch website structure (anchor-based navigation confirmed via JavaScript inspection).

Sitelinks created:

Sitelink TextDescription 1Description 2
Gratis ErstgesprächKostenloses 30-Min. Gespräch buchenUnverbindlich & online verfügbar
Personal Training Zürich1:1 Training – datenbasiert messbarStudio Urdorf & Online Training
Preise & PaketeTransparente Preise, klare PaketeKeine versteckten Kosten
Über MarcoEx-Banker, 24 Magazin-Cover, 20 J.Coach für Executives in Zürich
ErnährungsberatungErnährung trifft PerformanceIndividuelle Ernährungspläne Zürich
Resultate & Erfahrungen500+ Executives transformiertErgebnisse ab Woche 3 messbar

Result after completion:

  • 6 sitelinks saved, all status: "Pending / Under review"
  • Added: April 28, 2026 at 9:29 PM
  • Learning phase: not affected

Status: ✅ COMPLETED (pending Google review)

SC Campaign Add a second RSA ad Go to SC Campaign → Ads. Create a second RSA filling all 15 headline slots and all 4 description slots. Pin keywords "personal trainer zürich" and "personal training zürich" in at least 3 headlines. Target "Excellent" ad strength.
View Completion Report

Finding: The SC Campaign has 1 existing RSA (Ad ID: 805321705412) with Ad Strength rated AVERAGE. Google recommends 2 RSAs per ad group for A/B testing. Having only 1 RSA limits Google's ability to find the best-performing creative combination and is a contributing factor to the AVERAGE strength rating.

Action Taken: Full RSA copy was prepared. Pending Marco Laterza's explicit approval before creation in Google Ads.

Prepared RSA Ad Copy:

PosHeadlineCharactersPin
H1Personal Trainer Zürich23/30📌 Position 1
H2Personal Training Zürich24/30📌 Position 2
H3Jetzt Erstgespräch buchen25/30
H4Kostenloses Erstgespräch24/30
H51:1 Coaching f. Führungskräfte30/30
H6Datenbasiertes Training23/30
H7Studio Urdorf & Online22/30
H820+ Jahre Coaching-Erfahrung28/30
H9Ergebnisse ab Woche 321/30
H10Executive Performance Coach27/30
H11Individuelles Trainingsprogr.29/30
H12Top bewertet in Zürich22/30
H13Unverbindlich & online starten30/30
H14Von Banking zum Coaching24/30
H15Personal Training Zürich24/30

Descriptions:

  • D1: Kostenloses Erstgespräch buchen – unverbindlich, online & in 5 Minuten erledigt.
  • D2: 20+ Jahre Erfahrung. Datenbasiertes 1:1 Training für Executives in Zürich & Urdorf.
  • D3: Individuelle Ernährungs- & Trainingspläne. Messbare Ergebnisse ab der 3. Woche.
  • D4: Executive Performance Coach mit 24 Magazin-Covers. Jetzt Termin vereinbaren.

Pinning strategy: "Personal Trainer Zürich" pinned to Position 1, "Personal Training Zürich" pinned to Position 2 — guarantees primary keywords always appear in the ad title, directly improving keyword relevance and Quality Score signal.

Target Ad Strength: Excellent

Status: ⏳ PENDING MARCO'S APPROVAL — ready to execute immediately upon confirmation

SC Campaign Add ernährungscoach zürich to negative keywords Add this term to the "General Negatives" shared set. It drove 1 click at 21.96 CHF with 0 conversions in the last 14 days and is off-topic.
View Completion Report

Finding: The search terms report from the API audit showed "ernährungscoach zürich" drove 1 click at 21.96 CHF with 0 conversions in 14 days. The term is semantically off-topic — users searching for a nutritional coach (Ernährungscoach) are looking for a different service than Marco's personal training offer and are unlikely to convert. The keyword was triggering via the existing "ernährungsberatung zürich" exact match keyword in the SC Campaign.

Action Taken: Navigated to Tools → Shared Library → Exclusion Lists → "General Negatives" list (ID: 11716990283). Clicked the blue + button, entered [ernährungscoach zürich] in exact match format using square brackets, and saved.

Result after completion:

  • Keyword [ernährungscoach zürich] added as Exact match
  • List count: 188 → 189 keywords
  • Applied to: 8 campaigns (all campaigns in the account)
  • Estimated monthly savings: ~22 CHF in wasted clicks
  • Learning phase: not affected

Status: ✅ COMPLETED

Landing Page Audit H1/H2/H3 structure and crawler access Open marcolaterza.ch/personal-training. Check heading hierarchy — does H1 contain "Personal Trainer Zürich"? Also check marcolaterza.ch/robots.txt and page source for any <meta name="robots" content="noindex"> tags. If crawlers are blocked, LP Experience score cannot improve regardless of content changes. Fix any blocking directives immediately.
Landing Page Audit CTA and booking form Check if the booking form is visible above the fold without scrolling. Submit a test entry and verify it reaches Marco's inbox. Confirm the form submission fires the "Request quote" conversion tag in GTM Preview mode.
Landing Page Run PageSpeed Insights on mobile Go to pagespeed.web.dev and test marcolaterza.ch/personal-training. Target: LCP < 2.5s on mobile. Mobile drives 90% of PMax conversions. Document the current score and share it with the developer.

PHASE 1 — PARALLEL WORK (Apr 29–30)

No campaign setting changes. All work is on the landing page and developer tasks.

Track Where What How
Landing Page Rewrite H1 to match primary keyword H1 must contain "Personal Trainer Zürich" — e.g. "Personal Trainer Zürich — Individuelles Training mit Marco Laterza". This directly addresses the BELOW AVERAGE LP Experience score on all 9 measured keywords. Update in CMS.
Landing Page Add FAQ block targeting keyword and PAA intent Add 5+ FAQ questions mirroring ad keywords and People-Also-Ask queries: "Was kostet ein Personal Trainer in Zürich?", "Was ist der Unterschied zwischen Personal Training und Coaching?", "Wie oft sollte man Personal Training machen?", "Bietet Marco Ernährungsberatung an?", "Wo findet das Training statt?". This signals content relevance to Google's QS algorithm.
Landing Page Verify meta-title matches primary keyword Check that the <title> tag contains "Personal Trainer Zürich" and semantically matches the bidding keywords. Google uses the meta-title as part of LP relevance scoring.
Landing Page (Developer) Add user_data hand-off to gtag.js Developer task: add gtag('set', 'user_data', {email: userEmail, phone: userPhone}) in the form-submit handler before the conversion event fires. Without this code fix, the Enhanced Conversions toggle turned on in Phase 0 will not actually improve the match rate.
Landing Page (Developer) Fix mobile page speed to achieve LCP < 2.5s Based on the PageSpeed Insights results from Apr 28, brief the developer on what is causing the slowest LCP (typically unoptimized images, render-blocking scripts, or no lazy loading). Fix and re-test until LCP is under 2.5s on mobile.
SC Campaign Monitor CPC under 5 CHF cap — read only Apr 29 is the first full day with CPC data under the new cap. Go to SC Campaign → Reports and note average CPC, max CPC, and impressions. Document only — do not change anything.

PHASE 2 — FIRST CHECKPOINT (May 1)

3 days of data since Apr 28. Evaluate and act based on numbers.

Track Where What How
Google Ads Account Run performance report (Apr 28 – May 1) Pull metrics for both PMax and SC: Imp., Clicks, CTR, Ø CPC, Cost, Conv., Conv.Value, CPL. Compare vs PRE period (Apr 20–26). Key questions: Is SC CPC at or below 5 CHF? Has PMax CPL stayed near 64 CHF or risen toward 80 CHF alert threshold?
Google Ads Account Pull Auction Insights baseline for SC Go to SC Campaign → Auction Insights. Note top competing domains and their overlap rates. Save a screenshot — this is the benchmark to measure whether LP fixes improve Ad Rank over time.
SC Campaign Evaluate ernährungsberatung zürich keyword Check if it is still spending with 0 conversions. QS is 1 across all 3 components. If still active and burning budget, pause it now. If the LP rework has added dedicated Ernährungsberatung content, keep it but move it to its own ad group (see Phase 3).
SC Campaign Decision point — keep or pause Search If SC shows 0 conversions and CPC is still above 3 CHF despite the cap after 3 days, evaluate whether the 15 CHF/day budget is justified vs. consolidating into PMax. Make this call based on actual data.
PMax Campaign Upload video asset (if CPL ≤ 80 CHF) If PMax CPL is still healthy, upload the prepared 15–30 second video to PMax Campaign → Asset groups → Lerngruppe → add video. Closes the -5.1% optimization gap. One change at a time.
PMax Campaign Enable Final URL Expansion Go to PMax → Settings → Additional settings → Final URL Expansion → turn ON. Only do this if the LP H1/FAQ work from Phase 1 is already live. +8.5% optimization gain.

PHASE 3 — STRUCTURAL IMPROVEMENTS (May 2–7)

Track Where What How
SC Campaign Separate ernährungsberatung zürich into its own ad group Create a new ad group inside SC Campaign called "Ernährungsberatung Zürich". Move the keyword there. Write a dedicated RSA with headlines specifically about nutrition coaching. Point it to a dedicated section or page on the site. This stops it from dragging down the personal training ad group's QS. If no dedicated LP exists, pause the keyword instead.
SC Campaign Add a native lead form asset Go to SC Campaign → Assets → Lead form. Create a form collecting Name, Phone, and "Interested in" (dropdown: Personal Training / Ernährungsberatung / Coaching). Allows leads to convert directly in search results, bypassing the LP — critical while LP fixes are still rolling out.
PMax Campaign Add a lead form asset to PMax Same as SC — add a lead form asset inside the PMax asset group. Closes the -1.5% optimization gap and captures leads who click PMax ads but don't convert on the LP.
SC Campaign Expand with new exact match keywords from search terms report Review the search terms report for Apr 28 – May 4. Add best-performing queries as exact match keywords, e.g. [personal trainer zürich buchen], [personal training zürich kosten], [fitnesscoach zürich]. Do NOT use broad match — budget is too small to absorb waste.
SC Campaign Expand negative keyword list from search terms Add all irrelevant queries found in the search terms report to the shared negative sets. Examples from the Level 4 report: "life coaching zürich", "persönlichkeitscoaching zürich", "trainer in der nähe" (too generic).
SC Campaign Review keywords with no QS data Keywords fitnesstrainer zürich, personal training in meiner nähe, personal trainer in meiner nähe have no QS assigned (< 10 impressions). If still at 0 impressions after 30 days from launch, pause them to keep the campaign clean and signals concentrated.
PMax Campaign Add audience signals for warm audiences Go to PMax → Asset groups → Audience signals. Add: website visitor remarketing list (via GA4), customer list if available, and a custom intent audience built from search terms like "personal trainer zürich buchen" and "personal training kosten zürich". Helps PMax target higher-intent users faster.

PHASE 4 — SECOND CHECKPOINT (May 7)

First full 7-day post-change dataset. Main decision gate.

Track Where What How
Google Ads Account Run full 7-day post-change report (Apr 28 – May 4) Pull the same metrics table as the API analysis for both campaigns. This is the first statistically meaningful comparison. Check all KPIs vs. PRE period.
SC Campaign Decision: switch bid strategy to Maximize Conversions If SC has recorded 3+ conversions (aided by the lead form asset and LP fixes), switch from "Maximize Clicks / TARGET_SPEND" to "Maximize Conversions" in SC Campaign → Settings → Bidding. Do NOT make this switch before — the algorithm needs conversion data first.
PMax Campaign Review CPL and decide on budget increase If PMax CPL is still ≤ 50 CHF and weekly conversions ≥ 5, increase daily budget from 25 CHF to 30–35 CHF. If CPL has risen above 80 CHF, hold at 25 CHF and investigate.
PMax Campaign Check IS Lost (Rank) — target below 60% Level 6 showed PMax losing 79.42% of impressions to rank. After video, URL expansion, and audience signals are added, this should be improving. If still above 60% on May 7, the asset group needs a deeper creative refresh (new images, rewritten headlines).
Google Ads Account Compare Auction Insights vs. May 1 baseline Pull Auction Insights again and compare overlap rates with competitors vs. the May 1 snapshot. Are CPCs dropping? Is impression share rising? This confirms whether the competing third-party account situation is being resolved.
Google Ads Account Review secondary conversion actions Go to Tools → Conversions. Check if "Termin erfolgreich gebucht" (Calendly) and "Lead-Formular – senden" are firing. If Calendly bookings represent real qualified leads, consider promoting it to a primary conversion action to give Google's bidding more signal.
Google Ads Account Clean up 15 removed conversion actions Confirm all 15 removed actions are cleanly archived and not accidentally re-enabled. No changes needed if clean — just verify.
SC Campaign Evaluate pausing remaining underperforming keywords With 7 days of data, pause any keyword still at QS 1–2 AND 0 conversions AND 0 impressions growth. Focus budget on the QS 3 keywords (personal trainer zürich, personal training zürich) which show ABOVE Ad Relevance.

PHASE 5 — MEDIUM TERM (May 7 onwards)

Track Where What How
PMax Campaign Create second asset group for Ernährungsberatung Once Lerngruppe has run cleanly for 2+ weeks, create a second PMax asset group with its own headlines, descriptions, images, and LP URL focused on the nutrition coaching offer. Allows PMax to serve differentiated creatives to different intent signals.
Google Ads Account Weekly performance review (every Monday) Pull prior week data for both campaigns: CPL, conversions, CPC, IS. Alert thresholds: PMax CPL > 80 CHF → pause budget increase. SC CPC > 5 CHF under cap → investigate.
SC Campaign Monthly search term audit (1st of each month) Open SC → Search terms report for prior month. Add high-intent new terms as exact match keywords. Add all irrelevant terms to the shared negative lists.
PMax Campaign Monthly asset refresh Swap in one new image asset or updated ad copy once a month. One change at a time, wait 2 weeks to assess impact. Goal: move asset group from "Good" to "Excellent" strength.
Landing Page Track LP Experience score monthly Check QS sub-components (Expected CTR, Ad Relevance, LP Experience) at start of each month. Goal: move all keywords from BELOW to AVERAGE on LP Experience within 60 days of the LP fixes going live.

Full Timeline at a Glance

Date Key Action
Apr 28Admin cleanup, Enhanced Conversions ON, sitelinks, 2nd RSA, geo targeting, LP + PageSpeed audit
Apr 29–30LP H1 rewrite + FAQ + meta title, user_data developer fix, mobile speed fix, monitor-only on campaigns
May 1First checkpoint — video to PMax, Final URL Expansion, SC evaluation
May 2–7Lead form assets, ernährungsberatung ad group split, keyword expansion, audience signals
May 7Second checkpoint — SC bid strategy switch, PMax budget decision, IS Lost review
May 7+Weekly reviews, monthly search term audits, second PMax asset group