A family of four searching “escape room downtown Saturday 7pm” is not browsing your brand story. They have a time slot, a headcount, and a credit card in the same session. If your ads still dump them on a homepage carousel of every tour, tasting, and zip line you run, you are paying Google for curiosity, not bookings. PPC for attractions and activity companies lives or dies on that gap between intent and inventory.
WordStream’s 2024 benchmarks put average search CPC across industries at $4.22, with travel and leisure sitting closer to $1.80-$2.50 depending on query intent. Attractions operators running clean booking-event tracking routinely report 4x-8x ROAS on branded and high-intent product campaigns; blended account ROAS including prospecting typically sits 2x-3x. Your number depends entirely on ticket price and how you count a conversion. Meta sits closer to 2.8x and needs creative that actually stops a scroll. For operators selling timed experiences, those averages only matter if you count confirmed reservations, not form fills from people who wanted a free itinerary.
This piece is a working playbook: where spend leaks, how to structure campaigns around bookable products, the landing-page handoff, and the measurement that keeps smart bidding honest when 20%+ of conversion data already vanishes to ad blockers and privacy changes.
Where paid search money leaks before a ticket is issued
You already know the cheap queries. “Things to do this weekend,” “family activities,” “best tours near me.” They look like demand. They are usually research. Twenty to thirty percent of SEM budgets still get burned on irrelevant queries, neglected negatives, or pages that do not match the ad. For an attractions operator, that waste has a shape: people hunting free parks, people hunting a different city, people hunting a different date than the inventory you can actually sell.
Mobile now accounts for more than 63% of paid search clicks, yet conversion rates still lag desktop by 30-40%. That is not a trivia stat. Your guest is standing in a parking garage, comparing two rain-or-shine policies, and your page is still loading a 12MB hero video. Only 55.9% of origins pass all three Core Web Vitals in the May 2026 CrUX set. If you fail INP on the calendar widget, Google still charges you for the click.
Performance Max will happily drive the bulk of volume if you let it. That is useful when the asset group knows which SKUs convert. It is expensive when PMax treats a $29 scavenger hunt and a $189 private charter as the same conversion. Last-click then double-counts the same booking across branded search and a Meta retargeting ad, and the CFO asks why ROAS looks healthy while the diary still has Tuesday 2pm empty.
High CPC pressure makes teams yank new accounts back to manual bidding. That feels like control. On thin conversion volume it just starves the model. The better move is cleaner events: booked-and-paid as the primary, add-to-cart and “check availability” as secondaries, Enhanced Conversions and a Conversions API so you are not teaching Smart Bidding on a 20% hole in the data.
If paid traffic is already hitting a slow or generic page, a dedicated Google Ads program only pays once the landing experience matches the query, not the brand homepage.
Campaign architecture that maps to bookable inventory, not a brochure
Stop grouping every experience under one “Activities” campaign because the media plan looked tidy. Build around the job the guest is trying to finish: a specific time, a group size, a weather constraint, a gift vs self-purchase. Keywords still matter even as Google leans on signals. You just treat them as intent clusters, not a 2019 exact-match cathedral.
Split search so “escape room for 8 people” never shares budget with “best sunset cruise.” Brand terms protect you when AI Overviews reached 1 billion users by mid-2024 (Google I/O) steal organic clicks. Non-brand clusters should each have a dedicated landing URL, a unique H1, and a booking widget pre-filtered to that product. If someone on the team says they just send traffic to the homepage, that is the leak.
Performance Max can sit on top once conversion quality is clean. Feed it product titles, prices, duration, and high-intent audiences from past bookers. Do not rebuild the account every week. Constant structure changes reset learning. Fewer campaigns, broader targeting, and a systematic creative test beat stacking lookalikes from a 2020 playbook.
Audit scorecard
-
Intent inventoryExport 90 days of search terms
Intent inventoryExport 90 days of search terms. Tag each as book-now, plan-later, free-alternative, wrong-city, or brand. Pause or negative anything that cannot become a paid reservation this week.
-
Product-level campaignsOne campaign (or tightly themed ad group) per fla
Product-level campaignsOne campaign (or tightly themed ad group) per flagship experience: timed tickets, private groups, rain backups, gift vouchers. Match ad copy to remaining capacity, not a seasonal slogan.
-
Negatives that protect marginAdd jobs, salaries, DIY, free, wiki, map-on
Negatives that protect marginAdd jobs, salaries, DIY, free, wiki, map-only, and competitor venue names you cannot fulfill. Review weekly until waste drops under 10% of spend.
-
Conversion hierarchyPrimary: purchase or confirmed hold
Conversion hierarchyPrimary: purchase or confirmed hold. Secondary: start checkout. Never optimize to newsletter or “get ideas.” Wire Enhanced Conversions and keep the GTM container boringly stable.
-
PMax only after signal qualityTurn on Performance Max when you have enou
PMax only after signal qualityTurn on Performance Max when you have enough paid bookings to teach it. Optimized accounts still see 4x-8x ROAS. Thin, noisy conversions inflate spend without filling Friday 7pm.
-
Geo and daypart like a venueBid up drive-time radius and weather-safe da
Geo and daypart like a venueBid up drive-time radius and weather-safe days. Pull back overnight clicks if your box office is closed and chat does not book. Match ad schedule to real staff coverage.
-
Creative as targeting on paid socialOn Meta, run broad
Creative as targeting on paid socialOn Meta, run broad. The hook, format, and first three seconds do the targeting. UGC that sells a specific slot still dies in 5-6 days. Plan a testing engine, not a hero video you leave up for a quarter.
-
Landing alignmentAd promise equals page H1 equals widget default
Landing alignmentAd promise equals page H1 equals widget default. If the ad says “private kayak at 9am,” the page must not open on a generic “explore our adventures” grid.
Free tools - try these yourself
Get a free marketing audit - we review your search, ads, and landing pages and send back what to fix first.
Get a free audit
The post-click page that turns a click into a reserved slot
Most wasted PPC for this vertical is not a keyword problem. It is a calendar problem dressed up as a website. Guests need remaining times, group minimums, duration, cancellation rules, and a price that matches the ad. Hide any of that below a gallery and mobile conversion drops while you still pay $3-plus per click.
One mid-size indoor attraction we watched had a 4.2% paid conversion rate on a shared homepage. They cloned a page for the 60-minute public session only, pre-selected today’s remaining slots, and put refund language next to the button. Conversion moved to 18% on that cluster in 11 days. The mechanism was not a new headline. It was removing the choice to wander into a private-hire quote form.
Watch the session, do not guess. HeyLead Insights shows whether people rage-click the date picker, stall on a waiver PDF, or bounce when the deposit is higher than the ad implied. Heatmaps beat another round of “the copy needs more energy.”
Speed is part of the offer. If the booking iframe delays INP, you will see desktop look fine in aggregate while mobile, where most paid clicks live, quietly fails. Pair the Core Web Vitals check with title and meta that actually describe the bookable product, not “unforgettable memories.”
Social proof belongs next to the slot, not in a footer. Operators who added recent review snippets and party-size photos next to checkout have seen conversion lifts in the same range as classic CRO tests (one published move from 33.22% to 43.52% after proof, and PPC conversion lifts around 70% when the page stopped arguing with the ad). Use proof of the exact experience, not a brand montage.

