Overview
Cross-channel synthesis — August 2026
testing-brief.docx has not been generated yet
(that pipeline stage hasn't run this cycle) — it will appear here as a link once produced.
Summary
This is the first cross-channel synthesis run for this pipeline, combining spyfu-landscape.md, foreplay-landscape.md, and all six landing-page-{brand}.md files — all complete and current for August 2026. The clearest pattern across all six competitors: search and social are rarely used identically. Four of six brands (Planet Fitness, EōS, VASA, Chuze) route search traffic toward "capture existing intent" pages (generic utility, decision/comparison content) while routing social traffic toward "build excitement" pages (new-market presale, named-program storytelling, sweepstakes). LA Fitness is the sole outlier, unifying both channels onto one page — which cuts both ways, since it also means a single stale ad (a Father's Day offer, still live in mid-August) now directly contradicts that shared page's fresh "Back to School" messaging. Crunch's near-total absence of paid social makes true cross-channel comparison moot for that brand this cycle. The most concrete, repeatable finding: named in-club programs and amenities (VASA's STUDIO LFT/RED HIIT, Chuze's Lift Lab/Studio IR) get dedicated storytelling on one channel but funnel into generic, undifferentiated pages on the other — a gap 24 Hour Fitness could avoid by design if it builds a comparable differentiator.
Search vs. social alignment
- Same page, both channels: LA Fitness is the only brand fully unifying search and social onto one destination (
welcome.lafitness.com/offers/). This is the cleanest "one funnel" case in the set, but it means the page's headline offer has to stay in sync with whatever's live on both channels — currently it doesn't (see Landing page consistency). - Same underlying template system, different specific pages: Planet Fitness and EōS both route search and social through the same page templates (open-club offer pages, presale pages) but populate them with different specific locations/markets per channel. EōS's two
[both]-tagged presale URLs (Bradenton, Rancho Santa Margarita) confirm search and social campaigns for the same new-club launch land on the identical page — coordinated execution, not accidental overlap. - Meaningfully different pages by channel role: VASA and Chuze show the clearest channel specialization. Search skews toward decision/comparison content — VASA's dedicated STUDIO product page and "not all gyms are built the same" comparison lander; Chuze's generic locators and single-amenity FAQ pages (consistent with SpyFu's finding that ~92% of Chuze's search keywords are non-branded). Social skews toward geographic expansion and brand narrative — VASA's four presale "new club opening" pages (Centennial, Cedar Rapids, Mount Prospect, Dearborn, Boise) and Chuze's named-amenity pages (Lift Lab, Studio IR) plus its four additional presale markets and sweepstakes page.
- Not comparable this cycle: Crunch's social program is effectively inactive (0 live ads); its one identifiable social landing page reuses the exact same template as its search city-join pages, so there's no real divergence to analyze — this is a symptom of the near-absent Meta program, not a deliberate single-funnel strategy like LA Fitness's.
Landing page consistency
Every brand has at least one confirmed or likely promise/delivery gap between an ad and its landing page this cycle: - Chuze — the hardest gap in the set: a grand-opening ad's VIEW_INSTAGRAM_PROFILE CTA routes to a bare Instagram profile with no address, pricing, or offer content at all — confirmed by fetch, not inferred. - Crunch — a SpyFu ad for Jurupa Valley promises "$1 down + 1 month free + swag," but the actual /locations/jurupa-valley page carries no pricing or visible offer, just a generic "Join the Party" button. - EōS — its distinctive "we saw you looking" retargeting ad promises a Free 7-Day Pass, but the retargeting destination (/join-now) is a generic 4-step paid-membership checkout funnel, not a dedicated free-pass claim. - VASA — named-program social ads (STUDIO LFT, STUDIO RED HIIT) funnel into the generic /join/ page rather than /membership-plans/studio/, the one page that actually develops that story — and that page only appears in VASA's search URL list, not social's. - LA Fitness — a still-live "Father's Day Offer" ad (started mid-June, ~7 weeks stale) points to the same shared offers hub now headlined "BACK TO SCHOOL OFFER" — a direct seasonal contradiction, not just dated creative. - Planet Fitness — one open-club offer page's stated expiration date ("Offer Expires July 31st") had already lapsed as of this pull; separately, sweepstakes ads route through an unverifiable fb.me link this fetch method couldn't resolve. - Worth flagging on our own side: this month's Foreplay landscape already surfaced that 24 Hour Fitness has the same class of problem — a "4th of July Sale!" headline still running on KeepFit+ ads more than five weeks past the holiday. This is not a competitor-only pattern; it's a market-wide execution gap we're also currently making.
Cross-channel white space
- Named differentiator content doesn't travel between channels. VASA and Chuze both built rich, on-brand pages for named in-club programs (STUDIO product page, Lift Lab/Studio IR pages) — but in VASA's case, the social ads that use that exact hook don't link there. This is only visible by comparing both channels' data side by side; neither brand analysis alone would surface it. It's also a gap 24 Hour Fitness doesn't have to inherit: neither the SpyFu nor Foreplay landscape found a named in-club program in our own creative at all (a gap noted independently in both landscape reports) — meaning if we build one, we can design the cross-channel linking correctly from day one rather than retrofitting it.
- The presale-page pattern is a proven, repeatable template — when built correctly. EōS, VASA, and Chuze (Fresno) all successfully reuse their open-club template for pre-opening locations, swapping the pricing table for a waitlist/SMS-capture form and an opening-date estimate. Crunch's Jurupa Valley page shows what happens when that swap is done incompletely (form present, but the actual named offer disappears). 24 Hour Fitness's current "NOW OPEN!" campaign is a renovation/reopening play for existing clubs, not a new-market presale — if there are genuine new-market openings in the pipeline, this is a template pattern to adopt (and a specific failure mode to avoid).
- Retargeting-specific landing pages are essentially unbuilt market-wide. EōS is the only brand running distinctly-voiced retargeting ad copy, and even its own retargeting destination fails to deliver a matching experience. No competitor in this set has a confirmed, purpose-built retargeting lander. If 24 Hour Fitness were to run retargeting creative, there's no competitor benchmark to beat here — first-to-execute-well wins outright.
- A direct-comparison landing page is unclaimed territory. VASA has one ambiguous
/campaign-competitor/page that doesn't clearly name a target. No other brand in this set runs a dedicated competitor-comparison lander. 24 Hour Fitness is simultaneously the only brand in the SpyFu landscape running a named-competitor ad ("Better Than Planet Fitness?") — pairing that ad with a purpose-built comparison page (rather than routing to the generic free-pass offer, which is what this cycle's data suggests but can't confirm — see Open questions) is unclaimed white space on both sides of the ad-to-page relationship.
Top opportunities (ranked)
- Confirm and, if needed, build a dedicated landing page for the "Better Than Planet Fitness?" ad. This is 24 Hour Fitness's own creative — the only named-competitor comparison ad found anywhere in this month's six-brand landscape — and no competitor runs an equivalent purpose-built comparison page to benchmark against. If it currently routes to the generic 5-day-pass offer, building a dedicated page (reusing VASA's comparison-table structure as a reference point, but with a named, specific target) would fully capitalize on a genuine first-mover position.
- Audit and fix stale seasonal creative immediately — starting with our own "4th of July Sale!" KeepFit+ ads. This is the lowest-effort, highest-confidence action on this list: it's flagged in our own Foreplay data, it has a direct competitor parallel (LA Fitness's Father's Day ad now contradicting its own "Back to School" landing page), and it requires no new page or campaign — just refreshing or pausing existing creative.
- If new-market club openings are in the pipeline, build a presale landing template now, before launch creative goes live. Reuse the open-club page structure, swap the pricing module for a waitlist/SMS-capture form and an opening-date estimate — the pattern EōS, VASA, and Chuze (Fresno) all execute successfully. Explicitly avoid Crunch's Jurupa Valley failure mode: don't ship a presale page with the form but without the actual named offer that the driving ad promises.
- If a named in-club program or amenity differentiator is developed, build its landing page and its cross-channel linking together, not sequentially. VASA's and Chuze's gaps both stem from the page and the social ad campaign being built as separate workstreams. Since 24 Hour Fitness currently has no named-program creative in either channel (per this month's SpyFu and Foreplay landscapes), this is a chance to design the ad-to-page match correctly from the start rather than retrofit it later.
- If retargeting creative is ever developed, pair it with a dedicated free-pass/no-commitment landing page from day one. EōS is the only brand in the market running distinctly-voiced retargeting creative, and even its own retargeting destination fails to deliver the specific promise ("Free 7-Day Pass") the ad makes. There is currently no competitor executing this well — a genuine open lane, not just an incremental improvement.
Open questions
- Does 24 Hour Fitness's own "Better Than Planet Fitness?" ad have a dedicated landing page? This month's landing-page analyses covered only the six competitors, not our own brand (per the pipeline's scope) — we don't have direct visibility into our own landing experience for this ad. Recommend a targeted follow-up check.
- What does Crunch's client-rendered
/joinand/join/[city]funnel actually show a visitor? These pages returned only navigation-shell content to a static fetch; the $9.99/mo price is corroborated by meta tags, but the $1-to-join mechanic and any bonus offers (bag/bottle/shirt/PT session, per one social ad) couldn't be verified. Jurupa Valley's confirmed gap raises the question of whether this is a one-off or systemic across Crunch's city pages — a live click-through would resolve this, a static fetch can't. - Is VASA's STUDIO-tier pricing inconsistency ($39.99 vs. $44.99 across different pages) a live A/B test, location-based pricing, or a stale cached price? Can't be determined from this method; worth a direct spot-check if VASA's studio pricing becomes competitively relevant.
- What's actually on the other end of Planet Fitness's
fb.mesweepstakes links? This fetch method couldn't resolve Facebook's link-shortener/redirect layer, so source alignment for that specific ad type (an increasingly notable tactic — sweepstakes tied to grand openings) remains unverified rather than confirmed either way. - Does 24 Hour Fitness have genuine new-market (not reopening) locations in its near-term pipeline? This determines whether opportunity #3 above is immediately actionable or moot. The current "NOW OPEN!" campaign is confirmed to be a renovation/reopening play for 8 existing clubs, not new-market entry — but that doesn't rule out new-market openings simply not being represented in this month's paid social sample.
Planet Fitness
Paid search, paid social & landing page analysis — August 2026
Paid Search spyfu-planetfitness.md
Summary
Planet Fitness's paid search remains brand-defense-heavy: low, named price points ($15/mo, $24.99 Black Card, $1-down) paired with hundreds of city-level "planet fitness [city]" keyword variants, with nearly every current ad landing on a hyper-local club offer page rather than the homepage. The current-activity window has rolled forward again (now anchored on August 2026), with a fresh batch of club landing pages in rotation (Hillsborough NJ, Berlin NJ, Farmington NM) alongside the two enduring metro promo pages (Grand Rapids, Minneapolis–St. Paul). Core messaging is unchanged from recent months — no new price point or mechanic observed this pull.
Keyword portfolio
- 50 ad records pulled (SpyFu returns ads, each carrying a matched-keyword list, not a flat keyword list).
- Full unique keyword count isn't computable from this export (large per-ad keyword lists, further truncated by response-size limits on longer records) — the same bounded-estimate caveat as the prior pull applies: roughly 1,400–1,800 distinct keyword strings after dedup.
- Heavily branded: the large majority of sampled keywords are "planet fitness [city]" long-tail variants (e.g. "planet fitness tulsa," "planet fitness las vegas," "planet fitness staten island," "planet fitness bayonne nj"), spanning dozens of states.
- Non-branded portion is generic gym-intent: "gyms near me," "cheap gyms near me," "24 hour gym near me," "gym cheap," "health club," "gyms with tanning beds," "gym locator," plus many city-qualified generic terms ("gyms in atlanta," "gyms in tempe," "gyms in franklin tn").
- No click/spend/CPC data present in this export — branded vs. non-branded spend split isn't available from this pull, only keyword-count share.
- Data spans searchDateId 20130701 to 20260801. 10 ad records fall in the current window (≥20260601): 4 dated 20260801, 4 dated 20260701, 2 dated 20260601.
Ad copy themes
Value/price (dominant theme, unchanged): - "Only $15 per Month | PF Black Card®" (Hillsborough, NJ) — "No Matter What You're Looking For In A Gym, We've Got A Membership Option Just For You... All The Perks For $24.99." - "$15 Classic Card - $24.99 Black Card" — "Judgement-Free, Affordable Memberships, Top-Notch Equipment, And A Welcoming Community." - "Memberships From $15/Mo - #1 Affordable Gym Membership" — "Judgment-Free, Affordable Memberships, Top-Notch Equipment, And A Welcoming Community."
Promotional/urgency: - "Deal End Soon - Memberships From $15/Mo" (Farmington, NM) — "Judgment-Free, Affordable Memberships, Top-Notch Equipment, And A Welcoming Community." - "Deal End Soon" (generic) — "Low-Cost Memberships and State-of-the-Art Equipment... Welcome To Planet Fitness - The Judgment Free Zone®."
Community/location: - "Planet Fitness Near Me" — "Memberships From $15/Mo — Judgment-Free, Affordable Memberships, Top-Notch Equipment... Join The PF Movement Today. The Best Gym On The Planet. Nationwide Access." - "Planet Fitness - Most Open 24 Hours" (Grand Rapids promo) — "We're all strong at Planet Fitness. Join today for $15 a month and save. Get fit your way." - "Most Open 24 Hours - Bring a Friend Anytime" (Minneapolis–St. Paul promo) — "We're all strong at Planet Fitness. Join today for $15 a month and save. [Access to 2,700+ Locations]."
Brand/generic: - "Planet Fitness Gym" — "Planet Fitness Near You — Tons of Equipment, Clean & Spacious Clubs, Expert Guidance & Positive Culture of Respect." - "Planet Fitness Membership" (Berlin, NJ) — "The Affordable And Accessible Gym For All. In The Judgement Free Zone®, You Always Belong."
Recurring motifs across the current window: "Judgment-Free/Judgement Free Zone®," "Affordable Memberships," "$15/Mo" and "$24.99 Black Card," "Find A Gym Near You," club-count callouts ("2,700+ Locations"). No results-focused, testimonial, or amenity-led copy observed this pull — consistent with prior months.
Gaps vs. 24 Hour Fitness
24 Hour Fitness's own current SpyFu pull (24hourfitness.com, same methodology) shows: - Free-trial/guest-pass framing as the lead hook — "Your 5-Day Free Pass Awaits," "Try Us Free For 5 Days," "Get A 3-Day Free Pass" — vs. Planet Fitness's priced-membership-first copy ("$15/Mo," "$24.99 Black Card"). Neither brand leads with the other's core hook. - A direct head-to-head comparison ad — "Better Than Planet Fitness?" (24 Hour Fitness, current window) — "Sauna, Pool & Recovery Zone — Workouts That Fit you at 24 Hour Fitness." This is new/notable: 24 Hour Fitness is now running creative that names Planet Fitness directly, which the prior pull hadn't surfaced. - Amenity-specific keyword/copy targeting (sauna, pool, recovery zone, personal training, group classes) — Planet Fitness's current sample skews entirely toward price and location, no amenity language. - Heavier competitor-conquesting footprint, and it's grown — 24 Hour Fitness's current sample shows dense bidding on "la fitness [x]" (by far the largest competitor-keyword cluster this pull), plus "planet fitness [x]," "eos fitness [x]," "chuze fitness membership," "crunch fitness," "anytime fitness [x]," and "gold's gym." Notably, a Riverside, CA cluster conquests LA Fitness, EōS Fitness, and Planet Fitness simultaneously in the same market ("la fitness free pass riverside," "eos fitness free pass riverside," "planet fitness free pass riverside"). In this Planet Fitness pull, no reciprocal competitor-brand keywords appeared in the current-window sample. - National-holiday and calendar-tied promos ("4th of July Sale," "Our Lowest Price of the Year" for summer) vs. Planet Fitness's promos, which stay tied to metro/club-specific offers rather than national dates.
Planet Fitness has, that 24 Hour Fitness's current sample doesn't show: - Consistent named price points baked directly into ad titles ("$15/Mo," "$24.99 Black Card") — 24 Hour Fitness's current copy doesn't lead with a specific dollar figure in the headline, it leads with trial-length ("5-Day," "3-Day"). - Near-universal club-specific landing pages (/gyms/[city]/offers) for nearly every current ad — 24 Hour Fitness's current landing pages are more centralized (/membership/free-guest-gym-pass, /promo/specials/...), not club-specific. - Metro-level promo pages that persist month to month (Grand Rapids, Minneapolis–St. Paul) — a structured, recurring geo-targeting pattern.
Notable changes since last month
Third SpyFu pull for Planet Fitness (prior pulls: July and August-early 2026): - Current-activity window held at max searchDateId 20260801 (unchanged from the immediately prior pull), but the specific record set rotated: this pull's sample surfaced Hillsborough NJ, Berlin NJ, and Farmington NM landing pages, none of which appeared in the prior pull's five most-recent (Vails Gate, Peekskill, Bessemer, Jacksonville-Northside, Cincinnati-Eastgate, Crestwood) — normal top-50 sample rotation, not a strategy shift. - The $29.99/mo Peekskill, NY price test flagged in the prior pull did not reappear in this pull's sample — can't confirm whether it's still running or was a one-off; worth a targeted check next pull if that market matters. - Grand Rapids and Minneapolis–St. Paul metro promo pages persisted across both pulls — these look like standing, not test, campaigns. - Core messaging (Judgment-Free Zone, $15/mo, $24.99 Black Card, "Find A Gym Near You") is unchanged. - On the 24 Hour Fitness side: the new "Better Than Planet Fitness?" comparison ad is worth flagging back to the team, since it's a direct-conquest move against our own brand's paid search.
Paid Social foreplay-planetfitness.md
Summary
Planet Fitness's active Meta library has scaled sharply within this monthly cycle: 789 ads launched since August 1 alone (vs. 100 total active ads on the prior pull earlier this month), and Foreplay's live-tracking for this brand now reaches back to mid-April 2026 without ads dropping out of "live" status — a sign PF is not pruning old creative the way a typical 30–60 day pull assumes. The core playbook is unchanged (PF Black Card® upsell, grand-opening/new-market pushes, DCO-driven localization), but the mix has diversified: carousel ads appear for the first time (metro-rollup format), image share grew substantially, and a sweepstakes/contest mechanic ("win a Black Card membership") is now running alongside the standard sign-up offers.
Creative inventory
789 ads launched since August 1, 2026 (all currently live), by format: - DCO: 490 (62%) - Image: 177 (22%) - Video: 84 (11%) - Carousel: 38 (5%) — new this pull; every carousel ad routes to a metro/multi-location rollup page (e.g. /promos/raleigh-area-locations), none carry ad copy (blank headline/description), all use SIGN_UP.
Data note on scope: Foreplay's live:true filter for this brand's page returns ads dating back to mid-April 2026 (1,250+ before pagination was capped for this report), well outside the standard 30–60 day window. To keep this pull comparable to prior months, the inventory and messaging analysis below are bounded to ads that started running on or after August 1, 2026 (the current "wave"), confirmed via per-format pagination to exhaustion. The long-tail of older live ads is a notable finding in its own right — see Notable changes below.
Messaging themes
Price/value (PF Black Card® upsell) — the largest cluster: - "Get the PF Black Card® and bring a friend anytime. Join for just $1 down, $24.99/mo." — "Deal Ends 8/13!" — View live ad ↗ - "Get the PF Black Card® and bring a friend anytime. Join for just $1 down, $24.99/mo + One month FREE." — View live ad ↗ — a new offer variant (stacked free month) not seen in the prior pull - "Get the PF Black Card® and bring a friend anytime. Join for just $1 down, $24.99/mo + $49 annual fee." — View live ad ↗ — annual fee now disclosed in-creative on some variants
Grand-opening/new-market — still the second-largest cluster: - "Planet Fitness is COMING SOON to Jensen Beach, FL! Sign up now to receive exclusive updates and offers!" — "Coming to Jensen Beach, FL!" — View live ad ↗ - "A NEW Planet Fitness is opening soon in Randallstown! Get access to tons of equipment, free fitness training, and MORE for $1 down, $19.99 a month!" — "COMING SOON TO RANDALLSTOWN!" — View live ad ↗
Sweepstakes/contest — new tactic this pull, tied to grand openings: - "🎉 A new Planet Fitness is coming to Miami (Edgewater)! 💪 Sign up early for your chance to WIN a Black Card® membership 🏆 and get on our VIP list..." — "Sign up for your chance to win!" — CTA LEARN_MORE (not SIGN_UP), links to fb.me — View live ad ↗ - "Sign up for updates on the new Planet Fitness and enter for a chance to win a 1-Year Black Card Membership!" — "Coming Soon to New Castle, IN" — View live ad ↗
Amenity/spa (recovery positioning): - "Get more than a workout. Recover in the Black Card Spa®, bring a friend anytime & access 2,800+ locations." — "JOIN PLANET FITNESS" — View live ad ↗ - "Muscle or confidence—why not both? ...our brand-new, state-of-the-art strength equipment. It's all gains here in the Judgement Free Zone!" — "Join Today!" — View live ad ↗
Community/belonging (#WereAllStrongOnThisPlanet™) — present but smaller than last pull: - "Strength comes in all forms, and they all belong here. 💪 🌎 #WereAllStrongOnThisPlanet™" — "Join Today!" — View live ad ↗ - "One membership, a number of ways to get strong. Get the PF Black Card® for all the perks 💪 🌎 #WereAllStrongOnThisPlanet™" — "Join Planet Fitness Today" — View live ad ↗
Seasonal urgency: - "Summer's almost over—make time for you. Join with the PF Black Card for $1 down and just $24.99/month through 8/12." — "PF Black Card for $1 Down" — View live ad ↗
UGC-style organic content (no offer, no link) — new pattern: - "machine lat pulldown the RIGHT way💪🔥 #planetfitness" — no headline, no CTA, no link_url — reads as a boosted organic/UGC clip rather than a direct-response ad — View live ad ↗
Localization: - "¡$1 DE CUOTA INICIAL!" — Spanish-language Black Card ad — View live ad ↗
(9 of 9 examples include a link)
What's working (velocity signal)
The August 1 launch remains the largest single cohort observed (250 ads confirmed via exhaustive pagination, all still live 10 days later), with additional daily top-ups on most days since (Aug 8, 9, 10 each added roughly 100+ new ads). Every ad sampled across the current wave is still live — none have been pulled — which is consistent with PF's pattern of not retiring creative quickly. Format mix has shifted meaningfully since the prior pull: DCO's share fell from ~80% to 62%, while image (9%→22%) and the newly-introduced carousel (0%→5%) picked up share. The clearest "what's new and scaling" signal this period is the sweepstakes/contest mechanic layered onto grand-opening ads (win a Black Card membership) — a materially different value proposition from the standard sign-up-now offers that dominate the rest of the library.
Notable changes since last month
Compared to the prior pull earlier this cycle (100 active ads, DCO 80/VIDEO 11/IMAGE 9, no carousel, cohort split 95+5 ads across two days): - Active creative volume roughly 8x larger — 789 ads launched since Aug 1 alone, vs. 100 previously. Whether this reflects a genuine scale-up in spend/testing or a change in how Foreplay is capturing this brand's page isn't verifiable from ad-level data alone, but it's a large enough shift to flag explicitly. - Carousel format introduced (38 ads, 5% share) — exclusively used for metro/multi-location rollup pages, with no ad copy on any carousel unit. - Sweepstakes/contest mechanic appears for the first time — "win a Black Card membership" tied to new-market grand openings, using LEARN_MORE instead of the near-universal SIGN_UP CTA and linking to fb.me rather than planetfitness.com. - New offer variants on the Black Card upsell — a stacked "+ one month FREE" variant and a "$49 annual fee" disclosure variant, both absent from the prior pull. - A UGC-style, no-CTA/no-link ad appears in the mix, distinct from PF's otherwise uniformly direct-response creative. - Foreplay's live-tracking for this brand extends back to mid-April 2026 without pruning — worth watching in future pulls, since it affects how "active ad count" should be scoped and compared month over month.
Landing Pages landing-page-planetfitness.md
URLs reviewed
27 unique URLs were captured across the two sources this period (6 from SpyFu/search, 21 unique from Foreplay/social — note Foreplay's raw list includes several ?utm_source=meta... query-string variants and duplicate /gyms vs /gyms/ and /es/gyms vs /es/gyms/ forms, collapsed here to one entry each). 1 URL overlaps between sources. Planet Fitness's city-specific and metro-promo pages are template-driven — same layout/copy structure, only location name, address, pricing, and (for new-construction clubs) join-availability status change — so rather than fetch all 27, a representative sample of 11 was visited covering every distinct template found: homepage, generic locator (English + Spanish), an open-club offer/checkout page (2 examples, to confirm template consistency), a pre-opening page with online joins enabled via a promo code, a pre-opening page with joins enabled without a promo code, a pre-opening page with joins fully disabled (waitlist only), and a metro-level "locations" promo page (2 examples, one search-sourced, one social-sourced). This sample is representative of the full 27, not exhaustive.
[both] - https://www.planetfitness.com/gyms/ / https://www.planetfitness.com/gyms (generic locator — appears in both SpyFu and Foreplay lists) — fetched
[search] (from SpyFu) - https://www.planetfitness.com/gyms/hillsborough-nj/offers — fetched - https://www.planetfitness.com/gyms/berlin-nj/offers — fetched - https://www.planetfitness.com/gyms/farmington-nm/offers — not fetched (same open-club template confirmed via Hillsborough/Berlin) - https://www.planetfitness.com/promos/grand-rapids-locations — fetched - https://www.planetfitness.com/promos/minneapolis-stpaul-area-locations — not fetched (same metro-promo template confirmed via Grand Rapids/Raleigh)
[social] (from Foreplay) - https://www.planetfitness.com/ (homepage) — fetched - https://www.planetfitness.com/es/gyms / https://www.planetfitness.com/es/gyms/ (Spanish locator) — fetched - https://www.planetfitness.com/gyms/randallstown-md/offers — fetched - https://www.planetfitness.com/gyms/greenway-east-knoxville-tn?promoCode=EASTTOWN — fetched - https://www.planetfitness.com/gyms/jensen-beach-fl — fetched - https://www.planetfitness.com/gyms/charlotte-northlake-nc — not fetched (template unknown, likely matches Jensen Beach or Randallstown pre-opening pattern) - https://www.planetfitness.com/gyms/dickson-city-pa — not fetched - https://www.planetfitness.com/gyms/st-cloud-south-fl — not fetched - https://www.planetfitness.com/gyms/ellsworth-me — not fetched - https://www.planetfitness.com/gyms/seattle-university-wa/offers — not fetched (same open-club template confirmed elsewhere) - https://www.planetfitness.com/promos/raleigh-area-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — fetched - https://www.planetfitness.com/promos/dallas-ftworth-area-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — not fetched - https://www.planetfitness.com/promos/tulsa-area-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — not fetched - https://www.planetfitness.com/promos/dc-area-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — not fetched - https://www.planetfitness.com/promos/greenville-area-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — not fetched - https://www.planetfitness.com/promos/dayton-area-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — not fetched - https://www.planetfitness.com/promos/norfolk-area-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — not fetched - https://www.planetfitness.com/promos/tyler-longview-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — not fetched - https://www.planetfitness.com/promos/waco-locations?utm_source=meta&utm_medium=paid_social&utm_campaign=pf — not fetched - http://fb.me/ (sweepstakes/contest ads only) — fetch attempted, returned empty content (see Source alignment note below — likely a Facebook link-shortener redirect the fetch tool couldn't resolve past)
Messaging
Homepage (/): headline "We are all strong on this Planet™. Join the club today!" with a "Find a Club" CTA up top. Membership comparison module shows PF Black Card® ($24.99/mo, "Best Value") vs. Classic ($15/mo), both framed around "The Judgement Free Zone®." Currently promoting "HIGH SCHOOL SUMMER PASS® IS HERE" (teens 14-19 work out free through August 31, plus 20% off Gymshark) and a refer-a-friend perk (free month per referral). Persistent header CTA: "Join Now."
Generic locator (/gyms/, /es/gyms): no sales copy — pure utility page, a club list with distance/address and "Club Details" / "Review Plans" links. The Spanish version (/es/gyms) is a complete, direct translation of the same template (title: "Gym cerca de me | Gimnasios cerca de me"), same layout, same CTAs ("Información del club" / "Planes").
Open-club offer/checkout pages (Hillsborough NJ, Berlin NJ, Randallstown MD): headline is the location name plus a 4-step checkout progress bar (Membership → Personal info → Payment info → Checkout). Two tiers shown, both with hard expiration dates: PF Black Card® ($24.99/mo standard, "$1 Down Black Card!" at Berlin; $29.99/mo with "3 Free months Apple Music" at Hillsborough) and Classic ($15/mo). CTA: "Select" per tier, driving straight into checkout. Offer-expiry dates are club-specific and tight (Berlin: Aug 12; Hillsborough: Jul 31 — already lapsed relative to this month's pull, worth flagging as a possible stale-offer issue).
Pre-opening, joins fully disabled (Jensen Beach FL): headline "We're getting ready for you!" — no pricing, no membership selector. Instead a name/email capture form ("sign up... to receive email updates as well as exciting promotions"). CTA is a waitlist signup, not a purchase.
Pre-opening, joins enabled without promo code (Randallstown MD): headline "Pre-Grand Opening Sale going on now!" — full membership selector shown, PF Black Card® at a discounted $19.99/mo ("Join Before We Open To Save $5 A Month!") and Classic at $15/mo, both "Offer Expires August 15th." CTA: "Select" into checkout — functionally identical to an open-club page despite the club not yet being open.
Pre-opening, joins enabled with promo code (Greenway/East Knoxville TN, ?promoCode=EASTTOWN): headline "Pre-Grand Opening Sale going on now!" with the promo code auto-applied and confirmed ("Promo code applied. Check out your deals below!"). Single tier shown: PF Black Card® at $19.99/mo, "Offer Expires August 30th." Full club-info content (equipment lists, amenities, class info) follows even though the club is described as "coming soon." CTA: "Select" into checkout.
Metro "locations" promo pages (Grand Rapids MI, Raleigh NC): headline is the market name ("GRAND RAPIDS AREA LOCATIONS" / "RALEIGH AREA LOCATIONS") plus the tagline "WE'RE ALL STRONG ON THIS PLANET.™ Sweat the way you want to. No judgement, just strength and support." Followed by a list of participating clubs in that metro (6 shown, "Show More Clubs" to expand), each with "Club Details" / "Review Plans" links. No pricing at the metro-page level — pricing appears only after clicking through to an individual club's offer page. Identical structure and copy on both the search-sourced (Grand Rapids) and social-sourced (Raleigh) examples.
Visual trends
Fetches return page structure and text content only, not rendered visual design — no real colors, photography, or layout feel are observable from this method, so the notes below describe structural/content patterns rather than actual visual design.
By structure, four distinct page types emerge: (1) the homepage, a rich content hub with multiple stacked promotional modules (membership comparison, seasonal promo, awards callout, app cross-sell, referral program, merch store); (2) utility/locator pages (/gyms/, /es/gyms, metro "locations" pages), which are comparatively sparse — a list of clubs with minimal supporting copy, structurally closer to a directory than a promotional page; (3) checkout-style offer pages (open-club and pre-opening-with-joins-enabled), which carry a visible step-tracker ("1 2 3 4"), tiered pricing cards each marked "SPECIAL DEAL," and dense fine-print/FAQ content below the fold — reads as a conversion-optimized funnel page; (4) the pre-opening waitlist page (Jensen Beach), which is the leanest of all — a short headline, a photo gallery of the (presumably not-yet-built or template) interior, and a simple lead-capture form, structurally closer to a coming-soon splash page than a sales page. Image alt-text on the pre-opening pages (interior/exterior renders, "Black Card Spa®," equipment shots) suggests these pages lean on club photography to compensate for the lack of a live offer, but actual visual treatment can't be confirmed from this method.
Focus
- Homepage: multi-purpose — membership comparison, seasonal promo, awards, app download, referral program, and merch all compete for attention. Reads as a brand hub, not a single-action funnel.
- Generic/Spanish locator pages: single, clean focus — find your nearest club, click "Review Plans." No distractions.
- Open-club offer pages: tightly focused on membership selection → checkout; comparison chart and FAQ accordion exist below the fold but don't compete with the primary 2-tier selector.
- Pre-opening, joins disabled (Jensen Beach): focus collapses to a single, non-transactional action — email capture. This is a genuine drop from what a "coming soon" ad typically implies is imminent action.
- Pre-opening, joins enabled (Randallstown, Greenway): focus is fully restored — a live, checkout-ready selector, functionally as clean as an open-club page, with Greenway's promo-code pre-application removing even more friction than a standard open-club page.
- Metro promo pages: focus is "pick a club," a necessary intermediate step before pricing is shown — one extra click removed from a direct club-offer-page landing, consistent on both the search (Grand Rapids) and social (Raleigh) examples.
Source alignment
Search (SpyFu) landing pages in this sample are consistently either already-open club offer pages with live, checkout-ready pricing (Hillsborough, Berlin) or metro-level promo pages (Grand Rapids) that funnel toward the same. Given SpyFu's ad copy this period is priced-membership-first ("$15/Mo," "$24.99 Black Card," "Deal Ends Soon"), these pages deliver on that promise immediately — strong alignment. One soft gap: Hillsborough's page-level offer expiration read "Offer Expires July 31st," which had already lapsed as of this fetch (early August) — either a stale cached fragment or an un-refreshed expiry date, worth a spot-check next pull.
Social (Foreplay) landing pages show more variance, tracking directly to the three-way split Foreplay's own ad copy shows this period: - Ads promoting an already-open club or a Black Card sign-up (e.g., Randallstown, once its Aug-15 pre-sale offer converts to standard pricing) land on live, checkout-ready pages — full alignment. - Grand-opening ads with a specific dollar figure and urgency ("$1 down and just $24.99/month through 8/12," "$1 down, $19.99 a month") that land on a pre-opening page with joins enabled (Randallstown, Greenway) deliver exactly what the ad promises, sometimes with a pre-applied promo code removing extra effort — strong alignment, arguably better than a standard club page. - Grand-opening ads for markets where the page has joins disabled (Jensen Beach's ad copy: "Sign up now to receive exclusive updates and offers!" — actually matches the page's email-capture framing) are aligned when the ad itself is pitched as an update signup. But other grand-opening ads sampled in foreplay-planetfitness.md (e.g., Randallstown's ad copy: "for $1 down and $19.99 a month!") sound fully transactional even before the club has confirmed online joins are live — a brand-wide pattern where ad copy can outrun what the specific club's page is able to deliver on a given day, since new-store pages appear to transition from waitlist-only to checkout-ready at different points in the pre-opening timeline. - The sweepstakes/contest ads ("win a Black Card membership") use a LEARN_MORE CTA and link to fb.me rather than planetfitness.com — this fetch failed to resolve any content (see URLs reviewed), consistent with fb.me being a Facebook-hosted link-in-bio/redirect page rather than a standard web page; source alignment for this specific ad type could not be verified and should not be assumed either way. - Metro "locations" pages (Raleigh) align well with ads promoting a market broadly rather than a specific address — geography matches, and pricing is one click further in, reasonable for a market-level ad.
Search vs. social comparison
Different pages, but the same template system, with social carrying meaningfully more variety. Search-driven traffic in this sample lands exclusively on already-open, individual club offer pages or a metro promo page — search intent is hyper-specific ("planet fitness [city]"), so Planet Fitness sends it straight to a live, priced offer with no ambiguity. Social-driven traffic spans the full range: the same open-club and metro-promo templates search traffic sees, plus two page states that don't appear in this month's search sample at all — pre-opening pages with live pricing (promo-code and non-promo-code variants) and pre-opening pages with joins fully disabled (waitlist-only). The homepage and Spanish-language locator are also social-only findings this pull.
This split reflects each channel's role: search captures people already looking for a specific, existing location, so PF sends them straight to that location's checkout. Social carries the market-entry and brand-awareness load — grand openings, "coming soon" waitlist building, broad-metro promos, and (per this month's Foreplay data) a new sweepstakes mechanic layered on top — so it tolerates a wider range of landing experiences, from fully transactional to purely lead-capture. The clearest cross-channel risk is the same one flagged in prior pulls: transactional-sounding ad copy paired with a landing page that turns out to be lead-capture-only when a new club hasn't yet enabled online joins. This pull's Jensen Beach example shows PF's ad copy for that specific club is appropriately soft ("receive exclusive updates and offers"), suggesting some copy-to-page coordination exists, but the sweepstakes/contest ads (which route through an unverifiable fb.me link) and the general volume of new-market ads launched since August 1 (789 per this month's Foreplay pull) make it hard to confirm this coordination holds brand-wide without a larger fetch sample.
Crunch Fitness
Paid search, paid social & landing page analysis — August 2026
Paid Search spyfu-crunch.md
Summary
Unlike Crunch's thin Meta/Foreplay footprint this month, its Google paid search program is active and substantial: 16 of 50 pulled ad records fall in the current window (searchDateId ≥ 20260601), built around a $9.99/mo entry price, multi-length free-trial passes (1/3/7-day), and a distinctive "Founding 500" presale mechanic ($1 to join + 1 month free) run against brand-new club openings. Crunch also runs a real competitor-conquesting keyword program — bidding on Planet Fitness, LA Fitness, Anytime Fitness, Gold's Gym, and 24 Hour Fitness branded terms directly — which is a notable, actionable finding for the Gaps section below. Landing pages are heavily localized, split between crunch.com/join/[city], crunch.com/locations/[city], and info.crunch.com/free-trial-* / info.crunch.com/founding500-[city] microsites.
Keyword portfolio
- 50 ad records pulled (SpyFu returns ads with a matched-keyword list per ad, not a flat keyword export); exact unique keyword count isn't computable from this export for the same reason noted in other brands' pulls this cycle — several long per-ad keyword lists were truncated by the Grep length limit and skipped rather than guessed at.
- Branded long-tail is the largest visible cluster: "crunch fitness [city]" and "crunch fitness [attribute]" variants (e.g., "crunch fitness nyc," "crunch fitness chicago," "crunch fitness lake grove," "crunch fitness promo code," "crunch fitness free trial," "crunch fitness 30 day trial," "crunch fitness no enrollment fee") spanning dozens of markets.
- Non-branded/generic gym-intent terms are present but a smaller visible share: "gyms near me," "gym membership deals," "fitness center," "gym with personal trainer," "cheap gym memberships," plus many city-qualified generics ("gyms in kansas city," "gyms in raleigh," "gyms in tucson").
- Competitor-conquesting keywords are a real, distinct cluster — not incidental overlap. Sampled terms include "planet fitness [membership cost/city]" (many cities: Anchorage, Bowie, San Francisco, Bangor, Tempe, Fargo, Indianapolis, San Antonio, Manhattan, Harlem...), "la fitness membership/guest pass/free pass/prices/day pass," "anytime fitness price/dues/membership fees/pricing," "gold's gyms," and — notably — "24 hour fitness" itself, plus "24 hour fitness northridge," "24 hour fitness memberships," "24 hour fitness membership specials," "24 hour fitness pass," "24 hour fitness new york," "24 hour fitness club," "24 hour fitness lafayette la," "24 hour fitness sunnyvale super sport," "24 hour fitness connecticut," "24 hour fitness nj," "24 hour fitness hasbrouck heights nj." This is a materially larger and more geographically distributed 24HF-conquest list than a one-off overlap.
- No click/spend/CPC data present in this export — branded vs. non-branded spend split isn't available, only keyword-mention share from the sample.
- Data spans searchDateId 20160301 to 20260801 (a decade of history on file). 16 of the 50 pulled records fall in the current window (≥20260601): dated 20260601 (4), 20260701 (5), 20260801 (7) by tally of raw searchDateId values; full title/body/url content was recoverable for 13 of those 16 (3 were long enough to be dropped by the Grep length limit — skipped, not guessed at).
Ad copy themes
Free trial / guest pass (dominant, current window): - "Try Us Free, With 7 Day Pass" — "Get a Free Pass Now at Crunch — There's Something For Everyone. Run, Lift, Train, Jump, Ride, Stretch & Hiit It. Claim Your Free 7 Day Pass..." (info.crunch.com/free-trial-7-day) - "Free 3 Day Pass | Wilkes Barre's Best Gym" — "Train your way with state of the art equipment, group classes, with Certified Trainers." (info.crunch.com/free-trial-3) - "Try Crunch Fitness Free" — "3 Days Free at Crunch — Discover Crunch's judgment-free zone with a 3-day pass." (info.crunch.com/free-trial-3-day-fh) - "Crunch Fitness" — "Free gym pass — Try Crunch Fitness of Green Brook free for 1 day." (www.crunch.com/free-trial)
Price/value ($9.99/mo entry point, recurring): - "Open and Staffed 24/7 - Starting at Only $9.99/Mo" — "Train on Olympic lifting platforms, treadmills and free weights up to 125lbs. Join 50+ group classes a week, from HIITZone turf to cycling and yoga." (info.crunch.com/free-trial-3-day-a) - "Starting at Only $9.99/Mo - Try Crunch Free for 3 Days" — same amenity copy, same landing page. - "New Crunch Now Open - Starting at only $9.99/mo - Gyms Near Me" — "Only $1 To Join & One Month Free. New Crunch Now Open in St. Louis." (www.crunch.com/join)
New-club presale / "Founding 500" (distinct, urgency-driven mechanic): - "$1 to Start & 1 Month Free" — "Opening Soon With Epic Deals — Crunch Fitness Is Coming Soon To Coeur d'Alene... Reserve Your Rate Now." (info.crunch.com/founding500-coeurdalene) - "$1 down & 1 Month Free + Swag" — "Founding 500 Members save Big — New Crunch 3.0 is Opening Soon in Jurupa Valley." (www.crunch.com/locations/jurupa-valley) - "$1 to Start & 1 Month Free | Opening Soon With Epic Deals" — "Crunch Is Coming Soon To 92nd & Wadsworth." (info.crunch.com/founding500-92wadsworth) This is a recognizable, repeatable playbook tied specifically to new-club launches, distinct from evergreen membership offers — worth tracking as a leading indicator of Crunch's expansion markets.
Amenity/class-led: - "Yoga Classes Near Me" — "Memberships as low as $9.99/mo — Get a workout without breaking the bank. Only, $1 to Join + 2 Weeks Free... Relaxing Unique Amenities." (www.crunch.com/join) - "New Gym in Lacey WA" — "Crunch Lacey has it all: weights, cardio, group classes, recovery & more! Tanning." (www.crunch.com/join/lacey)
Recurring motifs across the current window: "$9.99/mo," "$1 to Join," multi-length free trials (1/3/7-day), "Open and Staffed 24/7," HIITZone/turf, "Relaxing Unique Amenities," "Guest Privileges," "Online Class Reservations." No results-focused, testimonial, or direct competitor-named comparison ad (à la 24HF's "Better Than Planet Fitness?") observed in this pull's current-window sample.
Gaps vs. 24 Hour Fitness
24 Hour Fitness's own current SpyFu sample (24hourfitness.com, same methodology, pulled fresh this session) shows: - Named dollar-figure hooks are rarer for 24HF — 24HF leads with trial length ("5-Day," "3-Day Free Pass") and a generic "$1 Down" mechanic, not a specific monthly price. Crunch leads harder with an explicit "$9.99/mo" figure baked into most current headlines — a more aggressive price-anchoring strategy than 24HF's. - Crunch has a distinct new-club presale mechanic ("Founding 500," $1 + 1 month free, tied to specific opening markets like Coeur d'Alene, Jurupa Valley, 92nd & Wadsworth) — 24HF's current sample shows no equivalent "opening soon" campaign type. - Reciprocal brand-conquesting is confirmed both directions: 24HF's sample already showed "crunch fitness," "crunch gym," "crunch fitness free pass" in its own competitor-keyword cluster. This pull confirms Crunch bids back on "24 hour fitness" and multiple city-qualified 24HF variants ("24 hour fitness northridge," "...sunnyvale super sport," "...lafayette la," "...hasbrouck heights nj," "...connecticut," "...nj," "...new york"). This is an active two-way conquest fight, not one-sided — worth flagging as a live competitive-keyword battle, not just a watch item. - Neither brand's current sample shows a direct comparison ad naming the other — 24HF's "Better Than Planet Fitness?" creative names Planet Fitness specifically; nothing comparable naming Crunch (or vice versa) appeared in either current-window sample. - Amenity language differs but both lean into it: 24HF (sauna, pool, recovery zone, personal training, group classes) vs. Crunch (HIITZone, turf, weights, cardio, yoga classes, group classes, tanning at some clubs). Overlapping category (both amenity-forward) but distinct vocabulary — Crunch skews toward "fun/functional" (HIITZone, turf), 24HF skews toward "recovery/wellness" (sauna, pool, recovery zone). - 24HF ties promos to national/calendar dates ("4th of July Sale," "Our Lowest Price of the Year"); Crunch's current sample shows no equivalent national-holiday tie-in — its urgency comes from local club-opening presales instead, a different urgency lever (geographic/expansion-driven vs. calendar-driven). - Landing page structure is more alike than different: both brands are heavily localized (24HF: 3 main templated pages; Crunch: dozens of /join/[city], /locations/[city], and info.crunch.com microsite variants) — neither centralizes on a single homepage funnel, consistent with fitness being a local-market category. - 24HF's competitor-keyword footprint is broader (LA Fitness as by far the largest cluster, then Anytime, Planet Fitness, EōS, Chuze, Crunch, Gold's Gym, with a multi-brand Riverside CA cluster) vs. Crunch's narrower set (Planet Fitness, LA Fitness, Anytime Fitness, Gold's Gym, 24 Hour Fitness) — Crunch does not appear to be running the same kind of single-market, multi-brand simultaneous conquest cluster (like 24HF's Riverside play) in this sample; Crunch's competitor keywords read as scattered city-by-city rather than clustered in one local battleground.
Notable changes since last month
This is the first-ever SpyFu pull for Crunch Fitness in this pipeline — no prior spyfu-crunch.md exists at the project root or in any dated monthly folder, so there is no baseline to compare against. Nothing below is a "change"; it's the initial read, to be used as the baseline for next month's pull: - Current-activity window tops out at searchDateId 20260801, same as the other brands pulled this cycle. - Worth a specific flag for the team: Crunch's active, geographically-distributed bidding on "24 hour fitness" branded keywords is a live conquest that should be monitored going forward — this is the kind of item next month's pull should explicitly re-check for growth or contraction. - The "Founding 500" new-club presale pattern is worth tracking by market (Coeur d'Alene, Jurupa Valley, 92nd & Wadsworth/Golden Triangle observed this pull) as a signal of where Crunch is opening next.
Paid Social foreplay-crunch.md
Summary
Foreplay returns no active Meta creative for Crunch Fitness. A standard pull (brand id f1VYeMBaFy7OFVovZhrj, verified via domain lookup on crunch.com) came back empty, and a live-fetch fallback against the brand's Facebook page turned up only 4 ads total — all inactive, all tied to a single club (Duncanville, TX), and all stale (most recent started March 1, 2026; one dates to July 2025). There is no meaningful national or multi-location Meta presence to analyze this period. This is stated plainly rather than inferred from a thin sample — see Data notes.
Creative inventory
0 active ads. 4 inactive ads found via live-fetch fallback, all DCO/VIDEO format tied to one club: - DCO: 3 (all Duncanville, TX) - Video: 1
No carousel or image ads found. No format mix can be meaningfully reported for "active" creative since none exists.
Messaging themes
No active creative exists to theme. For reference, the most recent ad found (inactive since roughly a month after it started, per its running_duration) ran a presale/founding-member push: - "Don't end up like her🫣 There's 100 SPOTS LEFT to JOIN for $1 + 1 Month FREE! ... Join for $1 & Get 1 Month Free with memberships starting at $9.99/mo and 24/7 access. Plus, get a FREE Crunch bag, water bottle, t-shirt and 1-Hour personal training session ($150 VALUE)." — View live ad ↗
The other 3 ads carry no headline or description text (DCO units with blank copy fields), routing to crunch.com/join/duncanville and a UDT_Joins campaign URL for club #643.
(1 of 1 example with copy includes a link)
What's working (velocity signal)
Not assessable. All 4 ads found are inactive, and none were live long: the video ad ran roughly 17 hours before being pulled; the DCO ads ran 3–4 days. With zero currently-live creative, there is no velocity or persistence signal to report this period.
Notable changes since last month
No prior Crunch Fitness Foreplay pull exists in this project — this is the brand's first-ever pull, so there is no baseline to compare against. Noting for future pulls: the near-total absence of active creative and the single-club, single-franchisee pattern (Duncanville, TX / club 643) is itself the starting baseline to watch for change.
Landing Pages landing-page-crunch.md
Note on method
Both spyfu-crunch.md and foreplay-crunch.md exist for this brand/month, so this analysis proceeds on complete inputs — but the inputs themselves are lopsided: SpyFu (search) contributed 27 URLs, Foreplay (social) contributed only 3, reflecting Crunch's near-total absence of active Meta paid social this period (0 active ads; the 3 social URLs come from 4 stale, inactive ads tied to a single Duncanville, TX club — see foreplay-crunch.md). This imbalance is expected, not an error, and shapes the whole analysis below, especially the Search vs. social comparison section.
30 unique URLs total, 0 exact string overlaps between the two lists (see the /join note below for a near-overlap that isn't an exact match). Rather than fetch all 30, 11 fetches were made covering every distinct page template found in the set: generic /join, city-specific /join/[city] (both a search example and the one social example), a pre-opening /locations/[city] page, /free-trial, a thehub content/blog article, two info.crunch.com HubSpot free-trial lead-gen microsites, one founding500 presale microsite, and the bare info.crunch.com root (which turned out to redirect to the main homepage — see below). City-specific /join/ and /locations/ pages not individually fetched (okc-midwest, okc-northwest, quail-springs, norwalk, killeen, sanpedro, troy, fitchburg, south-park-meadows, corpuschristisouth, canton, norfolk) share the same underlying template as the ones that were fetched, so this sample is representative of the full set. http://crunch.com (bare domain) was not fetched — SpyFu's own notes flag it as a historical record predating 2020, not part of the current-window ad sample.
Important fetch limitation: www.crunch.com join/free-trial/checkout-adjacent pages appear to be a client-side-rendered single-page app — a static fetch returns only the navigation shell (header links, footer, meta tags) with no visible body/pricing content, and the page's canonical tag points to /checkout. This means messaging and visual claims for those specific pages are based on <title> and meta-description tags only, not the actual rendered offer a visitor would see. This is stated explicitly wherever it applies below rather than inferring page content that wasn't actually retrieved. info.crunch.com (HubSpot-hosted) pages and www.crunch.com/locations/[city] and /thehub/ pages, by contrast, returned full server-rendered text and could be assessed normally.
URLs reviewed
[search] (from SpyFu, 27 URLs) - https://www.crunch.com/join — fetched - https://www.crunch.com/join/okc-midwest - https://www.crunch.com/join/okc-northwest - https://www.crunch.com/join/quail-springs - https://www.crunch.com/join/norwalk? - https://www.crunch.com/join/killeen - https://www.crunch.com/join/sanpedro - https://www.crunch.com/join/lacey — fetched (representative of the /join/[city] template) - https://www.crunch.com/join/troy - https://www.crunch.com/join/fitchburg? - https://www.crunch.com/join/south-park-meadows - https://www.crunch.com/join/corpuschristisouth - https://www.crunch.com/locations/canton - https://www.crunch.com/locations/norfolk - https://www.crunch.com/locations/jurupa-valley — fetched (representative of the pre-opening /locations/[city] template) - https://www.crunch.com/free-trial — fetched - https://www.crunch.com/thehub/hot-yoga-flow/ — fetched - https://info.crunch.com/free-trial-3 - https://info.crunch.com/free-trial-3-day - https://info.crunch.com/free-trial-3-day-a — fetched - https://info.crunch.com/free-trial-3-day-fh - https://info.crunch.com/free-trial-7-day — fetched - https://info.crunch.com/founding500-coeurdalene — fetched - https://info.crunch.com/founding500-92wadsworth - https://info.crunch.com/founding500-golden-triangle - https://info.crunch.com/ — fetched (redirects to www.crunch.com/ homepage; not a distinct microsite root — see Visual trends) - http://crunch.com — not fetched (SpyFu flags this as historical, pre-2020, not in the current-window sample)
[social] (from Foreplay, 3 URLs) - https://www.crunch.com/join/duncanville — fetched - https://www.crunch.com/join?&utm_source=fb&utm_medium=paidsocial&utm_campaign=UDT_Joins&club=643 — fetched; resolves to the same /join/duncanville content - https://crunch.com/join?utm_source=fb&utm_medium=paidsocial&utm_campaign=UDT_Joins&club=643 — not separately fetched (same URL as above, non-www)
[both] — none by exact string match. Worth flagging: www.crunch.com/join (search) and www.crunch.com/join?...club=643 (social) are not the same URL string, but the social one is that same generic /join template with tracking parameters that route it toward the Duncanville club — functionally the same page family, not a coincidence.
Messaging
Generic /join and /join/[city] (SPA shell — body content not retrievable): Title tags carry the message since body content wasn't returned: generic /join is titled "Cheap Monthly Gym Memberships - High Value, Low Prices & Costs," while city pages follow a fixed pattern — "[City] Gym with Personal Trainers & Group Fitness Classes | Crunch Fitness." Meta descriptions for city pages consistently state "memberships starting at just $9.99," matching the SpyFu ad copy's price anchor. No CTA, offer detail, or visual content is verifiable beyond this — the canonical tag pointing to /checkout suggests these serve as membership-selector entry points into a checkout flow rather than standalone sales pages.
/free-trial: Same SPA-shell issue. Title: "Free Trial Gym Memberships - Free Gym Pass Near Me." Meta description: "Get a Free Trial Pass here!" No further content retrievable.
info.crunch.com/free-trial- (HubSpot lead-gen microsites, e.g. -7-day, -3-day-a): Fully rendered, single-purpose pages. Headline is literally "Free trial," with body copy: "Fill out the form below for a [7/3]-day pass to try us out!"* No pricing, no membership tiers — pure lead capture. Below the (unrendered) form sits a fixed brand-pillars module: Positivity / Inclusivity / Fun, tied to the "#NoJudgments" tagline. CTA is implicitly the form submission; no competing links or offers on the page.
info.crunch.com/founding500-[market] (e.g. Coeur d'Alene): The richest page in the set. Headline: "RESERVE YOUR SPOT AS A FOUNDING MEMBER" / "CRUNCH IS COMING SOON TO COEUR D'ALENE!" Offer: "First 500 to join pay $1 down + 1st month FREE... Limited edition Founding Member t-shirt, Free Crunch Swag." Full 3-tier pricing table is shown (Base $9.99, Peak $24.99, Peak Results $29.99, each listing amenities). A secondary offer is bolted on below the tiers: a sweepstakes for three free one-year memberships with its own CTA button. This matches the SpyFu "Founding 500" ad copy almost verbatim.
www.crunch.com/locations/[city] (pre-opening, non-presale template, e.g. Jurupa Valley): Fully rendered. Headline: "Club Coming Soon" / "Jurupa Valley." Extensive supporting content — amenity list (24-hour access, sauna, HydroMassage, tanning, HIITZone, etc.), a location-specific FAQ (shopping center, nearby retailers, nearby colleges), club contact info. Notably, no pricing and no "$1 down / Founding 500" offer appears on this page despite that being the exact offer named in the SpyFu ad for this same market. The only CTA is a generic HubSpot-hosted button, "Join the Party - Get Started," whose destination wasn't resolved by this fetch.
www.crunch.com/thehub/hot-yoga-flow/ (content/blog article): Long-form editorial content about a specific class (Hot Yoga: FLOW) — not a conversion-first landing page. Ends with soft CTAs: "Start your free trial now" (→ info.crunch.com/free-trial) and "join Crunch" (→ www.crunch.com/join). Functions as top-of-funnel content marketing rather than a direct-response page.
info.crunch.com/ (bare root): Redirects to www.crunch.com/ — the standard homepage, not a distinct microsite. Headline is implicit in the location-finder module: "Find your nearest Crunch and join today!" with "Share my location" / "Find a crunch" CTA. Supporting sections restate brand pillars (Our Gym is Your Gym / #NoJudgments / Energy is for Everyone / Goals are Made to be Crushed) with links into Classes and Training pages. No pricing or offer shown on the homepage itself.
Visual trends
Limitation, stated per the framework: a page fetch returns structure and text, not rendered visual design — no real colors, photography treatment, or layout feel is observable. Everything below is inferred from structure, image filenames/alt text, and copy only.
- All pages share one navigation/footer chrome and asset library (logo, social icons served from the same CloudFront bucket), and the "#NoJudgments" tagline recurs on nearly every template — consistent brand system across both the main site and the HubSpot-hosted
info.crunch.comsubdomain. - Two distinct production tiers are visible structurally: (1)
www.crunch.comjoin/free-trial/checkout pages are a client-rendered SPA — no body content is retrievable via static fetch, so no messaging or visual read is possible beyond title/meta tags; (2)info.crunch.comHubSpot microsites andwww.crunch.com/locations/and/thehub/pages are server-rendered HTML with full text and image references visible. - Within the server-rendered set, the founding500 presale page is markedly more art-directed than the free-trial lead-gen pages: it includes a video element, multiple named "Presale Landing Page Header" image assets, and category photography (HIITZone, cryotherapy, hot studio, red light therapy) — consistent with it being the highest-value conversion page in the set. The plain
free-trial-*microsites use a single generic hero image and small brand-pillar icons — visually simpler by structure, even though actual rendered design can't be confirmed. - The
/locations/jurupa-valleypage structurally reads as an informational/amenity showcase (photo gallery labeled "Sneak a Peek," "Miles of Cardio," etc., plus an FAQ accordion) rather than an offer/checkout page — no pricing module present.
Focus
- Join/free-trial SPA pages: Cannot be assessed for on-page focus since body content wasn't retrieved. What is visible (nav shell) shows both "Free Trial" and "Join" as persistent competing header CTAs across every page in this template family.
info.crunch.com/free-trial-*microsites: Single, clean focus — fill out the form for a trial pass. No distractions, no alternate CTAs.founding500-[market]: Mostly focused on one goal (reserve a founding-member rate), but the page carries two CTAs — the tier selector/reserve flow and a separate sweepstakes entry button — a mild split of attention, though both ultimately capture a lead./locations/[city](pre-opening, non-presale): Focus is diffuse. The page is rich with amenity and FAQ content but has no pricing and only one generic, unlabeled CTA ("Join the Party - Get Started"). A visitor can't complete or even clearly see the "$1 down" action that the corresponding SpyFu ad promises — this reads as an information page more than a conversion page.thehubcontent article: Multiple soft exits (free trial, join, find a class) — reasonable for a content-marketing page, not expected to be single-action.
Source alignment
- Free-trial ads →
info.crunch.com/free-trial-*: Strong alignment. SpyFu ad copy promises a specific-length free pass (1/3/7-day); the landing page delivers exactly that, as a single-field ask, with no bait-and-switch. - $9.99/mo price ads →
/joinand/join/[city]: Plausible alignment on price (meta description confirms "$9.99" for city pages), but the actual on-page delivery of that price, the "$1 to Join" mechanic, and any trial-length messaging referenced in the SpyFu ad copy could not be verified — the page is a client-rendered app and the fetch didn't capture what a visitor actually sees. This is a genuine analysis gap, not a finding of misalignment — it should be treated as unverified rather than assumed fine. - "Founding 500" ads →
info.crunch.com/founding500-[market]: The strongest, most literal alignment in the set — ad and landing page use nearly identical language ("$1 to Start & 1 Month Free," "Founding 500," "Opening Soon") and the landing page delivers full pricing plus the exact bonus (swag/t-shirt). - "$1 down & 1 Month Free + Swag... New Crunch 3.0 is Opening Soon" ad (Jurupa Valley) →
/locations/jurupa-valley: This is the clearest gap found this pull. The SpyFu ad names a specific dollar offer, but the actual/locations/jurupa-valleypage carries no pricing and no visible "$1 down" offer — only a generic "Join the Party" button whose destination isn't confirmed. A visitor clicking that specific ad would land on a page that doesn't visibly deliver the promised deal without an unlabeled extra click. This is structurally similar to the "joins-disabled" promise/delivery gap seen in Planet Fitness's pre-opening pages last cycle. - Social ad (the one Foreplay ad with copy) →
/join/duncanville: The ad promised "$1 + 1 Month FREE... memberships starting at $9.99/mo... FREE Crunch bag, water bottle, t-shirt and 1-Hour personal training session." The landing page is the same client-rendered SPA shell as the search/join/[city]pages — the $9.99 price is corroborated by the meta description, but the $1-down mechanic and the bag/bottle/shirt/PT-session bonus could not be confirmed from this fetch. Also worth a minor QA flag:/join/duncanville's<title>reads "Dallas Gym with Personal Trainers..." rather than Duncanville — Duncanville is a Dallas suburb, so this isn't wildly wrong, but it's an imprecise city match for a hyper-local ad.
Search vs. social comparison
A genuine cross-channel comparison isn't well supported by this month's data — Foreplay found only 3 social URLs (all variants of one club's join page) against SpyFu's 27, a direct consequence of Crunch's near-zero active Meta presence this period. What can be said: the one social landing page identified (/join/duncanville) uses the exact same template as the search-driven city /join/[city] pages — Crunch isn't building a distinct social-specific experience, it's routing social traffic (what little there is) into the same generic city-join funnel used for search. No social equivalent of the richer info.crunch.com/founding500- presale page or the info.crunch.com/free-trial- lead-gen microsites was found in this pull — search traffic gets access to Crunch's more developed, higher-conversion page templates in a way social currently doesn't, though that's likely more a symptom of the near-absent social ad program than a deliberate template decision.
EōS Fitness
Paid search, paid social & landing page analysis — August 2026
Paid Search spyfu-eosfitness.md
Summary
EōS Fitness's current paid search is dominated by a rotating low-join-fee mechanic ("$1 to Join," "4¢ to Join," "$9.99/mo") layered with "30 Days Free," and by a distinct, heavily-used pattern this pull surfaces clearly for the first time: dedicated pre-opening/"Coming Soon" campaigns for new club locations (Bradenton FL, Rancho Santa Margarita CA, San Antonio TX, plus a just-opened Phoenix club), pointing to an expansion-driven PPC strategy. Keyword targeting skews overwhelmingly non-branded and hyper-local (hundreds of "[gym type] in [city]" long-tail variants concentrated in Utah, Arizona, Southern California, Texas, and Florida) rather than brand-defense, the opposite emphasis from Planet Fitness's branded-city-variant approach. This is the first-ever SpyFu pull for EōS Fitness in this pipeline, so there is no prior-month baseline for trend comparison.
Keyword portfolio
- 50 ad records pulled (SpyFu returns ads with matched-keyword lists, not a flat keyword list); the full raw JSON returned inline this pull (no external file/Grep extraction was needed — see Data notes).
- Full unique keyword count isn't precisely computable (keyword lists overlap heavily across ads), but a bounded estimate across all 50 records is roughly 350–450 distinct keyword strings after dedup — one single ad (a broad-match "EōS Fitness" ad landing on the homepage, searchDateId 20260801) alone carries close to 250 city-qualified generic terms.
- Overwhelmingly non-branded: the large majority of sampled keywords are generic gym-intent terms — "gyms near me," "gym near me," "fitness center near me," "best gyms near me," "cheap gyms near me," "24 hour gym," "health club" — cross-matched against hundreds of city names.
- Branded keyword footprint is comparatively small: "eos fitness," "eos gym," "eos fitness near me," "eosfitness," "eos membership," "eos fitness san diego," "eos fitness 92504." No "eos fitness [city]" long-tail pattern at the scale Planet Fitness runs for its own name.
- No click/spend/CPC data present in this export — branded vs. non-branded spend split isn't available, only keyword-count share.
- Data spans searchDateId 20191001 to 20260801, with a visible gap: nothing between late 2021 and early 2026 appears in this top-50 sample. 20 of 50 records fall in the current window (≥20260601): 6 dated 20260801, 6 dated 20260701, 8 dated 20260601.
Ad copy themes
Price/value (dominant, current window): - "Join For $1 & Get 30 Days Free - EōS Fitness" — "Join EōS Today for Just $1 and Get 30 Days Free! Memberships starting as Low as $9.99/mo." - "EōS Fitness - 4¢ To Join & $9.99/mo" — "4¢ to Join This July at EōS - Memberships as Low as $9.99/Mo (Offers May Not Be Combined)." - "EōS Fitness | Absolutely, Positively $1" — "Join for Just $1. Memberships as Low as $9.99/Month."
New-location / pre-opening urgency (notable pattern this pull): - "Coming Soon to RSM | Workout. Recover. Have Fun | New Gym Alert | RSM" — "Claim Your Spot To Be First To Join and Lock in Our Lowest Rates Before We Open! ... Secure Presale Access." - "EōS Fitness | Bradenton | Coming Soon to Bradenton" — "Get Pumped and Get on the List for Exclusive Pre-Opening Deals." - "Join the EōS Fitness Family | New Gym Open In Phoenix" — "The Wait is Over. See What the Hype is About with a Free 7-Day Pass." (Glendale, AZ club, just opened) - "EōS Fitness | San Antonio | New Gym Open In San Antonio" — "High-Energy Gyms, Cutting Edge Strength Equipment and Innovative Group Fitness Classes."
Amenity-led (current window, notably deep amenity vocabulary): - "Infrared Sauna at EōS - Absolutely, Positively $1" — "Sweat It Out and Feel Fully Rejuvenated After Your Workout." - "Join For $1 & Get 30 Days Free | Gym With Swimming Pool" — "EōS Fitness Indoor Lap Pool ... Aqua Fitness & Recovery." - "Yoga And Meditation Classes - 4¢ To Join & $9.99/mo - EōS Fitness Yoga" — "Soothe Your Soul and Stretch Your Muscles in the Mind/Body Rehab Sanctuary." - Recurring amenity call-outs across current ads: steam room, cryotherapy, cold plunge, hot tub, massage chairs, turf training area, cinema cardio room, "Booty Builder Lab," Content Creator's Gym — a noticeably richer amenity vocabulary than either Planet Fitness or 24 Hour Fitness's current samples.
Brand/motivational (smaller current-window presence, paired with a competitor-conquest signal): - "Gym Better at EōS Fitness - Fitness Without Limits" — "No Excuses, Just Results. Will Power Drives Every Workout Forward." - "Eos Fitness" — "Athletic EOS Gym Member — Better Price... Match Your Drive With Our Will Power That Has It All." This ad's matched-keyword list includes "golds gym," "gold gym," "gold s gym prices," "gold gym walmart," "golds gym martinsburg wv" — a direct conquest of Gold's Gym, paired with "Will Power"/"Match Your Drive" copy that reads as a deliberate pitch to Gold's Gym's traditional hardcore-lifter audience.
No urgency/holiday-branded "sale" copy and no explicit community/testimonial language appear in the current-window sample (a 2021 ad used "Join your EōS fit fam Today!" — that phrasing doesn't recur in 2026 records).
Gaps vs. 24 Hour Fitness
24 Hour Fitness's own current SpyFu pull (24hourfitness.com, same methodology, pulled fresh this session) shows: - Free-trial/guest-pass length as the lead hook ("Your 5-Day Free Pass Awaits," "Try Us Free For 3 Days") vs. EōS's price-first hooks ("$1 to Join," "4¢ to Join," "$9.99/mo"). EōS does offer "Free 7-Day Gym Pass" as a secondary link in most ads, but it's rarely the headline — the opposite prioritization from 24HF. - A direct comparison ad naming Planet Fitness ("Better Than Planet Fitness?") — EōS's current sample shows no reciprocal ad copy naming 24 Hour Fitness or any other brand directly in headlines/body; its only competitor-facing move is the Gold's Gym keyword conquest noted above, and that's keyword-level, not creative-level. - Riverside, CA conquest cluster — the most important flag for EōS specifically: 24 Hour Fitness's current keyword sample includes "eos fitness free pass riverside" bid alongside "la fitness free pass riverside" and "planet fitness free pass riverside" in the same local campaign. EōS is a named conquest target in 24 Hour Fitness's current Riverside market push, and EōS's own current sample shows no visible defensive branded-keyword response in that market (no "eos fitness riverside"-style defensive bidding surfaced in this pull) and no offensive bidding on "24 hour fitness" or "24hourfitness" terms anywhere in the 50-record sample. - Competitor-conquesting scale is asymmetric: 24HF's current footprint is large and multi-brand (LA Fitness as the dominant cluster, then Anytime Fitness, Planet Fitness, EōS Fitness, Chuze Fitness, Crunch, Gold's Gym). EōS's current sample shows only one competitor cluster (Gold's Gym) and it's narrow — a handful of keywords on one ad, not a sustained multi-city campaign. - Amenity depth favors EōS: 24HF's amenity language (sauna, pool, recovery zone, personal training, group classes) is a shorter, repeated list; EōS's current amenity vocabulary is broader and more specific (cryotherapy, cold plunge, turf training area, "Booty Builder Lab," Content Creator's Gym, infrared sauna, indoor lap pool) — this looks like a genuine differentiation opportunity 24HF isn't matching in ad copy. - National-holiday/calendar promos: 24HF ties offers explicitly to national dates ("4th of July Sale," "Our Lowest Price of the Year"). EōS's July activity ("4¢ to Join This July") is calendar-adjacent but not holiday-branded — a lighter-touch seasonal tie-in than 24HF's. - New-club pre-opening campaigns are unique to EōS in this comparison — 24HF's current sample shows no equivalent "coming soon"/presale local-launch ad pattern; EōS is running dedicated PPC for at least three markets mid-buildout (Bradenton FL, Rancho Santa Margarita CA, San Antonio TX) plus a just-opened Phoenix club, signaling active physical expansion that 24HF isn't visibly mirroring in paid search right now.
Notable changes since last month
This is the first-ever SpyFu pull for EōS Fitness in this pipeline — there is no spyfu-eosfitness.md from a prior month (checked both the project root and the 2026-08 folder), so there's no month-over-month delta to report. Flagging for next pull as a baseline to compare against: - Current max searchDateId this pull: 20260801. - The "4¢ to Join This July" mechanic and the multi-market "Coming Soon" pre-opening campaign cluster (Bradenton, RSM, San Antonio) should be checked next pull to see if they persist, rotate to new markets, or wind down as those clubs open. - The Gold's Gym keyword conquest (one ad, narrow cluster) is worth tracking to see if it's a one-off test or the start of a broader competitor-conquest expansion. - On the 24 Hour Fitness side: EōS is a named target in 24HF's current Riverside, CA conquest cluster — worth flagging back to the team as a live, direct competitive-response signal against our own brand's paid search, and worth re-checking whether EōS mounts any defensive response next pull.
Paid Social foreplay-eosfitness.md
Summary
EōS Fitness's core playbook is unchanged from the prior pull earlier this month: a flat "$1 to join, memberships as low as $9.99–$15/mo" acquisition engine, a distinct "we saw you looking" retargeting voice, and a steady presale pipeline for new locations. What's changed is scale and mix — 324 ads have launched since August 1 alone (vs. 100 shown in the prior, output-capped pull), image now leads DCO by share of the pull, and carousel format has appeared for the first time, used exclusively for new-location presale pages.
Creative inventory
324 ads launched since August 1, 2026, all confirmed live, by format: - DCO: 139 (43%) - Image: 115 (35%) - Video: 63 (19%) - Carousel: 7 (2%) — new this pull; all 7 route to /gym/[location] presale pages (Rancho Santa Margarita CA, Bradenton FL, San Antonio TX), none carry headline/description copy, CTAs split across LEARN_MORE, SEE_DETAILS, and SIGN_UP.
Counts confirmed via exhaustive per-format pagination (display_format filter + start_date=2026-08-01, each paginated to a null cursor), not estimated from a sample.
Messaging themes
Price/value — "$1 to Join" (still the anchor offer, wrapped in seasonal framing): - "Go Ahead. 1$ to Join." — "EōS just hits different. Bigger lifts, brighter energy and room to go all in... including memberships as low as $9.99/mo." — View live ad ↗ - "Summer Energy Starts at EōS ⚡" — "Basic isn't the move. At EōS, you get more where it matters... $1 to join.* Memberships as low as $15/mo!" — View live ad ↗
Retargeting / "we saw you looking" (site-visitor reactivation, still a distinct voice): - "Still deciding? Good news, you don't have to. Start with a Free 7-Day Pass. 😉" — "We saw you looking. 👀" — View live ad ↗ - "You've been eyeing it. Might as well find out. 😉 Start with a Free 7-Day Pass." — "We saw you looking. 👀" — View live ad ↗
New-location / presale ("Sign Up & Get First Dibs," "Your EōS Is Open/Here," "Flex First, Pay Less," "Hot Gym, Hot Deals"): - "A new EōS Fitness is coming to Mesa. Claim your spot to be first to join and lock in our lowest rates before we open!" — "Flex First, Pay Less 💪" — View live ad ↗ - "Bradenton, your new EōS Fitness is almost here. 💪 Top-tier amenities, high-energy workouts and even bigger savings." — "Hot Gym, Hot Deals 💪" — View live ad ↗ - "A new EōS Fitness is coming to Rancho Santa Margarita. Claim your spot to be first to join and lock in our lowest rates before we open!" — "Flex First, Pay Less 💪" — View live ad ↗
Us-vs-them / competitive comparison: - "Sure, other gyms exist… but why? 🤷♀️ EōS just hits different. Bigger lifts, brighter energy and more room to make it happen." — "Average Isn't the Move 😎" — View live ad ↗
Amenity/recovery: - "Built for Your Recovery" — headline observed on multiple video units alongside the standard $1-to-join price ladder (recovery amenities framed as a flat feature, not a separate upsell tier).
Seasonal ("summer") framing — a wrapper rather than a standalone theme: "Summer Energy Starts at EōS," "Ready for Your Summer Upgrade?," "Big Energy All Summer Long" all re-skin the core $1-to-join / retargeting / presale copy above with summer language.
(6 of 6 examples include a link)
What's working (velocity signal)
All 324 ads sampled are live; none inactive. started_running spans ten distinct days (Aug 1 through Aug 10), with Aug 1 and Aug 3 standing out as the two largest single-day cohorts — a rolling-refresh pattern consistent with the prior pull rather than one mass batch. The retargeting ("we saw you looking") and presale/new-location creative continue to show up across multiple days rather than being confined to a single launch date, suggesting those two campaigns are treated as more persistent than the bulk evergreen $1-to-join wave, which echoes the pattern seen in the prior pull. Because this pull spans the same brand's second observation, a true multi-week persistence read still isn't possible — a later pull that shows some of today's Aug 1–3 creative still live would be the first real velocity confirmation.
Notable changes since last month
Compared to the prior pull earlier this cycle (100 ads shown, DCO 63/VIDEO 17/IMAGE 20, no carousel, 3-day cohort window): - Active creative volume roughly 3x larger — 324 ads since Aug 1 alone vs. 100 previously (the prior count was itself known to be capped by tool output limits, so this may partly reflect better pagination rather than pure growth — flagged for transparency, see Data notes). - Carousel format introduced (7 ads) — exclusively for new-location presale pages, none with ad copy. - Format mix shifted toward image — image share grew from 20% to 35% of the pull; DCO fell from 63% to 43%. - New headline variants on the presale theme — "Flex First, Pay Less," "Hot Gym, Hot Deals," and "Meet Your Will Power at EōS" did not appear in the prior pull's messaging themes. - Retargeting and $1-to-join themes persist essentially unchanged in tone and offer structure from the prior pull.
Landing Pages landing-page-eosfitness.md
Note on method
Both spyfu-eosfitness.md and foreplay-eosfitness.md exist for this brand/month, so this analysis proceeds on complete inputs. 16 unique URLs were captured across the two sources after deduping (ignoring UTM-parameter differences on otherwise-identical URLs): 5 search-only, 2 shared between both channels, 3 social-only, and 6 historical/pre-June-2026 SpyFu entries carried over for reference. Rather than fetch all 16, I visited a representative sample covering every distinct page template: homepage, generic promo/offer page, the multi-step join funnel, an already-open individual gym page, a pre-opening ("Coming Soon") gym page, and the generic gym locator. All fetches succeeded — no blocked pages to report. EōS's city-specific /gym/[location] pages are template-driven (same layout and copy blocks, only address/phone/opening-status and available amenities change), so the two /gym/ pages fetched are representative of the full set of open-club and presale-club URLs, not just the two visited.
Visual-trends limitation: a page fetch returns structure and text content only, not rendered visual design — no real colors, photography, or layout feel. The notes below describe only what's inferable from page structure/copy (section order, repeated visual-cue words like "Pause Video," element density, template type), not actual visual design, per the framework's stated limitation.
URLs reviewed
[both] - https://www.eosfitness.com/gym/bradenton-florida-14th-st-w-cortez-rd-w (Cortez Rd W address; SpyFu current + Foreplay, different UTM strings) - https://www.eosfitness.com/gym/rancho-santa-margarita-avenida-de-las-flores-santa-margarita-pkwy (SpyFu current + Foreplay, different UTM strings)
[search] (from SpyFu, current window) - https://www.eosfitness.com/ (homepage) - https://www.eosfitness.com/monthlypo (primary promo page) - https://www.eosfitness.com/monthlypo-tx (Texas-specific variant, same template) - https://www.eosfitness.com/gym/phoenix-arizona-n-24th-ave-w-northern-ave (just-opened club) - https://www.eosfitness.com/gym/san-antonio-tx-i-35-walzem-rd (open club)
[social] (from Foreplay) - https://www.eosfitness.com/join-now (retargeting destination) - https://www.eosfitness.com/gym/bradenton-florida-59th-st-w-cortez-rd-w (second, distinct Bradenton presale address) - https://www.eosfitness.com/gym/san-antonio-loop-1604-bandera-rd (second, distinct San Antonio address)
[search, historical — pre-June 2026, carried from SpyFu for reference, not treated as current activity] - https://eosfitness.com/find-club/ (2021 record — fetched; now 301s to https://www.eosfitness.com/gym/search, the current locator) - http://eosfitness.com (2019–2020 record, bare domain) - https://www.eosfitness.com/gym/north-richland-hills-texas-davis-blvd-n-tarrant-pkwy (20260501) - https://www.eosfitness.com/gym/houston-texas-s-voss-rd-san-felipe-st (20260501) - https://www.eosfitness.com/gym/san-bernardino-california-s-carnegie-dr-e-hospitality-ln (20260501) - https://eosfitness.com/location/las-vegas-rainbow-alta/ (2021, old /location/ URL pattern, superseded by /gym/)
Note: Foreplay's data notes also name /memberships and /free-gym-trial as evergreen destination paths, but no specific URL for either was captured in the source file, so they aren't included as reviewed pages here — flagging for next pull to capture explicitly.
Messaging
Homepage (/): Headline is the tagline stack "EXTREME ENERGY / OPTIMUM VALUE / SERIOUS FITNESS" over "AS LOW AS $9.99/mo." A looping "$1 TO JOIN + 30 DAYS FREE" ticker repeats across the hero. Three membership tiers are named up front (Will Power $29.99, Will Crush $24.99, Will Do $9.99) with brief value pitches for each. Dual CTA: "JOIN IN" / "FREE PASS," reinforced by "FIND A GYM NEAR ME." This is a full brand-hub page — price, tiers, amenities, personal training, and a testimonial all compete on one page.
Generic promo page (/monthlypo, /monthlypo-tx): Headline "BREAK THE MOLD!" with copy about "cutting-edge fitness technology, modern recovery amenities." No specific price surfaces on this page in the fetched content — it reads as a brand/amenity landing pad rather than a direct offer page, then funnels to "TRY EōS FREE" (no credit card, no commitment) as the CTA. Long legal/registration-number block at the bottom (state gym-registration IDs) suggests this page is built to be compliant across many state jurisdictions at once — consistent with its role as the one page nearly every price-led ad points to nationally.
Join funnel (/join-now): A 4-step checkout shell — "STEP 1 location / STEP 2 membership / STEP 3 information / STEP 4 checkout." The fetched content only returned the page shell/navigation and footer boilerplate, not the actual step-1 form content — this is very likely a client-side-rendered (JS) flow where the location-picker and pricing don't appear in static HTML. No headline, offer copy, or price could be captured for step 1 itself.
Open individual gym page (e.g., Phoenix, N 24th Ave/W Northern Ave): Headline is the gym name/location plus "As low as $9.99/mo." Followed by "THE PERFECT SNATCH — Gym Memberships Start at Just $9.99!" tied to the "High Value. Low Price. (HVLP)®" tagline. Full 3-tier pricing table appears (Will Power $29.99 + "$1 to enroll +14 DAYS FREE," Will Crush $24.99 + "$1 to enroll," Will Do $9.99 + "$49.99 to enroll"), plus amenities, class schedule, staff contact, and FAQs. CTA: "JOIN IN NOW" / "JOIN IN" per tier — a live, transactable page.
Pre-opening / presale gym page (e.g., Bradenton, 14th St W/Cortez Rd W): Headline "COMING SOON," repeated as a scrolling banner. No pricing table at all — the primary conversion mechanism is a lead-capture form ("GET UPDATES ABOUT THIS EōS GYM") asking for name, email, phone, gender, and "how did you hear about us." Gives an opening-date estimate ("Gym Opening Date: Winter 2026"). The rest of the page (amenities, coaching, FAQs) is largely the same template block as the open-club pages, just with pricing/enrollment stripped out and replaced by the waitlist form.
Locator (/gym/search, reached via the historical /find-club/ redirect): Pure utility page — state-by-state club counts (Arizona 52, California 53, Florida 37, Georgia 3, Nevada 20, Texas 64, Utah 14), a search-by-city/state/ZIP field, and an "Expanding Nationwide — WE'RE GOING PLACES" module that doubles as a soft pitch for the presale pipeline. Secondary CTAs: "Schedule a Gym Tour," "Get a Free 7-Day Gym Pass," "FAQs."
Visual trends
As noted above, only structure/copy is observable from these fetches — no actual color palette, photography style, or layout rendering was captured. Within that limit: - The homepage and gym pages share a dense, module-stacked structure (hero → ticker → tiers → amenities → personal training → testimonial → footer), suggesting a heavily templated page-builder system reused across the whole site rather than bespoke per-page design. - The repeated "$1 TO JOIN + 30 DAYS FREE" ticker text on the homepage, and the repeated "COMING SOON" ticker on presale pages, both read as animated/looping marquee elements in the underlying markup — a recurring device that shows up on multiple page types. - Individual gym pages carry noticeably heavier content (class schedules, staff names/photos referenced by role, amenity photo captions like "1/1") than the generic promo pages, implying gym pages are the more visually rich/produced template and /monthlypo is the leaner, faster-loading one built for broad ad traffic. - No information on actual color scheme, image treatment, or mobile layout could be assessed from this method.
Focus
- Homepage: Multi-purpose — tiers, amenities, personal training, testimonial, and locator all compete. Not a single-action funnel; it's a brand hub.
/monthlypopromo page: Cleaner than the homepage — no tier table, single CTA path ("TRY EōS FREE"), but the actual price promised in ad copy ($1 to join, $9.99/mo) isn't restated on the page itself in what was fetched, which is a mild focus/consistency gap (see Source alignment)./join-nowfunnel: By design, single-action (complete 4 steps to checkout) — but the fetch couldn't confirm what step 1 actually shows, so I can't confirm it stays on-message beyond the shell.- Open gym pages: Tightly focused — pricing table is front and center, everything else (amenities, FAQs, schedule) is supporting content below it. Strong single-action design toward "JOIN IN."
- Presale/Coming Soon pages: Focus correctly shifts to lead capture (email/phone signup) since there's nothing to buy yet — this is coherent, not cluttered, and matches the "get on the list" promise in both SpyFu and Foreplay presale ad copy.
- Locator page: Single clean focus — search/browse by state, click through to a specific club. No distractions.
Source alignment
- Price-led search ads ("$1 to Join," "4¢ to Join," "$9.99/mo") →
/monthlypo: Partial gap. The ad promises a specific cent-denominated hook; the page headline ("BREAK THE MOLD!") doesn't restate that number and no price appears in the fetched content — the visitor has to click further ("TRY EōS FREE") to find pricing. Compare this to the open gym pages, where the $9.99/mo figure is restated immediately in the hero. This looks like a real, if mild, promise-delivery gap on the highest-volume search landing page. - Broad-match/generic search ads → homepage: Good alignment — the homepage carries the same "$1 TO JOIN + 30 DAYS FREE" language used in the ad copy, plus the full tier table.
- New-location "Coming Soon"/presale ads (search and social) → presale gym pages: Strong alignment. Both channels' presale ad copy ("Claim your spot," "lock in our lowest rates before we open," "Get on the list for exclusive pre-opening deals") matches the page's actual mechanism — a waitlist form with no premature pricing/checkout. No dead-end or false promise here, unlike some competitors' presale pages that promise access but disable joining.
- "New Gym Open" search ads (e.g., Phoenix) → open gym pages: Strong alignment — ad says the club is open and ready, page shows live pricing and a working "JOIN IN NOW" CTA.
- Retargeting ("We saw you looking," "Still deciding? ... Start with a Free 7-Day Pass") →
/join-now: This is the one theme worth flagging explicitly per the task brief. The retargeting ad's specific hook is a Free 7-Day Pass, but the captured destination is the generic 4-step paid membership checkout funnel (/join-now), not a free-pass-specific page (a/free-gym-trialURL exists, per the footer nav and Foreplay's data notes, but wasn't the URL actually captured for the retargeting ad in the source file). If retargeting clicks are in fact landing on/join-nowrather than/free-gym-trial, that's a promise/delivery mismatch — a "no-commitment free pass" ad routing into a paid-checkout flow rather than a frictionless free-pass claim. This is the clearest source-alignment risk in the set and worth confirming with an actual click-through next pull, since the fetch can't verify what renders after step 1 loads.
Search vs. social comparison
Mostly the same underlying page set, with one channel-specific divergence. Both SpyFu (search) and Foreplay (social) route heavily to the same /gym/[location] template — for open clubs and presale clubs alike — and both drive some traffic to /monthlypo-style generic promo pages. The two [both]-tagged URLs (Bradenton and Rancho Santa Margarita presale pages) confirm search and social ads for the same new-club campaigns land on the identical page, just with different UTM tracking strings. That's consistent, unified execution: EōS isn't building channel-specific presale experiences.
Where the channels diverge: - Search skews toward the bare homepage and /monthlypo for its broad, non-branded, hyper-local keyword-driven traffic ("gyms near me" + city), and toward individual already-open club pages for hyper-local branded/near-me intent. - Social is the only channel observed sending traffic to /join-now (retargeting) — a page type not present in the SpyFu URL list at all — and to a different pair of Bradenton/San Antonio addresses than the ones search targets, suggesting social's presale campaigns are running city-wide across multiple in-market addresses simultaneously rather than concentrating on one flagship address per city the way the search sample suggests. - Social's distinctive "we saw you looking" retargeting theme has no distinctive landing page of its own in the data captured — it lands on the same generic checkout shell as cold-traffic ads, rather than a page built around the specific free-pass, no-commitment promise in the ad copy.
Overall this suggests EōS treats search and social as feeding the same location-based funnel for both new-club and open-club campaigns (a shared, well-aligned system), while using social exclusively for the retargeting/reactivation layer — a channel-appropriate split, except that the retargeting layer's landing experience doesn't yet appear to be purpose-built to match its distinct ad voice.
VASA Fitness
Paid search, paid social & landing page analysis — August 2026
Paid Search spyfu-vasafitness.md
Summary
This is VASA Fitness's first-ever SpyFu pull for this project, so there's no prior-month baseline. Current paid search (28 of 50 sampled records fall in the ≥ 20260601 window) is dominated by a "$0 down, no annual commitment" price hook layered with unusually heavy, specific recovery-amenity copy (cold plunge, hot tub, sauna, steam, red light, hydro-massage lounge), plus named in-club STUDIO programs (STUDIO RED HIIT, STUDIO CYCLE) surfacing directly in ad titles — a differentiator neither Planet Fitness nor 24 Hour Fitness show in their own current search creative. Competitor-conquesting is faint but not absent: one bare "planetfitness" keyword and two ads landing on a /campaign-competitor/ URL path, though the matched keyword shown for those was generic, not a named competitor term.
Keyword portfolio
- 50 ad records pulled (SpyFu returns ads with matched-keyword lists per ad, not a flat keyword list — same structural caveat as other brands in this pipeline).
- The response came back fully inline this pull (no size-limit fallback needed), so every record's keyword list was readable in full — but several individual keyword lists ran 150–260 entries long with heavy cross-ad overlap, so an exact deduplicated total isn't computable from this export. Bounded estimate: roughly 500–800 distinct keyword strings across the 50 records after accounting for overlap.
- Skews heavily non-branded/generic — a clear contrast with Planet Fitness's branded "planet fitness [city]" pattern. VASA's dominant keyword shape is generic gym-intent crossed with amenity and city: "gym near me," "gym with sauna near me," "gym with pool," "gym with basketball court," "fitness center near me," "health club," plus a very long tail of city-qualified generic terms ("gym in tucson," "gym with sauna in racine," "gym with pool in west jordan," "gym with daycare in provo," "fitness center in oklahoma city").
- Branded terms are a minority within these lists: "vasa fitness," "vasafitness," "vasa studio membership," "va sa fitness" (misspelling variant), "vasa aurora co."
- Geographic footprint in the keyword sample spans Colorado, Utah, Arizona, Oklahoma, Indiana, Nebraska, Illinois, Wisconsin, Washington (Bellevue) — consistent with VASA's known multi-state Mountain West/Midwest footprint. One notable outlier: "chelmsford ma gym" appears inside an otherwise Mountain-West/Midwest keyword list — likely broad-match noise rather than a real new market, but worth a spot-check.
- No click/spend/CPC data present in this export — branded vs. non-branded spend split isn't available, only keyword-count share.
- Data spans searchDateId 20200301 to 20260801. 28 of 50 records fall in the current window (≥ 20260601): 5 dated 20260601, 13 dated 20260701, 10 dated 20260801.
Ad copy themes
Price/value + no-commitment framing (dominant theme): - "$0 Down. Join VASA Today | Limited-Time VASA Offer" — "Limited-time offer: $0 down and no annual commitment." - "Low-Cost Membership" — "Premium Gym, Great Price — Free gym trial. No pressure. Just better workouts, better results, and everything included." - "No Annual Commitment | Premium Gym. Smart Price"
Recovery/amenity-led copy (heavy and specific — a standout theme): - "Cold Plunge + Sauna + Hot Tub | Premium Gym. Free Trial" — "Pools, Recovery, Classes And Strength Training — All In One Gym." - "Sauna, Steam & Red Light | Low-Cost Membership" — "Full array of classes + recovery amenities like cold plunge, hot tub, sauna, & more." - Recurring amenity callouts: Hydro-Massage Lounge, KidCare Facilities, Pickleball, Basketball Court, Performance Lifting, Turf.
Free trial/guest-pass hook: - "Try VASA Before Joining" / "Experience VASA Free" — "Try VASA Free And Experience Premium Fitness At An Incredible Value." - "1 Day. Zero Commitment — No commitment. Just results. Start your free trial today."
Named STUDIO sub-brand programs (surfacing directly in search ad titles): - "1st Month STUDIO Free | $0 Down. Join VASA Today" — "...get your first month of STUDIO free. VASA STUDIO. Sauna." - Recurring mentions: "Studio Red HIIT," "Studio Cycle," "VASA STUDIO." Note: "STUDIO LFT" — prominent in VASA's own paid-social (Foreplay) creative this month — does not appear anywhere in this SpyFu sample; the named-studio angle in search skews toward STUDIO RED HIIT/STUDIO CYCLE instead.
Local/club-specific: - "Join VASA Fitness OKC | Gym in Oklahoma City, OK | 2500 N Pennsylvania Ave 73107" — full street address in the ad title, landing on a club-specific page — the only hyper-local, address-level ad in the current-window sample.
Ambiguous competitor-conquest signal: - "Not all gyms are built the same - No Annual Commitment" and "$0 Down. Join VASA Today | Premium Fitness, $0 Down" both land on https://vasafitness.com/campaign-competitor/ — a URL path that reads as an internal "competitor" campaign name — but the matched keyword surfaced for both records is generic ("best gyms near me"), not a named competitor. Can't confirm which brand(s) this campaign actually targets from this sample.
Gaps vs. 24 Hour Fitness
24 Hour Fitness's own current SpyFu pull (24hourfitness.com, same methodology, pulled fresh this session) shows: - Free-trial/guest-pass framing as the lead hook on both sides — 24HF uses day-count specificity ("5-Day Free Pass," "3-Day Free Pass"); VASA's version is less day-specific ("Try VASA Before Joining," "1 Day. Zero Commitment," "Experience VASA Free"). Directionally the same play, different specificity. - A direct comparison ad naming Planet Fitness ("Better Than Planet Fitness?") on the 24HF side — VASA's current sample shows no equivalent named-competitor headline; its closest analog is the ambiguous /campaign-competitor/ landing page, which doesn't name a brand in the visible ad copy or matched keyword. - Amenity-specific copy — both brands run it, but VASA's is markedly more granular this pull: cold plunge, hot tub, steam, red light, hydro-massage lounge, KidCare, pickleball, turf, basketball court, vs. 24HF's shorter sauna/pool/recovery-zone/PT/group-classes list. VASA's amenity messaging reads as the more differentiated of the two on this axis. - Named sub-brand studio programs baked into ad titles (STUDIO RED HIIT, STUDIO CYCLE, VASA STUDIO) — 24HF's current sample shows no equivalent named in-club program in its search creative. - Seasonal/national-holiday tie-ins — 24HF's current window has an active "4th of July Sale" and "Our Lowest Price of the Year" summer promo. VASA's holiday-tied promos (Black Friday $9.99 deal, Year-End sale ending 12/31) both appear only in historical records (Nov 2025, Jan 2026) — nothing calendar-tied is active in VASA's current (≥ June 2026) sample. Either VASA's summer push is untimed/evergreen this year, or it simply didn't surface in this 50-record sample. - $1-down / low-entry-price framing — both brands lean on a low-dollar-entry mechanic: 24HF's "$1 Down," VASA's "$0 Down" (paired with "$14.99/mo" and, in one ad, "$9.99/Month"). VASA's is nominally the more aggressive entry offer ($0 vs. $1) if the sampled copy is representative. - Competitor-conquesting keyword footprint — 24HF's current sample shows a heavy, growing cluster (LA Fitness dominant, then Anytime Fitness, Planet Fitness, EōS Fitness, Chuze Fitness, Crunch, Gold's Gym), including a Riverside, CA cluster that conquests three brands in one local market. VASA does not appear anywhere in that 24HF sample. On VASA's side, the reciprocal signal is thin: a single bare "planetfitness" keyword (no space) in one ad's matched-keyword list, plus the two ambiguous /campaign-competitor/ landing-page ads noted above. VASA's absence from 24HF's competitor-keyword sample, and the near-absence of competitor terms in VASA's own sample, both read as "not a major conquesting target/actor for either brand right now" rather than confirmed zero — a 50-record sample per side can't rule out conquesting activity that simply didn't surface this pull.
Notable changes since last month
No prior spyfu-vasafitness.md exists at the project root or in the 2026-08 folder — this is the first-ever SpyFu pull for VASA Fitness in this pipeline, so there's no month-over-month comparison available. This pull should serve as the baseline for future deltas, in particular: - Whether the /campaign-competitor/ landing page persists and, if it does, whether a future pull's keyword sample reveals which brand(s) it actually targets. - Whether the named-studio angle in search ads (STUDIO RED HIIT, STUDIO CYCLE) expands to include STUDIO LFT, which is already prominent in VASA's paid-social creative this month per the Foreplay pull. - Whether a seasonal/summer promo becomes visible in search (it wasn't in this sample, despite Black Friday and Year-End promos showing up in historical records from the two prior seasonal windows).
Paid Social foreplay-vasafitness.md
Summary
VASA Fitness runs a brand-forward "more than a gym" acquisition engine anchored on a flat $14.99/mo starting price, layered with named in-club studio programs (STUDIO LFT, STUDIO RED HIIT) and a large, geographically active new-location presale pipeline (at least 6 cities in active pre-opening). This is the first-ever Foreplay pull for this brand, so no month-over-month deltas are available yet.
Creative inventory
635 ads launched since August 1, 2026, all confirmed live, by format: - DCO: 211 (33%) - Image: 260 (41%) - Video: 164 (26%) - Carousel: 0 — none found in this pull.
Counts confirmed via exhaustive per-format pagination (display_format filter + start_date=2026-08-01, each paginated to a null cursor), not estimated from a sample.
Messaging themes
Price/value (flat low-price anchor): - "Serious equipment. Serious coaches. Not-so-serious price. VASA Fitness — memberships from $14.99/month" — "Lift More. Stress Less." — View live ad ↗
Brand/amenity positioning ("more than a gym"): - "Strength, cardio, and recovery—all designed to help you feel your best. See what VASA has to offer." — "More Than a Gym" — View live ad ↗ - "Build strength, boost endurance, and recover better at VASA Fitness. Enjoy expansive strength and cardio floors, studio-style HIIT, yoga, and strength classes, plus premium recovery amenities including sauna, steam room, and more." — "Strong Starts Here" — View live ad ↗
Named studio sub-brands (a distinct differentiator not seen at other tracked competitors): - "Most studios skip the barbell. STUDIO LFT embraces the challenge. Coach-led, results-focused, and included in your STUDIO membership." — "A Coach Who Actually Shows Up for You." — View live ad ↗ - "STUDIO RED HIIT delivers coach-led high-intensity intervals in a red-lit studio. Studio-style energy without the large studio bill." — "Show Up. Push Hard. Feel Good Doing It." — View live ad ↗
Equipment/strength-training: - "Top-tier free weights, strength machines, and dedicated lifting platforms — without the top-tier price tag. Join VASA." — "Your Next PR Is Waiting Here." — View live ad ↗
New-location/presale ("Founding Memberships Available Now" / "VASA Fitness Is Coming to…" / "Are you ready [City]?") — at least 6 cities: - "Centennial, it's almost time to experience a new way to train... Become a founding member today. Strong starts here." — "Are you ready Centennial?" — View live ad ↗ - "Cedar Rapids, the wait is almost over. Secure your Founding Member rate today..." — "Founding Memberships Available Now" — View live ad ↗ - "Dearborn, it's almost time to experience a new way to train..." — "VASA Fitness Is Coming to Dearborn" — View live ad ↗
Influencer/UGC content — a notable one-off, distinct from the rest of the library: - "vasa is the best 🏋🏼♀️ @vasafitness #iamvasa #sponsored #vasafitness #vasacreator" — no headline, CTA BOOK_TRAVEL (a mismatched CTA type for a gym trial offer, worth flagging as a possible campaign-setup error), links to the free trial page — View live ad ↗
(8 of 8 examples include a link)
What's working (velocity signal)
All 635 ads sampled are live; none inactive. started_running spans ten distinct days (Aug 1 through Aug 10), a rolling daily-refresh pattern rather than a single mass batch. The named-studio-program creative (STUDIO LFT, STUDIO RED HIIT) and the presale/new-location creative both recur across multiple days rather than appearing only once, suggesting these are treated as more durable campaigns than the broader evergreen "More Than a Gym" / price-anchor wave. As this is the brand's first-ever pull, true multi-week persistence can't yet be confirmed — a later pull showing today's Aug 1–3 creative still live would be the first real signal.
Notable changes since last month
No prior VASA Fitness Foreplay pull exists in this project — this is the brand's first-ever pull, so there is no baseline to compare against. Findings above should serve as the baseline for future month-over-month deltas, in particular: whether the named studio-program angle (LFT, RED HIIT) persists or fades, and whether the presale pipeline expands beyond the ~6 cities currently seen (Centennial CO, Cedar Rapids IA, Mt Prospect IL, Dearborn MI, Boise ID, plus at least one more).
Landing Pages landing-page-vasafitness.md
URLs reviewed
Merged and deduped from spyfu-vasafitness.md (search) and foreplay-vasafitness.md (social); location URLs deduped by path, ignoring UTM query strings. 11 unique URLs:
https://vasafitness.com/— [search]https://vasafitness.com/trial/— [both]https://vasafitness.com/join/— [both]https://vasafitness.com/membership-plans/studio/— [search]https://vasafitness.com/campaign-competitor/— [search]https://vasafitness.com/locations/ok/oklahoma-city-pennsylvania-ave/— [search]https://vasafitness.com/locations/co/centennial-arapahoe/— [social]https://vasafitness.com/locations/ia/cedar-rapids/— [social]https://vasafitness.com/locations/il/mount-prospect/— [social]https://vasafitness.com/locations/mi/dearborn/— [social]https://vasafitness.com/locations/id/boise-fairview/— [social]
Sample fetched (7 of 11 URLs, covering all 5 distinct page templates found): homepage, /join/, /trial/, /membership-plans/studio/, /campaign-competitor/, the OKC existing-club location page, and the Centennial presale location page. The four remaining presale location URLs (Cedar Rapids, Mount Prospect, Dearborn, Boise) were not individually fetched — the Centennial fetch confirms the presale-location template, and per the Foreplay data all four share that same /locations/[state]/[city]/ structure and nco ("new club opening") campaign tagging, so they're treated as instances of the same template rather than fetched separately.
Fetch failure: https://vasafitness.com/join/ returned an HTTP 200 with a text/html content-type but an empty body on two separate fetch attempts (with and without trailing slash) — no title, no visible content. This is very likely a JavaScript-rendered checkout/membership-selection flow that doesn't serve crawlable markup to a basic fetch, not a broken URL. Messaging/focus/source-alignment claims about /join/ below are inferred only from its role as a link target (seen dozens of times across both the SpyFu and Foreplay pulls) and from the "JOIN NOW" tier buttons on other pages that route through /join/?membership-type=... — not from its own rendered content, which could not be observed.
Messaging
Homepage (/) — Rotating headline "A Gym For [Community / Everybody / All Levels / Your Goals / Living Better / You]," a persistent "$14.99/mo" price badge, and "Join Now" as the primary CTA. Below the fold: a "Find the Right Membership" section (three tiers), a dedicated STUDIO cross-sell block (STUDIO LFT / STUDIO RED HIIT / STUDIO FLOW, each with its own "Learn More"), a large amenities grid, a locations module, and a "Free 1-Day Gym Pass" secondary offer. Value prop is broad "more than a gym" positioning backed by the $14.99 entry price.
Trial page (/trial/) — Headline "FREE GYM PASS," sub-head "Fill this out. Get a text. Work Out." Page is noindex, nofollow (confirmed ad-only lander, not meant to rank organically). The offer is a location-bound 1-day guest pass captured via SMS opt-in. Below the capture form, the page repeats the homepage's full membership-tier pricing (BASIC $9.99–$14.99, FITNESS $19.99–$24.99, STUDIO $39.99–$44.99 depending on which page — see pricing-inconsistency note below), amenities grid, and testimonials — so it isn't a lean single-offer lander, it's the trial form bolted onto most of the homepage's content.
Studio membership page (/membership-plans/studio/) — Headline "STUDIO MEMBERSHIP PLAN — Unlimited Access to Everything + Exclusive Perks." This is the one page that actually goes deep on the named studio sub-brands: individual descriptions and "About" links for STUDIO LFT, STUDIO RED HIIT, and STUDIO FLOW, framed as "the perfect trifecta" and pitched as cheaper than "boutique studios." CTA: "JOIN NOW" / "GET A FREE PASS."
Campaign-competitor page (/campaign-competitor/) — Also noindex, nofollow — an ad-only lander, titled internally "Campaign Competitor." Headline "NOT ALL GYMS ARE BUILT THE SAME," sub-head "Come Sweat With Us... No sales pitch. No pressure." Includes a comparison table: "VASA STUDIO" vs. "Other Gyms" ($60+/mo) vs. "Other Studios" ($159+/mo), with feature checkmarks for recovery amenities, basketball, pool, child care, etc. CTA is the same "Fill this out. Get a text. Work Out." trial-pass form used on /trial/.
Existing-club location page (OKC – Pennsylvania Ave) — Headline "Gym Memberships In Oklahoma City (Pennsylvania Ave)," "$14.99/mo, No commitment." Full local detail: address, hours, phone, KidCare hours. Three JOIN buttons (BASIC/FITNESS/STUDIO) each carrying a live promo ("Special Offer! Ends 5/31," "1st Month Free! Ends 5/31") baked into the button copy itself. Repeats the homepage's full amenity catalog and STUDIO cross-sell.
Presale/new-location page (Centennial, CO) — Same template as the OKC page, with an "Opening Fall 2026" badge and "GET OPENING UPDATES" SMS opt-in replacing the standard trial-pass CTA (a "This location is not open yet" message appears where the trial-pass form would normally sit). Same three-tier JOIN buttons with promo copy, same full amenity catalog and STUDIO cross-sell as the live-club template — confirming this is the identical location-page template with an "opening soon" state layered on top, not a separate presale-specific design.
Pricing inconsistency flagged: STUDIO tier shows as $39.99/mo on the homepage/trial fetch but $44.99/mo on the campaign-competitor page and both location pages fetched; FITNESS shows $19.99 vs. $24.99; BASIC shows $9.99 vs. $14.99 in the same comparison. This may reflect a live A/B test, a location-based pricing variant, or a stale cached price on one template — can't determine which from a static fetch, but it's a real cross-page inconsistency worth a spot-check next pull.
Visual trends
Limitation: a page fetch returns structure and text, not rendered design — no real colors, photography treatment, or layout feel are observable this way. The notes below are inferred only from what the markup and metadata actually expose, not invented.
- Brand color:
meta-theme-colorandapple-mobile-web-app-status-bar-styleare set to#E31C37(a red) on every page fetched — a consistent, deliberate brand color signal across the whole site, not a guess. - Logo variants: each page loads three logo assets (horizontal grey, white, and a "lettermark") — suggests an adaptive header designed to sit on both light and dark hero backgrounds.
- Photography scope: an extensive, consistently-named amenity photo library (cold plunge, hot tub, sauna/steam, turf, basketball, cardio deck, massage lounge, etc.) is reused near-identically across the homepage, trial page, campaign-competitor page, and both location-page templates — this is a shared asset library rebuilt into the same page structure repeatedly, not custom photography per page.
- Video use: the STUDIO tier's pricing card embeds a video file where the BASIC and FITNESS tier cards use static images — the only place a production-quality asymmetry between tiers is structurally visible, suggesting the premium STUDIO tier gets the more produced treatment.
- Comparison table structure: the campaign-competitor page's "VASA vs. Other Gyms and Studios" is a structured checkmark table — a data-forward comparison layout, though the actual visual styling (colors, icons) isn't observable from the fetch.
- Beyond these structural signals, no claims are made about actual layout density, whitespace, typography, or photographic style — those require rendered/visual inspection this method doesn't provide.
Focus
- Homepage: nominally "Join Now," but the page runs long with several competing CTAs (Join Now, Free Trial, View Memberships, View All Locations, per-STUDIO "Learn More" links) — reads as a broad top-of-funnel hub rather than a single-action page.
- Trial page: starts tightly focused on the lead-capture form, but then appends the homepage's full pricing/amenities/testimonial content below it — dilutes what should be a lean single-offer PPC lander (reinforced by its
noindex, nofollowtag, confirming it's built for paid traffic only). - Studio membership page: the most on-message page in the sample — a single-product deep dive on STUDIO with minimal scope creep, ending on one clear "Become a VASA Member Today" / "Join Now" push.
- Campaign-competitor page: stays reasonably tight around the 1-day trial-pass CTA; the comparison table supports rather than distracts from that action.
- Location pages (both live and presale): ostensibly "pick a tier and join" (or "get opening updates" pre-launch), but structurally these are the homepage template cloned per city — full amenity catalog, testimonials, STUDIO cross-sell, and trainer bios repeat verbatim. The core local action is buried under the same broad content every other page carries, rather than functioning as a lean local lander.
Source alignment
- Amenity-led search ads (cold plunge, hot tub, sauna, steam, red light) → land on the homepage or location pages, both of which carry the same extensive recovery-amenity sections. Strong alignment.
- "$0 Down / No Annual Commitment" search ads → land on
/trial/or/join/. The location-page JOIN buttons do show live enrollment-fee promos (some as low as $0.00–$0.99 down), so the mechanic is present in the funnel, but it isn't restated as headline copy on/trial/itself — a soft, not severe, gap. - "1st Month STUDIO Free" search ad → most plausibly lands on
/membership-plans/studio/, which delivers relevant STUDIO content (LFT/RED/FLOW breakdown) but the fetched version of that page did not show "1st Month Free" language — that specific offer text only appeared on the OKC location page's JOIN buttons. If the ad and its stated landing URL genuinely don't carry matching promo copy, that's a real promise/delivery gap worth flagging for a future pull. - Named-studio social ads (STUDIO LFT, STUDIO RED HIIT) — this is the specific check the brief called out, and it's a real finding: per the Foreplay data, VASA's STUDIO LFT ad ("Most studios skip the barbell...") and STUDIO RED HIIT ad both link out through the generic evergreen
/join/funnel, not a STUDIO-specific lander. The only page in this whole sample that gives STUDIO LFT/RED/FLOW a dedicated, detailed treatment —/membership-plans/studio/— appeared exclusively in the search URL list, not the social one. So someone clicking a STUDIO LFT-branded social ad is very likely funneled into the same generic join/location flow as everyone else, not into content that reflects the specific studio program that got them to click. That's a genuine promise-to-landing gap on the social side. - New-location/presale social ads ("Are you ready Centennial?", "Founding Memberships Available Now") → land on the matching
/locations/[state]/[city]/page, which does open with the matching city name and an "Opening Fall 2026" badge — strong geographic/timing alignment. One softer gap: the ad copy specifically promises a "Founding Member" rate, but the fetched Centennial page's JOIN buttons show discounted enrollment fees without the label "Founding Member" anywhere in the visible copy — the discount may be the founding rate, just not named as such on the page. - Influencer/UGC social ad (mismatched
BOOK_TRAVELCTA, per the Foreplay pull) links to/trial/, which is a coherent destination for a trial offer regardless of the CTA-type mismatch — the landing page itself isn't the problem here, the ad's own CTA metadata is.
Search vs. social comparison
The two channels point at meaningfully different page sets, not the same page reused twice.
- Search's distinct URLs skew toward decision/comparison content: a hyper-local existing-club page (OKC, matching "gym in oklahoma city" -style queries), a dedicated STUDIO product page, and a "not all gyms are built the same" competitive-comparison lander with an explicit price table. This fits high-intent search behavior — someone typing "gym with sauna near me" or "best gyms near me" is comparison-shopping and gets substantiating detail.
- Social's distinct URLs skew toward geographic expansion/awareness: four of five social-only URLs in this sample are presale "new club opening" pages for markets that aren't open yet (Centennial, Cedar Rapids, Mount Prospect, Dearborn, Boise). This is a distinctly social-first play — building local excitement and capturing early-access signups ahead of a physical opening, leaning on social's strength in geo-targeted community-building rather than search's capture-existing-intent model.
- Shared backbone:
/join/and/trial/are the only two URLs common to both lists, functioning as the generic bottom-of-funnel capture mechanism for both channels. Both channels route a large share of traffic through the exact same generic pages despite very different ad promises feeding into them (search's specific $-down/no-commitment mechanics vs. social's broader "more than a gym" brand messaging and, in some cases, named-studio-program hooks) — meaning these shared pages have to serve two different audience intents without being tailored to either. - What this suggests: VASA appears to use search primarily as a "prove it" channel — matching specific local/product intent with detailed local and product pages — and social primarily as a "build excitement/expand footprint" channel, with presale/new-market pages as a signature social play search doesn't have an equivalent for. The named-studio sub-brand angle (STUDIO LFT, STUDIO RED HIIT) is prominent in both channels' ad creative, but only search's URL set actually lands users on a page that develops that angle — on social, that message currently dead-ends into the same generic join/location funnel as every other ad.
Chuze Fitness
Paid search, paid social & landing page analysis — August 2026
Paid Search spyfu-chuze.md
Summary
Chuze Fitness's current paid search (June–August 2026) is anchored by a Riverside, CA market push — a new-club-opening ad ("Chuze Riverside is Now Open — Magnolia Town Center") paired with keyword targeting aggressive enough to bid directly on LA Fitness's and EōS Fitness's own "free pass riverside" search terms in that market. Ad copy has shifted from the month-specific enrollment-fee promos seen January–May ("$1 Enrollment for March 2026," "$0 Enrollment Till End of Feb," "$4 to Enroll + 4 Weeks Free") to evergreen trial/no-commitment framing ("Enjoy Chuze Free for 7 Days," "No-Commitment Plans Available") in the current window, layered over a steady $9.99/mo price anchor. The keyword portfolio skews overwhelmingly non-branded and generic — a contrast to Planet Fitness's brand-defense-heavy pattern — with notable broad-match sprawl into markets far outside Chuze's actual four-state footprint (AZ, CA, CO, NM).
Keyword portfolio
- 50 ad records pulled (full response returned inline this pull — no file/grep workaround needed, see Data notes). Each record carries a matched-keyword list rather than a flat keyword list.
- Summing keyword-list lengths across all 50 records gives ~268 raw keyword instances; accounting for heavy repetition (e.g., "gym near me" recurs across 6+ records, riverside-cluster terms repeat across three separate ad records), the deduplicated portfolio is roughly 220–260 distinct keyword strings in this sample.
- Branded vs. non-branded is lopsided toward non-branded: roughly 19 keyword instances are explicitly branded ("chuze fitness [city/zip]," "chuze fitness membership riverside," "chuze fitness hours san diego," "chuze albuquerque," "chuze winrock," "chuze gym," etc. — about 7% of the sample), 3 are competitor-conquest terms ("eos fitness free pass riverside," "la fitness free pass riverside," "fitness mania free pass riverside" — ~1%), and the remaining ~92% are generic, non-branded gym-intent terms: "gym near me," "fitness center near me," "cheap gyms near me," "gym with pool," "gym with sauna in [city]," "24 hour health clubs," "24 hour gym near me," plus dozens of city-qualified variants.
- Geographic sprawl beyond Chuze's footprint: one large keyword list (record with adId -529421045, current window, searchDateId 20260801) includes generic city-gym terms for Nashville TN, Chattanooga TN, Chester VA, Fredericksburg VA, Hampton Roads VA, Lynchburg VA, Laurel MD, Maryland (state-level), Grove City OH, Hilliard OH, Denton TX, Raleigh NC, Fort Myers FL, Stuart FL, Plantation FL, Decatur GA, Atlanta GA, Omaha NE, Nassau County NY, East Lansing MI — none of which are Chuze markets (Chuze operates only in AZ, CA, CO, NM). This reads like broad-match keyword expansion catching generic "gyms in [city]" searches nationally rather than deliberate geo-targeting.
- Legitimate/actual-footprint geographic targeting concentrates on: Riverside CA (heaviest, including a specific new-club-opening push), Thornton CO, Westminster CO, Littleton CO, Denver CO, Tucson AZ, Albuquerque NM, San Diego CA, Norco CA, San Dimas CA, Bakersfield CA, La Mesa CA.
- No click/spend/CPC data present in this export — branded vs. non-branded spend split isn't available, only keyword-count share.
- Data spans searchDateId 20210901 to 20260801. 13 of 50 records fall in the current window (≥20260601): 4 dated 20260801, 4 dated 20260701, 5 dated 20260601.
Ad copy themes
Trial/free-pass led (dominant theme in the current window): - "No-Commitment Plans Available | Enjoy Chuze Free for 7 Days" — "So Many Perks With A Chuze Gym Membership. Group Fitness, Circuit Training And More. Get a Free 7-Day Pass at a Gym That's Beyond Friendly, Beyond Spotless, Beyond Equipped." - "Try Chuze Fitness for Free - Come Visit Chuze Fitness Today" — "The Bigger, Nicer, Cleaner, Friendlier Gym Free for 7-Days!" - "chuzefitness.com" (Riverside-targeted) — "Visit Chuze with a free pass and see why members love working out here... Amenities: Cardio, Free Weights, Weight Floor, Hyrdomassage, Relaxation Room, Recovery Room."
Value/price (steady $9.99 anchor, mechanic simplified vs. earlier in the year): - "As Low as $9.99/m. Join Now | Luxury Gym - Affordable Prices" — "The Best Gym Workout. Free Weights, Group Fitness, Saunas and More at Chuze." - "Join Chuze Fitness | Memberships start at $9.99/mo" (Riverside) — "Join a gym that's beyond friendly, beyond spotless, beyond well-equipped... Family Friendly Amenities." - "Memberships as Low as $9.99 | Luxury Gym - Affordable Prices" — "Amenities: Group Fitness (Ground X), Yoga, Zumba."
New-location/expansion (notable, current): - "Chuze Riverside is Now Open - Magnolia Town Center" — "The Bigger, Nicer, Cleaner, Friendlier Gym Free for 7-Days! You're Only One Workout Away From A Good Mood, Start Today!" (keyword: "24 hour gym near me")
Amenity/named-zone brand voice: Recurring amenity call-outs across the current sample: sauna, pool/hot tub, hydromassage, relaxation room, recovery room, massage chairs, and one named studio brand — "Group Fitness (Ground X)" — echoing the named-amenity-zone convention (Lift Lab, Studio IR) seen in Chuze's Foreplay/social pull. "Studio IR" itself appears in an adjacent-but-not-current record (Feb 2026), so the naming convention predates this window but persists into it via Ground X.
Soft/lifestyle tone bleed: "You're Only One Workout Away From A Good Mood, Start Today!" and "beyond friendly, beyond spotless, beyond well-equipped" recur across both current and recent-historical ads — the closest search-copy equivalent to the "good vibes" brand voice Chuze runs on paid social, though it's secondary to hard price/enrollment framing in nearly every ad.
Historical-only, not current: month-specific enrollment-fee mechanics ("$1 Enrollment for March 2026," "$0 Enrollment Till End of Feb," "$4 to Enroll + 4 Weeks Free," a January "New Year Sale") ran January–May 2026 but don't appear in the June–August sample — see Notable changes below. One January 2026 record (non-current) also surfaces legacy "Bailey's" branding ("So Many Perks With A Bailey's Gym Membership") rather than "Chuze" — likely leftover copy from a Bailey's Fitness club Chuze rebranded, flagged as a minor/historical data artifact, not current activity.
Gaps vs. 24 Hour Fitness
- Free-trial framing: both brands lead with it, different lengths. 24 Hour Fitness leads with 3–5 day free passes; Chuze's current sample consistently offers a 7-day free trial ("Enjoy Chuze Free for 7 Days," "Claim a 7-Day Pass"). Chuze's trial is longer, which could be worth noting in messaging comparisons.
- Direct competitor-naming in ad copy vs. keyword-level conquesting. 24 Hour Fitness now runs a headline that names a competitor directly ("Better Than Planet Fitness?"). Chuze's current sample shows no equivalent named-competitor ad copy, but it does the inverse at the keyword level: it bids on "eos fitness free pass riverside" and "la fitness free pass riverside" to trigger its own ads in that market — aggressive conquesting without putting the competitor's name in the visible headline/body.
- Riverside, CA is a live three-way (at least) local battleground. 24 Hour Fitness's own current SpyFu sample bids on "chuze fitness membership riverside" and "chuze fitness hours riverside." Chuze's current sample reciprocally bids on LA Fitness's and EōS Fitness's Riverside free-pass terms — but no "24 hour fitness" keyword appears anywhere in Chuze's 50-record sample, current or historical. Chuze does not appear to be conquesting 24 Hour Fitness by name in Riverside (or anywhere else in this sample), even though 24 Hour Fitness is conquesting Chuze there. Worth flagging as an asymmetric opportunity/risk.
- Amenity-specific copy: both brands lean on it, Chuze's list is longer. 24 Hour Fitness cites sauna, pool, recovery zone, personal training, group classes. Chuze's current ads cite sauna, pool/hot tub, hydromassage, relaxation room, recovery room, massage chairs, and named studio zones (Ground X) — a denser amenity list, though without 24HF's "recovery zone" framing specifically.
- National/seasonal promo tie-ins: 24HF has them, Chuze's current window doesn't. 24 Hour Fitness runs calendar-anchored national promos ("4th of July Sale," "Our Lowest Price of the Year"). Chuze ran calendar-tied promos earlier in 2026 (New Year Sale, "$1 Enrollment for March 2026") but the June–August sample shows no equivalent seasonal/holiday hook — current messaging is evergreen (trial-led, "No-Commitment Plans").
- $1-down / low-enrollment framing: 24HF still runs it, Chuze has moved off it (for now). 24 Hour Fitness's current sample leads several ads with "$1 Down." Chuze ran comparable low-enrollment-fee mechanics ($1, $4, $0 enrollment) January–May 2026, but none appear in the current window — replaced by "No-Commitment Plans Available" and straight $9.99/mo pricing.
- Landing page centralization: both brands are largely centralized, Chuze adds one club-specific page for the Riverside launch. 24 Hour Fitness uses centralized national pages (
/membership/free-guest-gym-pass,/promo/specials/...). Chuze's current pattern is similarly centralized (/trial/,/membership/join-now/) but adds a club-specific/gym-locations/ca/riverside/page tied to the new-club opening — a hybrid, not the near-universal per-club pattern Planet Fitness runs. - Search vs. social brand voice. Chuze's Foreplay (paid social) pull this month emphasized a "good vibes" tone and named amenity zones (Lift Lab, Studio IR). SpyFu search copy shows a fainter version of that tone ("You're Only One Workout Away From A Good Mood," "beyond friendly, beyond spotless, beyond well-equipped") and one matching named zone (Ground X), but search reads considerably more transactional/price-led overall — $9.99/mo, enrollment mechanics, and trial-length are the dominant hooks, not lifestyle messaging. Chuze's search presence is a more price-forward version of its social brand.
Notable changes since last month
This is the first-ever SpyFu pull for Chuze Fitness — no spyfu-chuze.md exists anywhere in the project (root or prior monthly folders), so there is no prior-month baseline to diff against. Flagging this explicitly per the framework's Month-over-month deltas item: next month's pull should be the first real comparison point.
Within this single pull, the trailing 12 months of data show one clear internal trend worth carrying forward as a baseline: month-specific, dollar-amount enrollment-fee promos ("$1 Enrollment for March 2026," "$0 Enrollment Till End of Feb," "$4 to Enroll + 4 Weeks Free," January "New Year Sale") ran steadily January–May 2026, then disappear from the June–August sample in favor of evergreen "No-Commitment Plans Available" / free-trial framing at a flat $9.99/mo. Also new/notable: the Riverside, CA club-opening ad and its associated LA Fitness / EōS Fitness conquest keywords are new activity within the current window (searchDateId 20260601–20260801) — worth checking again next pull to see if this Riverside push persists, expands to other new-club markets, or was a one-time launch campaign.
Paid Social foreplay-chuze.md
Summary
Chuze Fitness runs a much smaller, lower-volume creative library than the other tracked competitors (247 active ads in the trailing 60 days, vs. hundreds to thousands for Planet Fitness, EōS, and VASA), built around a "good vibes" brand voice, a flat evergreen $1-to-enroll + 14-days-free offer, and an active new-club opening pipeline across at least 5 markets (Long Beach, North Mesa TX, Lakewood CO, Fresno CA, Riverside CA). This is the first-ever Foreplay pull for this brand, so no month-over-month deltas are available yet.
Creative inventory
247 ads confirmed live within the trailing 60 days (June 12 – August 11, 2026), by format: - DCO: 149 (60%) - Image: 73 (30%) - Video: 18 (7%) - Carousel: 7 (3%)
Counts confirmed via exhaustive per-format pagination (display_format filter + start_date=2026-06-12, each paginated to a null cursor), not estimated from a sample. Note: a handful of additional ads (3 video units) were found live but dated mid-April 2026 — outside the 60-day window — and excluded from this count.
Messaging themes
Evergreen brand/value (dominant theme, the flat year-round offer): - "Join Chuze Fitness with $1 to enroll + get 14 days free so your days can look more like: staying longer than you planned, finding fewer reasons to skip tomorrow, making your excuses a little less convincing." — "A Little Fitness. A Lot of Good Vibes." — View live ad ↗ - "Between Lift Lab, Recovery Studio, group fitness classes, smoothies, and a welcoming community...Chuze makes it a whole lot easier to show up. Get started with $4 to enroll + 4 weeks free." — "Come for the workout. Stay for the positive vibes." — View live ad ↗
Free 7-Day Pass (top-of-funnel trial offer, runs alongside the paid enrollment offer): - "Bring your 'I'll start tomorrows' and your 'maybe somedays.' ...Your FREE 7-day pass is like a friendly invitation to a healthier you." — "Claim Your 7-Day Free Pass" — View live ad ↗
Named amenity zones (a differentiator, similar in spirit to VASA's studio sub-brands): - "The Lift Lab has officially entered the chat. We built an entire zone dedicated to powering up, hitting new records, and building serious strength." — "Feeling Strong. Vibing Hard." — View live ad ↗ - "The Studio IR at Chuze Fitness delivers a boutique-style fitness experience—without the boutique price tag. Get ready for heated Yoga, Barre, and more." — "Heated classes to level up" — View live ad ↗
New-location/presale — multiple sub-tactics across at least 5 cities: - Pre-opening low price: "Chuze Fitness is coming to Fresno! ...Join for $0 Enrollment... Pre-opening memberships start as low as $9.99/mo." — "Memberships as low as $9.99/mo!" — View live ad ↗ - Sweepstakes: "Something BIG is coming to Fresno! ...we're giving away a FREE 1-Year Membership." — "Big news, FRESNO 📢" — View live ad ↗ - Grand-opening "come see it" with an Instagram-profile CTA (unusual — routes to the brand's Instagram rather than a landing page): "Long Beach... your scroll brought you here for a reason. 👀 Take a quick lap around your newest Chuze..." — CTA VIEW_INSTAGRAM_PROFILE — View live ad ↗
Renovation/refresh (existing clubs, not new-market): - "Our NEWLY RENOVATED Chuze Fitness locations are waiting! ...Discover what $10 MILLION in renovations looks like." — "Get Your Free Pass!" — View live ad ↗
(7 of 7 examples include a link)
What's working (velocity signal)
All 247 ads sampled are live. Unlike the other tracked brands' near-daily refresh cadence, Chuze's creative clusters into fewer, more widely-spaced batches — a large DCO/image wave around June 22, another around Aug 1, and smaller top-ups since — suggesting a lower-frequency, more deliberate refresh cycle rather than daily rotation. The named-amenity creative (Lift Lab, Studio IR) and the evergreen "$1 to enroll" wave both recur across multiple batch dates, indicating those are the brand's most durable, repeatedly-relaunched messages. As this is the brand's first-ever pull, true multi-week persistence can't yet be confirmed — a later pull showing today's creative still live would be the first real signal.
Notable changes since last month
No prior Chuze Fitness Foreplay pull exists in this project — this is the brand's first-ever pull, so there is no baseline to compare against. Findings above should serve as the baseline for future month-over-month deltas, in particular: whether the new-club pipeline (currently Long Beach, North Mesa, Lakewood, Fresno, Riverside) expands or contracts, and whether the unusual VIEW_INSTAGRAM_PROFILE CTA pattern persists.
Landing Pages landing-page-chuze.md
URLs reviewed
18 unique URLs after merging spyfu-chuze.md and foreplay-chuze.md. All are on chuzefitness.com except the one Instagram destination noted below.
[both] (appear in both SpyFu and Foreplay lists — the shared conversion backbone) - https://chuzefitness.com/trial/ - https://chuzefitness.com/membership/join-now/ - https://chuzefitness.com/gym-locations/ca/riverside/
[search] (SpyFu only) - https://chuzefitness.com/ (homepage) - https://chuzefitness.com/locations/ (generic locator) - https://chuzefitness.com/gym-locations/az/ (state-level locator) - https://chuzefitness.com/amenity/traditional-sauna/ - https://chuzefitness.com/amenity/pool-hot-tub/ - https://chuzefitness.com/gym-locations/ca/rancho-cucamonga/ - https://chuzefitness.com/gym-locations/ca/rialto/
[social] (Foreplay only) - https://chuzefitness.com/amenity/lift-lab/ - https://chuzefitness.com/amenity/the-studio/ - https://chuzefitness.com/gym-locations/ca/fresno/ - https://chuzefitness.com/gym-locations/co/lakewood/ - https://chuzefitness.com/gym-locations/tx/northmesa/ - https://chuzefitness.com/gym-locations/tx/miramesa-2/ - https://chuzefitness.com/1-year-membership-giveaway - http://instagram.com/chuzefitness (not a Chuze-owned landing page — see Source alignment)
Fetch coverage: Fetched 12 of the 18 URLs directly, chosen to cover every distinct page template rather than every city variant: homepage, join-now, trial, two generic locators (site-wide /locations/ and state-level /gym-locations/az/), two presale/new-club pages at different lifecycle stages (Riverside — now open; Fresno — coming 2026, pre-sale), three amenity pages (Lift Lab, The Studio IR, Pool & Hot Tub), the 1-year-membership-giveaway sweepstakes page, and the Instagram destination. All 11 chuzefitness.com fetches succeeded; the Instagram fetch returned no usable page content (see Source alignment). The remaining 6 unfetched URLs (traditional-sauna; rancho-cucamonga and rialto locations; lakewood and northmesa presale pages; miramesa-2) share a template with pages that were fetched — amenity template or gym-locations presale/directory template — so the sample is representative of the full set.
Messaging
- Homepage (
/): Hero banner headline "Get $1 Enrollment + 14 Days Free!" with a countdown-timer sticky offer bar site-wide. Brand-voice sections follow ("You deserve an awesome gym. Yes, you!", "Less Attitude. More Fitness.") plus a testimonial carousel, awards list, and a "$9.99/month" pricing recap. CTAs: "FIND A CHUZE," "Join Chuze Now," "TRY A 7-DAY PASS" — three distinct asks compete for the click. - Join Now (
/membership/join-now/): Headline "Join Today." Pure transactional funnel — location picker → plan selection → member info → payment — with the same sticky "$1 Enrollment + 14 Days Free" offer bar but no brand storytelling on the page itself. - Trial (
/trial/): Headline "Get a Free 7-Day Pass," subhead "We're so confident that you'll love all that Chuze has to offer that we'll let you try it for free for 7 days!" Location picker generates the trial signup form. Reuses the homepage's "Anatomy of a Chuze Gym" amenity-grid content below the fold. - Generic locators (
/locations/,/gym-locations/az/): No persuasive headline — utility-first directory of clubs with address/hours/phone and "VIEW LOCATION PAGE" / "JOIN NOW" / "VIEW CLASS SCHEDULE" links per club. - Riverside — now open (
/gym-locations/ca/riverside/): Headline "Gym in Riverside, CA (NOW OPEN) - Magnolia Town Center." Locally-flavored copy naming specific amenities (Lift Lab, Recovery Studio, Chuze Cinema, Studio IR, smoothie bar). Full pricing table with a real expiration date ("Expires on 8/10/26") and "$1 Enrollment + 14 Days Free" per tier. - Fresno — presale/coming 2026 (
/gym-locations/ca/fresno/): Headline "Fresno: West Shaw (Coming in 2026)." Different offer mechanic than Riverside — "$0.00 Enrollment," "First 500" quantity-scarcity framing instead of a date deadline. Heavy FAQ block and a "high-energy, feel-good fitness vibes... find your tribe" brand-voice paragraph that is literally repeated ten times in the fetched page content — reads like a CMS/templating bug rather than intentional repetition, worth a QA flag independent of messaging strategy. - Amenity pages (Lift Lab, The Studio IR, Pool & Hot Tub): Single-amenity brand storytelling ("Welcome to the Lift Lab... your private playground for gains," "'Hot' Studio Classes... Raise the temp on your workout") plus a list of every location offering that amenity, ending in a generic Join/Free Trial CTA. Note: the sticky-footer offer amount differed across these three pages when fetched ($1, $4, and $0.04 enrollment on different pages) — consistent with a dynamically-served current promo rather than one fixed number, but worth knowing the enrollment fee isn't uniform sitewide at any given moment.
- 1-year-membership-giveaway: Thin sweepstakes/lead-gen page. Headline "You deserve an awesome gym. Yes, you!," minimal copy, single email-capture form tied to a future-club location choice. No product/amenity/pricing content at all.
- Instagram destination: See Source alignment — no fetchable landing-page content exists at this URL.
Visual trends
Fetches return page structure and text only, not rendered visual design — no real color palette, photography treatment, or layout feel is directly observable, and nothing below should be read as a substitute for that. What is inferable from structure and metadata: og:image tags show wide-format (1920–2048px) photography on the homepage and club pages, consistent with a photography-led hero treatment rather than illustration/graphic-led design. Club pages (Riverside, Fresno) include a "VIRTUAL TOUR / IMAGE GALLERY" toggle and a 10-frame numbered image carousel, suggesting a heavier visual/tour-style presentation at the local-club level than at the amenity or utility pages. A countdown-timer sticky offer bar with expiring pricing appears site-wide across every page fetched, which is a structural/UX pattern (urgency mechanic), not a visual-design one. No basis in this fetch method to describe actual color use, typography, or true layout density — flagging that limitation explicitly rather than guessing.
Focus
- Join Now: single-minded — no distraction, the cleanest funnel of the set.
- Trial: single-minded — one location picker, one form, one ask.
- Locators: consistent utility focus (find a club), feeding cleanly into Join/Schedule.
- Amenity pages: focus stays on educating about the amenity, with a soft Join/Trial CTA only at the very bottom — doesn't get cluttered.
- Giveaway: single email-capture focus, no distraction — but also no reinforcing brand or product content.
- Homepage: split focus. Four competing CTAs (Find a Chuze, Join Now, 7-Day Trial, and an embedded "Get on the list" email opt-in) mean the page doesn't drive toward one action cleanly — it's serving brand-discovery, locator, and both conversion offers simultaneously.
- Riverside (now open): mostly on-message around the local launch, but still carries three CTAs (per-tier Join Now, Try a 7-Day Pass, and a contact form) — a milder version of the homepage's split-focus problem.
- Fresno (presale): reasonably coherent dual focus (pre-sale signup + "stay in the loop" email capture for not-yet-ready visitors), which fits a not-yet-open club's actual funnel need better than Riverside's three-way split does.
Source alignment
- SpyFu's dominant current theme, "Enjoy Chuze Free for 7 Days" / "No-Commitment Plans Available," lands on
/trial/, whose headline ("Get a Free 7-Day Pass") matches almost verbatim — strong alignment. - SpyFu's "Chuze Riverside is Now Open" ad matches the Riverside page's headline exactly and carries through to a real, date-bound expiring offer on the page — strong alignment with genuine urgency.
- SpyFu's flat "$9.99/mo" price-anchor ads land on
/membership/join-now/, which does show $9.99/mo as a base tier but leads visually with "$1 Enrollment + 14 Days Free" — a minor mechanic mismatch (ad emphasizes the monthly price, the live page emphasizes the enrollment-fee promo) rather than a hard broken promise. - Foreplay's evergreen "$1 to enroll + 14 days free... A Little Fitness. A Lot of Good Vibes" ads land on the same
/trial/and/membership/join-now/pages, but/membership/join-now/in particular carries none of that "good vibes" copywriting voice — it's a bare multi-step checkout form (location → plan → member info → payment). This is a real tone gap: the ad sells personality, the page delivers a transaction. - Foreplay's named-amenity ads (Lift Lab, Studio IR) land on
/amenity/lift-lab/and/amenity/the-studio/, which carry the same brand voice as the ads ("your private playground for gains," "a lot of good vibes," "Raise the temp") — strong alignment, the best voice-match in the set. - Foreplay's Fresno presale ad ("$0 Enrollment... Memberships as low as $9.99/mo") matches the Fresno page's actual pricing and adds reinforcing scarcity ("First 500") not present in the ad copy — alignment holds and the page arguably strengthens the offer.
- Foreplay's sweepstakes ad ("giving away a FREE 1-Year Membership") matches the giveaway page's premise, but the page itself is thin — a single email form with no amenity, pricing, or brand content to reinforce why someone should want to win.
- Foreplay's
VIEW_INSTAGRAM_PROFILECTA gap is confirmed by this fetch. The grand-opening ad copy ("Take a quick lap around your newest Chuze...") promises a look at the new club, but the CTA routes toinstagram.com/chuzefitness— attempting to fetch that URL returned no retrievable page content at all (consistent with a client-rendered social profile, not a marketing landing page). Structurally, this is the one destination in the entire URL set with no address, hours, pricing, join CTA, or location-specific content of any kind. A user who clicks that ad lands on a generic Instagram feed and has to self-navigate to find anything the ad actually promised — a genuine promise/delivery gap and a likely conversion leak, distinct from every other page reviewed.
Search vs. social comparison
The two channels converge on exactly three pages — /trial/, /membership/join-now/, and the Riverside launch page — which together form Chuze's shared conversion backbone this period: the fundamental "try" and "join" actions, plus the one new-club market both SpyFu and Foreplay are actively pushing simultaneously.
Beyond that overlap, the channels diverge in a pattern that lines up with what the SpyFu and Foreplay brand analyses already found. Search-only URLs skew toward generic, utility-first destinations — the sitewide and state-level club locators, single-amenity informational pages (sauna, pool) with FAQ-style content. These read like pages built to catch and satisfy broad non-branded intent ("gym near me," "gyms with sauna"), consistent with SpyFu's finding that roughly 92% of Chuze's search keyword portfolio is generic, non-branded terms rather than brand or competitor-conquest queries.
Social-only URLs skew toward campaign-specific, narrative destinations: the named-amenity pages (Lift Lab, Studio IR) that carry the brand's "good vibes" voice by name, four additional presale/new-club pages spanning Fresno, Lakewood, North Mesa, and Mira Mesa (matching Foreplay's documented new-club pipeline across at least five markets), and the sweepstakes giveaway page. The Instagram-routed grand-opening CTA is the extreme version of this pattern — social is being used to build a sense of local-launch momentum and brand personality even where it means routing off Chuze's own site entirely.
Net read: search is used to capture existing, already-formed demand with plain, generic answer content, while social is used to manufacture demand and reinforce brand identity around specific pushes — new-market launches, named amenity differentiators, and contests. The one place this splits cleanly reunites is bottom-of-funnel conversion (trial/join) and, this month specifically, Riverside — the single market currently live in both channels at once.
LA Fitness
Paid search, paid social & landing page analysis — August 2026
Paid Search spyfu-lafitness.md
Summary
LA Fitness's current paid search is a tight, low-variety rotation around a single value prop — "Join With No Initiation Fee" — almost entirely funneled to one landing hub (welcome.lafitness.com/offers/), a structurally different pattern from 24 Hour Fitness's and Planet Fitness's more varied, city/promo-page-driven approaches. The keyword sample is dominated by a dense Riverside, CA hyper-local cluster (guest pass, sauna, hot tub, membership-deal terms tied to a specific "Arlington Ave" location) and — notably — LA Fitness itself bids on competitor names, surfacing "planet fitness," "24 hour fitness," and "anytime fitness" terms in its own keyword list. This is the first-ever SpyFu pull for LA Fitness in this pipeline, so there is no prior-month baseline for trend comparison.
Keyword portfolio
- 50 ad records pulled (SpyFu returns ads with matched-keyword lists, not a flat keyword file); data spans searchDateId 20211001 to 20260801 — nearly 5 years of history on file.
- 11 of 50 records fall in the current window (searchDateId ≥ 20260601): 4 dated 20260601, 6 dated 20260701, 1 dated 20260801.
- No click/spend/CPC figures present in this export, so branded vs. non-branded is a keyword-count read only, not a spend-share read.
- Heavily branded overall: the large majority of sampled keywords are "la fitness [x]" variants — city names (san diego, houston, dallas, mckinney, evanston, sanford, fort worth, south miami, yucaipa, norridge, northlake, apple valley mn, east meadow, royal oak, seattle, mesa, chicago, austin, portland, lodi, plantation), plus commercial-intent modifiers ("la fitness membership," "la fitness prices"/"per month"/"cost," "la fitness trial pass," "la fitness free 7 day pass," "la fitness 1 week pass," "la fitness deals," "la fitness groupon," "la fitness costco"/"la fitness deals costco"/"la fitness membership costco," "la fitness credit card deals," "la fitness black friday," "la fitness referral," "la fitness contract," "la fitness sign up," "la fitness login").
- A dense Riverside, CA cluster recurs across multiple ad records: "la fitness riverside," "la fitness riverside guest pass near me," "la fitness riverside free pass arlington ave," "la fitness riverside arlington today," "la fitness arlington ave membership deals," "la fitness riverside memberships," "la fitness riverside arlington membership," "la fitness free pass riverside" — this is a specific club being targeted repeatedly by name/location/offer, not a one-off.
- Non-branded/generic portion: "gym near me," "gyms near me," "gym membership(s)," "gym prices," "cheap gyms near me," "cheap gym memberships," "gym cheap," "24 hour gyms," "health club(s)," "gym with pool," "gym with sauna near me," "gym with basketball court near me," "gym with childcare"/"free childcare," "gym with spin class," "gym with tanning," "gym with personal trainer," "gym student membership," "gym free pass," "fitness centers," "gym and fitness near me" — a broad, largely amenity-qualified generic net rather than pure category terms.
- Competitor-name bidding found in LA Fitness's own keyword list (not just inbound conquest by others): "gyms similar to planet fitness," "gyms like planet fitness," "planet fitness accounts," "planet fitness la," "planet fitness orlando florida," "planet fitness" (bare), "anytime fitness groupon," "24 hour fitness downtown la," "deals on 24 hour fitness membership." This is a real finding — LA Fitness is conquesting both Planet Fitness and 24 Hour Fitness by name, at least in this sample.
Ad copy themes
Convenience/no-friction join (dominant theme, nearly universal in current window): - "LA Fitness Official Site | Join With No Initiation Fee" — "Start Now & Get More! Join today for no initiation fee. Build your routine with group classes..." - "Join With No Initiation Fee - Offers | LA Fitness" — "Build your routine with group classes, personal training, and modern amenities." - "LA Fitness" — "Join With No Initiation Fee — Build your routine with group classes, personal training, and modern amenities. Start Now & Get..."
Amenities/generic brand: - "LA Fitness Official Site" — "Join LA Fitness Today — Build your routine with group classes, personal training, and modern amenities. Start Now & Get..." - "LA Fitness | LA Fitness Official Site" — "Build your routine with group classes, personal training, and modern amenities. Start Now & Get..." - Recurring sitelink extensions across nearly all current ads: "Pool And Spa," "Free Pass," "Fitness Classes," "Personal Training," "Explore Amenities," "Join Now," "Find A Club," "Corporate Program," "Functional Training."
Class/community angle (single outlier ad): - "Your Ultimate Fitness Journey | Workout Classes For All Levels" — "Ignite your fitness journey with fun, friendly, and motivating group classes. Stay on track with our..." — landing on /pages/aerobicclasses.aspx, the only current-window ad not pointed at the offers hub.
Location-specific (single outlier ad): - "LA Fitness Official Site | Join LA Fitness Today" — "Start Now & Get More! Join today for no initiation fee." — sitelinks include a specific street address ("43150 Broadlands Center Plaza Ste 138, Ashburn, VA"), and a second Stamford, CT record ("52 6th Street, Stamford, CT") — both suggest location-extension sitelinks rather than dedicated city landing pages.
Overall, the current-window copy is narrow: no price point is named in any current ad headline or body (contrast with historical ads, see Notable Changes), no urgency/promo framing, no named amenity beyond the recurring sitelink list, and messaging is nearly identical across records — small headline permutations of "Join / No Initiation Fee / Official Site" rather than distinct creative concepts.
Gaps vs. 24 Hour Fitness
24 Hour Fitness's own current SpyFu pull (24hourfitness.com, same methodology) shows several things LA Fitness's current sample doesn't: - Named, specific free-trial mechanics as the lead hook — "Your 5-Day Free Pass Awaits," "Try 24 Hour Fitness For Free | Try Us Free For 3 Days," "24 Hour Fitness Gym Pass — Claim Your 3-Day Free Pass." LA Fitness's current copy never states a trial length or a specific offer mechanic in-headline — it leans on the vaguer "No Initiation Fee" instead. (LA Fitness's historical records do show "Free Guest Pass," "Free Trial Pass," "7 Day Free Pass" language — see Notable Changes — but none of that survived into the current-window sample.) - A direct comparison ad naming a competitor — "Better Than Planet Fitness?" (24 Hour Fitness) — "Sauna, Pool & Recovery Zone — Workouts That Fit you at 24 Hour Fitness." No equivalent "Better Than LA Fitness?" ad exists in LA Fitness's own current sample (nor would it — that's a 24HF-side finding), but it's worth flagging the asymmetry: 24 Hour Fitness is now willing to name-check a competitor in ad creative, while LA Fitness's current creative stays entirely generic/self-referential, even though LA Fitness itself is doing competitor-name keyword bidding (see Keyword portfolio above) without matching that with comparison-style ad copy. - National-holiday/calendar promo tie-ins — "4th of July Sale," "Our Lowest Price of the Year." LA Fitness's current window shows no seasonal/holiday framing at all (its historical record does show "Memorial Day Offer" and "New Year Offer" patterns tied to the calendar — see Notable Changes — but again, nothing seasonal is running in the current window). - $1-down / dollar-specific pricing in headline — "Join For Just $1 Down," "Join For $1!" LA Fitness's current ads never name a price or dollar figure; its mechanic is fee-waiver framing ("No Initiation Fee") rather than a price point. - Centralized but purpose-built landing pages by offer type (/membership/free-guest-gym-pass, /promo/specials/limited-time-offer, /promo/specials/membership-offers) vs. LA Fitness's current pattern, which funnels nearly every ad to one generic hub (welcome.lafitness.com/offers/) regardless of ad theme — less landing-page/offer segmentation than 24 Hour Fitness currently shows.
The single most important comparison this pull: LA Fitness is 24 Hour Fitness's #1 conquest target by far, per 24HF's current keyword sample — dozens of "la fitness [x]" terms, headlined by a dense Riverside, CA cluster ("la fitness free pass riverside," "la fitness riverside free pass arlington ave," "join la fitness riverside arlington today," "gym with sauna riverside ca la fitness," "sauna near me la fitness riverside," "hot tub near me la fitness riverside," "yoga classes la fitness riverside arlington ave") that also appears independently in LA Fitness's own keyword sample as a cluster LA Fitness is defending ("la fitness riverside guest pass near me," "la fitness riverside free pass arlington ave," "la fitness arlington ave membership deals"). This is the same Riverside/Arlington Ave club on both sides — strong evidence of an active, hyper-local conquest battle at one specific location, not a coincidence of overlapping city lists. 24 Hour Fitness is also running Planet Fitness and EōS Fitness conquest keywords in that same Riverside market simultaneously. LA Fitness's current ad creative shows no defensive response to this pressure (no Riverside-specific ad copy or guest-pass urgency observed in the current-window sample) — worth flagging as an actionable gap: the conquest fight is concentrated and identifiable, but LA Fitness's visible creative doesn't show a local counter-offer.
Notable changes since last month
This is the first-ever SpyFu pull for LA Fitness in this pipeline — no prior month's spyfu-lafitness.md exists to compare against, so nothing below is a month-over-month delta; it's a first-pull baseline plus historical context pulled from the same response. - Historical records (2021–2023, well outside the current window) show LA Fitness running free-trial/guest-pass messaging directly in headlines — "Get a Free Guest Pass - LA Fitness Free Trial Pass," "la fitness 7 day free pass," "la fitness 1 week pass" — and seasonal framing — "LA Fitness New Year Offer," "LA Fitness Memorial Day Offer | Save Big This Memorial Day," "la fitness black friday." None of that free-trial or seasonal language survived into the current (≥20260601) sample, which is narrower and centered on "No Initiation Fee." Worth watching next pull to see if seasonal/trial messaging cycles back in, or if the fee-waiver framing is now the standing approach. - A welcome.lafitness.com subdomain (separate from the main www.lafitness.com site) is the landing destination for nearly every current ad — this matches the Foreplay data's use of welcome.lafitness.com as LA Fitness's Meta landing domain too, suggesting a shared, cross-channel funnel property rather than SpyFu-specific. - A welcome.lafitness.com/offers-canada/ URL also appears (historical, 2026-03 dated) — LA Fitness runs Canada-specific paid search, not observed for any other tracked competitor so far. - Establish this pull as the baseline for future month-over-month tracking of LA Fitness's keyword and creative rotation.
Paid Social foreplay-lafitness.md
Summary
LA Fitness runs a much smaller, dynamic-creative-dominated Meta presence than most other tracked competitors: 108 active ads in the trailing 60 days, 95% of which are a single, same-day (Aug 10) dynamic-creative (DCO) catalog batch with no static headline or description text. The small remainder is a handful of static video/image ads carrying the brand's only real copy — a "Join Now. Get More." brand message and a "bring a guest free" offer, the latter still running under a Father's Day wrapper nearly two months after the holiday. This is the first-ever Foreplay pull for this brand, so no month-over-month deltas are available yet.
Creative inventory
108 ads confirmed live within the trailing 60 days (June 12 – August 11, 2026), by format: - DCO: 103 (95%) - Video: 4 (4%) - Image: 1 (1%) - Carousel: 0 — none found in this pull.
Unlike Planet Fitness, EōS, and VASA, this brand's total live-ad count (110, including 2 outside the window) fit within a single unfiltered response, so no per-format exhaustive pagination was required — the count above is a complete set, not a sample. Note: 2 additional DCO ads were found live but dated mid-March 2026 — well outside the 60-day window — and excluded from this count; see Data notes.
Messaging themes
Dynamic/DCO catalog ads (dominant by volume, no static copy): 100 of the 103 in-window DCO ads all launched the same day (Aug 10) and carry no headline or description text — the copy is populated dynamically at serve time from a catalog rather than fixed in the ad object. All use CTA GET_OFFER and route to one of two evergreen offer pages: - http://welcome.lafitness.com/offers (US) - http://welcome.lafitness.com/offers-canada (Canada) — View live ad ↗
Brand/motivation ("Join Now. Get More."): - "More options. More motivation. More you. From classes to the gym floor, find everything you need to move, train, and feel your best at LA Fitness." — "Join Now. Get More." — View live ad ↗
Free guest offer (evergreen value add): - "Join and bring a guest for FREE (normally $15/mo.) Terms apply. Single State multi-club option only." — "Free Guest Offer | Join Today" — View live ad ↗
Same guest offer, seasonal wrapper (notable — appears stale): - Identical guest-free offer copy re-skinned as "Father's Day Offer | Join Today" — View live ad ↗. Father's Day 2026 fell on June 21; this ad started June 17 and is still marked live as of this pull, roughly seven weeks past the holiday — worth flagging as a likely un-paused seasonal ad rather than an intentional evergreen tactic.
(3 of 3 examples with static copy include a link)
What's working (velocity signal)
The creative library splits sharply into two behaviors: a single mass DCO batch (100 ads, all started Aug 10 — the freshest and largest cohort) and a thin trail of static video/image ads spaced roughly weekly from mid-June through late July, several of which (including the Father's Day ad) are still live well past their apparent relevance window. The DCO batch's single shared timestamp signals a batch refresh rather than gradual scaling, so true creative velocity can't be assessed from this pull alone. The static "Join Now. Get More." and "Free Guest Offer" messages recurring across both video and image formats suggests those are the brand's more durable, intentionally-run creative, while the still-live Father's Day ad looks more like an oversight than an active campaign.
Notable changes since last month
No prior LA Fitness Foreplay pull exists in this project — this is the brand's first-ever pull, so there is no baseline to compare against. Findings above should serve as the baseline for future month-over-month deltas, in particular: whether the Aug 10 DCO batch persists or is replaced by a new mass refresh, and whether the stale Father's Day ad gets paused.
Landing Pages landing-page-lafitness.md
URLs reviewed
https://welcome.lafitness.com/offers/— [both]. SpyFu's current-window (≥20260601) sample sends the large majority of search ads here. Foreplay's static "Join Now. Get More." and "Free Guest Offer"/"Father's Day Offer" ads also route here explicitly with a trailing slash. Foreplay's DCO catalog batch (100 ads) useshttp://welcome.lafitness.com/offers— no trailing slash,httpnothttps. Fetching that no-slash URL returned a canonical tag ofhttps://welcome.lafitness.com/offers/and byte-for-byte identical page content to the trailing-slash version, confirming these are the same page, not near-duplicates. Treated as one entry, tagged[both].https://welcome.lafitness.com/— [search]. Appears in SpyFu's current-window landing URL list; not present in Foreplay's list.https://www.lafitness.com/pages/aerobicclasses.aspx— [search]. Destination for a single outlier SpyFu ad ("Your Ultimate Fitness Journey | Workout Classes For All Levels"); not present in Foreplay's list.https://welcome.lafitness.com/offers-canada— [social]. Present in Foreplay's current list as the DCO Canada default. SpyFu also has anoffers-canada/URL, but it's flagged inspyfu-lafitness.mdas historical (a 2026-03 dated record, pre-June), not part of the current-window search sample — so this is tagged[social]rather than[both]for this month. Worth re-checking next pull in case Canada search activity is current again.
Four unique destinations total (after resolving the /offers vs /offers/ vs /offers no-slash confusion to one page). All fetches succeeded — no blocked or failed URLs this pull.
Messaging
Offers hub (welcome.lafitness.com/offers/ — both US variants): Headline is currently "BACK TO SCHOOL OFFER" under a standing sub-headline "BRING A GUEST FREE. EVERY WORKOUT." The offer block is a price table: $34.99/mo, guest privilege $15→$0, enrollment fee $25→$0, $69.98 total due today, $69 annual fee (recurring) — i.e., the "no initiation fee" promise from SpyFu's ad copy is fulfilled here as a crossed-out $0 enrollment line, not restated as a headline claim. Primary CTA is "Ends Soon | Join Now"; a repeated secondary CTA ("1 Free Guest | Claim Offer") appears three more times as the page scrolls, and a final soft-conversion CTA ("Claim Your Free Pass") closes the page for undecided visitors. Below the offer, the page runs brand-story copy ("Turning motivation into results since '84," 600+ locations, 40+ years), lifestyle segmentation ("Some people come for the classes / extras / weights / feels..."), and an objection-handling block ("Let's be real" / "The reality" — addressing prior failed gym attempts, being busy, price vs. budget gyms and boutiques, non-judgment) before a class/amenity list and a low-commitment free-pass path. Canada variant (offers-canada): Identical template and copy, reskinned with CAD pricing ($44.99/mo, $89.98 due today, $79 annual fee) and "Province of Enrollment" language in place of "State." Homepage (welcome.lafitness.com/): Headline is "LET'S GET STARTED / Welcome to the family!" — explicitly onboarding/welcome copy aimed at people who have already joined, not a conversion pitch. Content covers amenities, classes, personal training, leagues, VIP rewards, and the mobile app, plus member testimonials and a "We've gone national" state list. No price, no offer, no urgency anywhere on the page. Aerobic classes page (lafitness.com/pages/aerobicclasses.aspx): Headline "Group Fitness Classes," built around a class-finder tool (select class type + zip code) and a long list of class descriptions with intensity ratings. Persistent header CTAs "FREE PASS | JOIN NOW" are present but the page's actual content is educational/discovery-oriented, not offer-forward. Note this page runs on the legacy lafitness.com ASPX platform, a visibly different site from the welcome.lafitness.com property.
Visual trends
Limitation: a page fetch returns structure and text only, not rendered visual design — no real colors, photography, or layout feel are observable here, and nothing below should be read as a design assessment. What is inferable from structure: the offers pages (welcome.lafitness.com/offers*) are built in Elementor (WordPress), long-scroll, and repeat the same pricing-table block and CTA three separate times down the page — a structure built for a single scrolling ad-landing session rather than a multi-page browse. The homepage uses the same Elementor/WordPress platform but a shorter, section-based layout (amenities → app → testimonials → map). The aerobics-classes page sits on an entirely different, older ASPX-based platform (lafitness.com, not welcome.lafitness.com) with its own header/nav and postback-driven interactivity (javascript:__doPostBack(...)) — a strong structural signal that the offers hub is a newer, purpose-built property while much of the core site remains on a legacy stack.
Focus
The offers hub stays tightly on one action — join now / claim the offer — repeating essentially the same CTA (routing to lafitness.com/Pages/MembershipSignUpSearch.aspx) five times as the page scrolls, with the objection-handling copy in between functioning as persuasion rather than distraction. It stays on-message despite its length. The homepage, by contrast, has no single conversion focus — it reads as a post-signup welcome/orientation hub (app download, testimonials, club map) with no offer or urgent CTA at all. If this page is genuinely a landing destination for paid search traffic (as SpyFu's current-window list indicates), it is a focus mismatch: a click meant to convert a prospect lands on a page written for an existing member. The aerobics-classes page focuses on class discovery, not conversion — appropriate for its one class-themed outlier ad, but distinct from the acquisition focus of the offers hub.
Source alignment
For the dominant pattern (most SpyFu search ads and nearly all Foreplay social ads routing to the offers hub), alignment is generally good on the value-prop level: "No Initiation Fee" search ad copy is fulfilled by the $0 (was $25) enrollment line on the landing page, and the Foreplay "Free Guest Offer" ad's copy ("bring a guest for FREE... Single State multi-club option only") matches the page's standing "BRING A GUEST FREE. EVERY WORKOUT." sub-headline and guest-privilege line item closely. Two concrete gaps found: 1. Homepage as a search destination. SpyFu's current-window list includes the bare welcome.lafitness.com/ homepage alongside the offers hub. If any live search ads route here instead of /offers/, that's a real promise/delivery gap — the ad promises a join offer, the page delivers member-onboarding content with no price or CTA. 2. The stale Father's Day ad meets a "Back to School" page. Foreplay's data shows a static "Father's Day Offer | Join Today" ad still live as of this pull (started June 17, ~7 weeks past the June 21 holiday), pointing at this same offers hub. The landing page itself is not stale in the way the ad is — it currently displays a seasonally current "BACK TO SCHOOL OFFER" headline, appropriate for August. That's actually a worse mismatch than simple staleness: a visitor clicking a Father's Day-themed ad in mid-August lands on a page with zero Father's Day framing and a different seasonal promo (back-to-school) instead — a direct promise/delivery break, not just dated creative. For the DCO catalog (95% of Foreplay's active social inventory, no static headline/description by design), there's no ad-side promise to check alignment against — the dynamic ads carry no fixed message. The landing page itself, notably, does not read as generic or catalog-like the way the DCO ad set does: it's a built-out, seasonally-current page with a specific named offer, pricing, and persuasion copy. So the "genericness" pattern flagged on the Foreplay ad side does not carry through to the landing experience — the mismatch here runs the opposite direction (specific page, non-specific ads) rather than compounding. The one clean alignment case is the aerobics-classes outlier: a classes-themed search ad lands on a classes-themed page — small, but the current sample's best example of tight ad-to-page alignment.
Search vs. social comparison
Same page for both channels. welcome.lafitness.com/offers/ (and its no-slash, DCO-served equivalent) is the shared hub: SpyFu's current-window data shows it as the destination for the large majority of search ads, and Foreplay's data shows it as the destination for the DCO catalog batch, the brand/motivation ad, the guest-offer ad, and the stale Father's Day ad alike. This is the clearest "one funnel, two channels" case seen in this pull. Does the shared page serve both audiences well, or read as generic? It's a partial success. The page's structure arguably does try to serve two intents at once: a hard, deal-forward price table and "Ends Soon" urgency up top for warmer, high-intent traffic (more typical of search, where the click follows an explicit "no initiation fee" query), followed by longer objection-handling and lifestyle-positioning copy further down the scroll that reads as built for a colder, more skeptical audience (more typical of passive social scroll traffic). So it isn't purely one-size-fits-all in structure. Where it does fail the "serves both" test is on seasonal specificity: the single "Back to School" offer is applied uniformly regardless of channel or the ad that drove the click, and — as noted above — actively contradicts the still-live Father's Day ad on the social side. A brand running one shared hub for both channels needs that hub's headline offer to stay in sync with whatever ads are currently live on each channel; right now it's in sync with neither channel's oldest live creative.
Search Landscape
Market-wide SpyFu synthesis — August 2026 spyfu-landscape.md
Summary
This is the first-ever SpyFu landscape synthesis for this pipeline — all six competitor spyfu-{brand}.md files (Planet Fitness, Crunch, EōS, VASA, Chuze, LA Fitness) are themselves first-ever pulls this month, so there's no prior landscape to compare against. The market splits cleanly into two camps: Planet Fitness and LA Fitness run brand-defense-heavy, hyper-local keyword programs built around named price points or fee-waivers; EōS, VASA, and Chuze run overwhelmingly non-branded, generic-gym-intent programs layered with rich amenity vocabulary and (for EōS and Crunch) active new-club presale campaigns. The single most notable cross-brand finding is Riverside, CA, which has become a genuine multi-brand local battleground — 24 Hour Fitness's own current SpyFu activity simultaneously conquests LA Fitness, EōS, Planet Fitness, and Chuze by name in that one market, while LA Fitness and Chuze each bid back on other brands there too.
Shared themes
- Free trial / free pass as the near-universal acquisition hook — 24 Hour Fitness (5-day, 3-day), Crunch (1/3/7-day, multi-length), EōS (7-day, secondary to price), VASA ("Try VASA," "1 Day. Zero Commitment"), and Chuze (7-day, now the dominant current-window hook) all lead or co-lead with a trial offer. Planet Fitness is the market's one clear outlier — its current sample shows no free-trial framing at all, leading with named price points instead.
- A low-entry-price or fee-waiver mechanic runs everywhere — 24 Hour Fitness ($1 down), Planet Fitness ($15/mo Classic, $24.99 Black Card), Crunch ($1 to join + $9.99/mo), EōS ($1 or 4¢ to join + $9.99/mo), VASA ($0 down), Chuze ($9.99/mo evergreen), LA Fitness ("No Initiation Fee," no dollar figure named). Every brand in the market is competing on entry-cost friction, not just price level.
- New-club/expansion campaigns are a real, distinct creative category for three brands — EōS (Bradenton FL, Rancho Santa Margarita CA, San Antonio TX, a just-opened Phoenix club), Crunch ("Founding 500" presale mechanic in Coeur d'Alene ID, Jurupa Valley CA, and a Denver-area 92nd & Wadsworth market), and Chuze (a single current Riverside, CA opening). 24 Hour Fitness's own current activity includes a comparable-looking but structurally different campaign — a "NOW OPEN!" renovation/reopening push across 8 already-existing CA/CO clubs, not new-market presale.
- Amenity-forward copy is common but uneven in depth — EōS (cryotherapy, cold plunge, turf, infrared sauna, indoor lap pool, named zones like "Booty Builder Lab") and VASA (cold plunge, hot tub, sauna, steam, red light, hydro-massage lounge, KidCare, pickleball) run the richest, most specific amenity vocabularies in the market. Chuze and 24 Hour Fitness run shorter, more generic amenity lists (sauna, pool, recovery zone). Planet Fitness is the outlier here too — no amenity language observed in its current sample at all.
- Riverside, CA is a live, multi-brand hyper-local battleground — the clearest cross-file finding this pull. 24 Hour Fitness's own current sample bids on "la fitness free pass riverside," "eos fitness free pass riverside," "planet fitness free pass riverside," and "chuze fitness membership/hours riverside" simultaneously. LA Fitness's own keywords defend that exact market ("la fitness riverside guest pass near me," "la fitness riverside free pass arlington ave" — the same club 24HF is targeting). Chuze's current sample bids offensively on LA Fitness's and EōS's Riverside terms while running its own new-club-opening ad there. This is one identifiable market with at least four brands' paid search activity overlapping.
Standout tactics by brand
- Planet Fitness — the market's only brand running hundreds of "planet fitness [city]" branded long-tail keyword variants at scale; near-universal individual club offer pages with live, checkout-ready 3-tier pricing.
- LA Fitness — 24 Hour Fitness's single largest competitor-conquest target by keyword volume, and reciprocally the most aggressive competitor-name bidder itself (Planet Fitness, 24 Hour Fitness, Anytime Fitness all appear in its own keyword list); its entire current ad set converges on one message ("No Initiation Fee") and one landing hub.
- Crunch — the only brand with a named, repeatable new-club presale mechanic ("Founding 500," $1 + 1 month free) tied to specific pre-opening markets; also the only brand besides 24HF itself confirmed to be bidding on "24 hour fitness" directly, making it a two-way conquest fight.
- EōS — richest amenity vocabulary in the market and the most active multi-market presale program (3 markets mid-buildout plus one just-opened club); a lone, narrow Gold's Gym keyword conquest is its only competitor-facing move.
- VASA — the only brand with named in-club studio sub-brand programs surfacing directly in search ad titles (STUDIO RED HIIT, STUDIO CYCLE); notably, VASA STUDIO LFT — prominent in VASA's own paid-social creative this month — doesn't appear in its search keywords at all.
- Chuze — the longest advertised free-trial period in the market (7 days) and the clearest within-brand strategy shift this pull: month-specific dollar-enrollment promos (Jan–May) were replaced by evergreen trial/no-commitment framing by June.
Branded vs. non-branded balance across the market
The market splits into two clear groups. Branded-heavy: Planet Fitness (majority "planet fitness [city]" variants) and LA Fitness (majority "la fitness [x]" variants) both run brand-defense as their dominant keyword strategy. Non-branded-heavy: EōS (an estimated 90%+ of its ~350–450 keyword sample is generic gym-intent), VASA (majority generic, amenity- and city-qualified), and Chuze (~92% non-branded, per an explicit count in this pull) all compete primarily on category and local intent rather than their own name. Crunch sits in between — its most visible keyword cluster is branded long-tail ("crunch fitness [city]"), but a substantial non-branded generic layer exists alongside it. 24 Hour Fitness's own pull this session was structured around ad-copy and competitor-conquest verification rather than a full keyword export, so a precise branded/non-branded split for our own brand isn't available from this cycle's data — worth capturing explicitly in next month's pull.
Geographic patterns
- Riverside, CA is this pull's standout hyper-local market — see Shared themes above, at least four brands' current paid search activity overlaps there.
- Planet Fitness: historically Northeast-concentrated (MA/NJ/PA/NY/CT/NH), with growing Southern/Southwestern/Midwestern coverage (TX, GA, TN, FL, AZ, OH, MN, MT, NM) — the broadest, most mature national footprint of the six.
- EōS: concentrated in Utah, Arizona, Southern California, Texas, and Florida, with active expansion markets in Bradenton FL, Rancho Santa Margarita CA, and San Antonio TX.
- VASA: Mountain West/Midwest footprint (CO, UT, AZ, OK, IN, NE, IL, WI, WA-Bellevue) — one stray Massachusetts keyword surfaced but reads as broad-match noise, not a real new market.
- Chuze: legitimate footprint is narrow (AZ, CA, CO, NM), but its keyword sample shows heavy broad-match sprawl into markets it doesn't operate in at all (Nashville, Atlanta, Raleigh, Omaha, and a dozen more) — this looks like keyword-targeting noise rather than expansion signal, worth a targeted spot-check next pull.
- Crunch: dozens of city-specific join pages nationwide, with the "Founding 500" presale mechanic currently tied to Coeur d'Alene ID, Jurupa Valley CA, and a Denver-area market.
- LA Fitness: nationwide branded city-keyword footprint plus a Canada-specific offers page (
/offers-canada) — the only tracked brand with confirmed Canadian paid search presence.
Seasonal/promotional alignment
24 Hour Fitness is the only brand in the market currently running an actively branded national-holiday promo ("4th of July Sale," "Our Lowest Price of the Year" for summer) — though this session's Foreplay pull flagged that the July 4th creative may not have been refreshed since the holiday, so "active" doesn't necessarily mean "current." Every competitor's current-window sample shows the opposite pattern: Planet Fitness's historical seasonal plays (Summer Pass, January Sale) don't appear in this pull's current window; Crunch skips national dates in favor of local-launch urgency; EōS's "4¢ to Join This July" is calendar-adjacent but not holiday-branded; VASA's Black Friday and Year-End promos are historical-only, nothing calendar-tied is currently live; and Chuze explicitly moved off month-specific promos (which ran January–May) to evergreen framing by June. The market has broadly shifted toward evergreen offers this cycle, leaving 24 Hour Fitness's calendar-tied approach as the outlier — worth watching whether that's a deliberate differentiator or a sign our own promo calendar needs refreshing.
White space
- Named sub-brand studio/amenity programs — VASA (STUDIO RED HIIT, STUDIO CYCLE) and Chuze (Ground X) both surface named in-club programs directly in search ad titles. 24 Hour Fitness's own amenity copy (sauna, pool, recovery zone, personal training, group classes) is generic by comparison — a named-program angle could be a real differentiator.
- A distinct new-market presale playbook — EōS and Crunch both run well-developed, repeatable presale campaigns for markets mid-buildout. 24 Hour Fitness's current "NOW OPEN!" campaign is a renovation/reopening play for existing clubs, not a new-market presale pattern — there's no visible 24HF equivalent to "Founding 500" or EōS's "Coming Soon" pre-opening pages in this pull.
- Amenity vocabulary depth — EōS and VASA both run noticeably richer, more specific amenity language (cryotherapy, cold plunge, hydro-massage lounge, infrared sauna, indoor lap pool) than 24 Hour Fitness's shorter list. Closing that gap in ad copy could be a low-lift differentiation move.
- First-mover advantage on direct competitor-naming — 24 Hour Fitness's "Better Than Planet Fitness?" ad is the only direct, named head-to-head comparison ad found anywhere in this pull, across all six competitors' samples. No one has reciprocated yet. This is currently a clean advantage, but worth monitoring — once one brand names a competitor directly, others sometimes follow.
- Trial length is mid-pack, not a leader — Chuze (7 days) and Crunch (up to 7 days) both currently advertise longer trials than 24 Hour Fitness's 5-day/3-day options. Not flagged as urgent, but worth knowing 24HF isn't the market's longest offer.
Notable shifts since last month
This is the first month this landscape synthesis has run, and every underlying spyfu-{brand}.md file (all six competitors, plus 24 Hour Fitness's own baseline) is itself a first-ever pull — there is no prior spyfu-landscape.md to compare against. Everything in this report should be treated as the baseline going forward. Worth flagging for next month's comparison specifically: whether the Riverside, CA multi-brand cluster persists or expands, whether Chuze's shift to evergreen trial framing holds, whether EōS's and Crunch's presale markets convert to "now open" status, and whether any competitor begins naming another brand directly in ad copy (matching 24 Hour Fitness's current first-mover move).
Social Landscape
Market-wide Foreplay synthesis — August 2026 foreplay-landscape.md
Summary
This is the first-ever Foreplay landscape synthesis for this pipeline. All six competitor foreplay-{brand}.md files exist and are complete for August 2026 (Planet Fitness, Crunch, EōS, VASA, Chuze, LA Fitness), plus 24 Hour Fitness's own first-ever benchmark pull. Creative volume varies enormously — from Planet Fitness's 789 active ads since Aug 1 down to Crunch's zero — and the market splits clearly on production style: five of six competitors lean heavily on dynamic/DCO catalog creative (43–95% of their active library), while 24 Hour Fitness's own mix is the outlier, led by Video (45%) with DCO as its smallest share (16%). The most actionable single finding: two unrelated brands (LA Fitness and 24 Hour Fitness itself) are currently running stale, un-paused seasonal ad copy — a shared execution gap worth a quick internal QA pass regardless of the competitive angle.
Shared themes
- A low-friction acquisition offer anchors nearly every brand's library — Planet Fitness (PF Black Card®, $1 down/$24.99/mo), EōS ($1-to-join, "we saw you looking" retargeting), VASA ($14.99/mo flat price anchor), Chuze ($1-to-enroll + 14 days free), 24 Hour Fitness (5-day free pass, $1 to join). LA Fitness is the partial outlier — its offer is fee-waiver framing ("No Initiation Fee") rather than a free trial or named price.
- New-club/grand-opening creative is a distinct, common category — Planet Fitness, EōS (via its SpyFu-documented presale markets, though Foreplay-specific new-club creative wasn't separately itemized this pull), VASA (~6-city presale pipeline), and Chuze (5-city new-club pipeline) all run dedicated grand-opening or presale ad sets. 24 Hour Fitness's closest equivalent, "NOW OPEN!", is a renovation/reopening campaign for 8 already-existing clubs, not new-market presale — a structurally different play from what most competitors are running.
- DCO (dynamic/catalog) creative dominates format mix almost everywhere — Planet Fitness (62%), Chuze (60%), LA Fitness (95%), EōS (43%), VASA (33%) all lean on DCO as a leading or near-leading format. 24 Hour Fitness is the clear outlier: DCO is its smallest format share (16%), with Video leading instead (45%).
- Anomalous/mismatched CTAs appear independently at two brands — VASA's influencer ad carries a
BOOK_TRAVELCTA on gym-trial content, and Chuze's grand-opening ads useVIEW_INSTAGRAM_PROFILEinstead of a landing-page CTA. Neither looks intentional; both read as likely campaign-setup errors, a shared quality-control theme worth watching for whether it recurs. - Stale, un-paused seasonal creative — found on both a competitor and our own brand. LA Fitness has a "Father's Day Offer" ad still live roughly seven weeks after the holiday. 24 Hour Fitness has a near-identical issue: 4 of 5 sampled KeepFit+ ads still carry a "4th of July Sale!" headline more than five weeks past July 4th. This is the pull's most directly actionable finding — it's not a competitive insight so much as a shared execution gap, and one we can fix on our own side immediately.
Standout tactics by brand
- Planet Fitness — by far the largest active library (789 ads) and the only brand testing a sweepstakes/contest mechanic ("win a Black Card membership") tied to grand openings, breaking from its own near-universal
SIGN_UPCTA pattern. - Crunch — the only brand with effectively zero active Meta presence this month (0 live ads, 4 stale inactive ones tied to a single franchise club) — notable given Crunch's SpyFu (Google search) program is simultaneously active and substantial, a real cross-channel divergence for this one brand.
- EōS — the only brand running a distinctly-voiced retargeting creative line ("we saw you looking 👀"), separate from its acquisition offer.
- VASA — the only brand naming in-club studio sub-brand programs directly in social creative (STUDIO LFT, STUDIO RED HIIT).
- Chuze — the only brand with a consistent "brand voice" tone running through its offer copy ("good vibes," "A Little Fitness. A Lot of Good Vibes.") rather than pure transactional messaging.
- LA Fitness — the most templated/automated-looking library of the six: 95% of its active ads are blank-copy DCO catalog units from a single same-day batch, with almost no static creative variety.
- 24 Hour Fitness (ours) — the only brand in the comparison set leading with Video rather than DCO, and the only one running a multi-club renovation/reopening campaign as its secondary theme rather than new-market presale.
Creative velocity comparison
- Planet Fitness: 789 ads since Aug 1, all still live — a large Aug 1 cohort (250 ads) plus near-daily top-ups (Aug 8–10 each added 100+ new ads). The most sustained, highest-volume rolling refresh in the market.
- VASA: 635 ads since Aug 1, spanning 10 distinct launch days (Aug 1–10) — a genuine rolling-refresh pattern, not one mass batch.
- EōS: 324 ads since Aug 1, also spanning 10 distinct days with Aug 1 and Aug 3 as the largest cohorts — rolling refresh, consistent with its prior-month pattern.
- Chuze: 247 ads across a 60-day window, clustering into fewer, more widely-spaced batches (a wave around June 22, another around Aug 1) — lower-frequency, more deliberate refresh than the three above.
- LA Fitness: 108 ads across 60 days, but 100 of them (91%) share one identical Aug 10 timestamp — the least "rolling" pattern in the market, reading as a single batch refresh rather than gradual scaling.
- 24 Hour Fitness (ours): 64 ads since Aug 1, with 46 (72%) concentrated on Aug 10 alone — closer to LA Fitness's and Planet Fitness's mass-batch pattern than to EōS's or VASA's smoother daily cadence, though the "NOW OPEN!" and free-pass offers do recur across the full date range rather than being confined to Aug 10.
- Crunch: no live creative — zero velocity to assess this period.
Format mix across the market
| Brand | DCO | Image | Video | Carousel | Total |
|---|---|---|---|---|---|
| Planet Fitness | 62% | 22% | 11% | 5% | 789 |
| LA Fitness | 95% | 1% | 4% | 0% | 108 |
| Chuze | 60% | 30% | 7% | 3% | 247 |
| VASA | 33% | 41% | 26% | 0% | 635 |
| EōS | 43% | 35% | 19% | 2% | 324 |
| 24 Hour Fitness (ours) | 16% | 23% | 45% | 16% | 64 |
| Crunch | — (0 active) | — | — | — | 0 |
24 Hour Fitness is the only brand in the set where Video leads the format mix, and its Carousel share (16%) is also the highest of any brand with active carousel creative — most competitors either don't use carousel at all (VASA, LA Fitness near-zero) or use it narrowly for metro-rollup pages (Planet Fitness, EōS, Chuze, all under 5% share). This is a genuinely different production approach from the rest of the market, worth understanding as either a deliberate creative-quality choice or a missed efficiency opportunity, since competitors are running DCO at far higher volume for a fraction of the apparent production effort.
Offer/CTA patterns
SIGN_UPandGET_OFFER/GET_OFFER_VIEWare the market's default CTAs — Planet Fitness leansSIGN_UPalmost universally; 24 Hour Fitness and LA Fitness leanGET_OFFER/GET_OFFER_VIEW; VASA and EōS split betweenSIGN_UP,LEARN_MORE, andSEE_DETAILSdepending on whether the ad is acquisition or presale-focused.- Chuze runs the widest CTA variety of any brand (
SIGN_UP,GET_OFFER,GET_OFFER_VIEW,SEE_DETAILS,LEARN_MORE, plus the anomalousVIEW_INSTAGRAM_PROFILE) — consistent with its more varied, multi-tactic new-club playbook. - Sweepstakes/contest creative breaks CTA convention — Planet Fitness's grand-opening sweepstakes ads use
LEARN_MOREand route tofb.merather than the brand's own domain, a deliberate departure from its otherwise near-universalSIGN_UP-to-planetfitness.com pattern. - DCO-format ads return blank headline/description across every brand that uses them (by design — dynamic creative pulls copy from a catalog at serve time), so messaging analysis across the whole market is necessarily drawn from the smaller static Video/Image/Carousel subset, not the full active-ad count.
White space
- No new-market presale creative pattern for 24 Hour Fitness — Planet Fitness, VASA, and Chuze all run dedicated grand-opening/presale ad sets for markets mid-buildout; 24 Hour Fitness's "NOW OPEN!" campaign only covers renovated existing clubs. If 24 Hour Fitness has genuine new-club openings in the pipeline, this is a creative format competitors are already using effectively that we aren't.
- No retargeting-specific creative — EōS's "we saw you looking" is the only distinctly-voiced site-visitor retargeting ad line found in this pull. 24 Hour Fitness's current library shows no equivalent, separately-branded retargeting message.
- No named in-club program creative — VASA (STUDIO LFT, STUDIO RED HIIT) and Chuze (Lift Lab, Studio IR) both use named sub-brand/amenity programs as recurring creative hooks. 24 Hour Fitness's current library has no comparable named-program angle in its social creative — the same gap flagged in this month's SpyFu landscape.
- No sweepstakes/contest mechanic — Planet Fitness is the only brand testing this, tied to grand openings. Worth watching whether it's a one-off test or something that scales; not urgent, but worth knowing it exists in the market.
- No Spanish-language creative — Planet Fitness runs at least one Spanish-language Black Card ad; no localized creative was found in 24 Hour Fitness's own pull or any other competitor's.
- The stale-seasonal-creative issue is ours to fix regardless of competitors — see Shared themes above. This is the one item on this list that doesn't require watching the market; it's a direct, immediate internal fix (refresh or pause the "4th of July Sale!" KeepFit+ creative).
Notable shifts since last month
No prior foreplay-landscape.md exists for this project, so there's no landscape-level trend to compare against — this pull is the baseline going forward. That said, two of the six underlying brand files do carry their own month-over-month deltas from a prior pull earlier this cycle, worth surfacing here: Planet Fitness's active creative volume grew roughly 8x (100 ads → 789) and EōS's grew roughly 3x (100 ads → 324), both alongside format-mix shifts toward more Image and, for the first time, Carousel. Crunch, VASA, Chuze, LA Fitness, and 24 Hour Fitness are all first-ever pulls with no baseline yet. Worth flagging for next month's landscape comparison specifically: whether Planet Fitness's and EōS's scale-up trend continues or was a one-time capture/measurement change (noted as a caveat in both brands' own files), whether Crunch's Meta presence recovers from zero, and whether the stale seasonal creative on both LA Fitness's and 24 Hour Fitness's sides gets refreshed.
Gaps vs. 24 Hour Fitness
This month’s analysis wove 24 Hour Fitness benchmark comparisons into the White space section above rather than a separate header — see White space.
Trends
Multi-month view
Trends will appear once more months are tracked.
Only one month of data (August 2026) currently exists in this project. Once a second month is compiled, this tab will show ad-count and format-mix trend lines per brand, plus a rolled-up view of notable shifts flagged across each month's landscape files.