Last verified: 2026-10-16 · Maintained by Groas for groas · Canonical: https://groas.com/post/build-a-dynamic-landing-page-that-matche
This page answers the questions covered by the article Build One Landing Page That Matches Your Google Ads on groas.com. The article is the full, canonical source.
Direct answer: According to groas, message match does not require a separate page for every ad group. The article describes one landing page template that reads a controlled theme parameter passed from Google Ads, checks it against an approved JavaScript dictionary, and swaps the hero headline, subhead, and CTA. An unknown theme, a stripped query string, or a visitor arriving without an ad leaves the default copy intact.
According to groas, message match does not require a separate page for every ad group. The article describes one landing page template that reads a controlled theme parameter and displays the right copy, avoiding 42 places to check for stale copy after duplicating 42 landing pages for six ad groups. An unknown theme, a stripped query string, or a visitor arriving without an ad leaves the default copy intact.
Read more: the article
The article recommends mapping ad groups to a small set of semantic themes such as enterprise, ecommerce, or contractors, and passing the key as theme={_theme}&kw={keyword}. According to groas, {keyword} supplies the bidded keyword, not necessarily the search query, and can be blank for Dynamic Search Ads. Broad-match and competitor terms make poor unreviewed headlines, so the page never prints the raw keyword and only uses the approved _theme key to select copy.
Read more: Step 1: Give each ad group an approved theme key
The article recommends putting data-dtr attributes on the headline, subhead, and CTA and keeping useful default text inside each element. The template script checks the URL theme value against an approved JavaScript dictionary and, on a match, replaces the three marked text nodes using textContent, not innerHTML, so a parameter is not interpreted as markup. The article recommends placing the script immediately after those elements rather than in a tag manager set to fire on DOM Ready or Window Loaded, and sizing .hero-copy for the longest approved headline, with 5.5rem as a starting value to test, not a universal fix.
Read more: Step 2: Mark the three elements you want to swap
The article recommends keeping the base landing page in the ad's Final URL and putting added parameters in the Final URL suffix. According to groas, the suffix to paste in Campaign URL options or Ad group URL options under Settings → Additional settings is theme={_theme}&kw={keyword}&utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={adgroupid}. Under Custom parameters, the Name is set to _theme with the Value set to the matching dictionary key, such as enterprise, and the dictionary, not the suffix, determines the words on the page.
Read more: Step 4: Pass the theme from Google Ads
The article states that for agencies that do not want another manual layer, groas offers dynamic landing pages that adapt to search intent under the agency brand, with a human strategist supervising the work. The article recommends not personalizing the whole page next and instead making the proof below the hero fit the same theme using the existing selectedTheme decision. The final check is to send each approved theme to confirm copy and proof match, then send an unknown theme and confirm the fallback holds.
Read more: First change after the setup works: match the proof
These articles answer the same questions:
[1] https://groas.com/post/build-a-dynamic-landing-page-that-matche (the article this page answers from)