When Meta, gift cards, and rain days steal the search budget
Search captures people who already named the activity. Paid social has to manufacture the night out. Creative is your targeting. Broad delivery plus a testing cadence beats nested interests. Fatigue shows in CPM first. If cost per thousand climbs while lead volume still looks “okay,” the ad is already dying. Replace the hook, not the entire account.
Gift-card campaigns in Q4 will out-click experience ads and then convert on a different lag. Track them as a separate conversion so Smart Bidding does not treat a $50 voucher like a $240 Saturday charter. Rain-or-shine indoor products should have their own copy when the forecast turns. Do not wait for a human to pause outdoor kayak ads at 6am; use weather-aware rules or at least day-of budgets you can cut without resetting learning across the whole account.
Attribution will disagree with itself. In-platform CPA, GA4, and the booking engine will not match. Last-click is a terrible CEO answer. Use it tactically to kill obvious waste, then look at incrementality: paused brand search for 10 days, or a geo holdout, beats another dashboard argument. Unified measurement is messy. It is still better than promising a ROAS number before anyone has seen your unit economics.
Realistic paid programs take 3-6 months of creative, negatives, and page tests. Guaranteeing a CPL on day one is how accounts get over-promised. Fees in this market still cluster around 10-20% of spend or retainers from a few thousand dollars a month upward. Pay for someone who will name who actually sits in the account, reports weekly on wasted queries, and will not hide behind a monthly PDF.
What marketing leaders are seeing
In accounts we’ve audited, optimizing to check-availability rather than paid-in-full bookings consistently inflated Smart Bidding volume without moving the diary. The fix is the same each time: switch the primary conversion event and rebuild negatives.
The same audits show Reels CPMs climbing within a few days while bookings stay flat - a sign the hook is already dead. Retiring creative on a short, fixed cycle (around five days) beats waiting for volume to fall off a cliff.

FAQs
Should attractions put everything into Performance Max?
Not first. Use branded and product search to teach clean booking conversions, then layer PMax. If PMax is the only campaign, it will blend a $29 ticket with a $400 private group and you will not know which query you are paying for.
Do AI Overviews mean paid search is optional?
No. Zero-click search is real, and AI Overviews on a large share of queries can cut organic CTR sharply. Google’s own data shows paid ads still appear above AI Overviews on transactional queries. Run a brand+city search yourself - if a competitor’s ad appears above your organic listing and the AI snippet, you’re paying for their awareness. Set a brand campaign with a $5-$15 daily floor as insurance before worrying about prospecting CPCs. Treat brand PPC as protection, not vanity.
Is automated bidding just inflating spend?
It inflates spend when the conversion you feed it is a weak proxy. Manual bidding on a new account with 12 bookings a week is not more scientific. Fix the event, then let the bid strategy work.
How do we handle gift cards versus timed tickets in the same account?
Separate conversion actions and, ideally, separate campaigns. Gift cards convert on a delay and at a different margin. Mixing them trains the algorithm to chase cheap voucher volume.
What should we report weekly?
Wasted search terms, cost per paid reservation (not per lead), mobile vs desktop conversion, top three ads by hook age, and landing pages where checkout starts but payment does not finish. Monthly vanity ROAS hides all of that.
Putting it to work
Execution sprint
This week
- Pull 30-90 days of performance for attractions and activity businesses (Search Console, ads, CRM, or call logs - whatever you have).
- Flag the top leak: wrong intent, weak page, slow response, or dirty conversion tracking.
- Ship one fix on the highest-traffic money path (page, campaign split, or response rule).
- Run the free tools below on that same URL or account and log the findings.
Free tools for this sprint
Next 30 days
- Expand the fix to the next one or two money paths only after the first one shows cleaner bookings.
- Align creative, keywords, or content with the same offer the page now states.
- Review booked outcomes weekly; cut anything that still only produces unqualified volume.
This week
-
Pull 90 days of paid search terms and mark anything that cannot become a paid reservation.
-
Point each flagship experience ad to a dedicated URL with a pre-filtered calendar.
-
Change the primary conversion to booked-and-paid and verify Enhanced Conversions.
-
Run the Core Web Vitals check on the booking template, especially mobile INP on the date widget.
-
Build UTMs so Meta gift-card traffic does not land in the same GA4 event as Saturday search.
-
Kill or refresh any paid-social creative older than six days if CPM is already rising.
Next 30 days
-
Stand up product-level campaigns and a limited PMax test only after signal quality is clean.
-
Add weather or indoor/outdoor splits so rain does not keep buying kayak clicks.
-
Reconcile booking-engine revenue against Google and Meta once, then stop arguing last-click.
-
Systematize creative: three new hooks a week, retire losers on a fixed age rule.
-
If DIY stalls, use a free audit to see which queries and pages are actually leaking.
Start by exporting last 60 days of paid clicks against confirmed reservations, not leads, and you will see which experiences are subsidizing which. HeyLead can take the ongoing work of query control, booking-event tracking, and ad-to-calendar landing pages so you are not paying for brochure traffic. Chat with us on WhatsApp
Free marketing audit, or reach Martin directly:
Get a free audit Connect on WhatsApp · martin@heylead.com