B2C paid-media profitability

YoY Spend Analysis: SCH vs Let’s Roam

Q2 2025 (Apr 1–Jun 30) compared with Q2 2026 (Apr 1–Jun 30), separated by account, Travel vs Non-Travel campaign type, and campaign-name-inferred geography.

Complete calendar quartersAll imported B2C categoriesGoogle + Bing where presentGenerated Jul 21, 2026 12:53 PM PDT
Geography limitation: live Google Ads user-location reporting was unavailable because the read-only Ads credential is rejecting its signed token. Geography below is inferred from campaign names; mixed-geo campaigns remain in explicit mixed buckets instead of being falsely allocated to a country.

Definitions & caveats

These definitions are required to interpret the tables correctly.

Scope

  • Source: y_ad_campaigns_spend joined to y_ad_campaigns.
  • Dates: Q2 2025 = 2025-04-01 through 2025-06-30; Q2 2026 = 2026-04-01 through 2026-06-30.
  • Accounts/domains: www.scavengerhunt.com and www.letsroam.com.
  • B2C filter: campaign category contains B2C. This includes B2C Tickets and the small B2C Events rows.
  • Platforms: imported paid-media rows; overwhelmingly Google, plus $3.4K of SCH Bing spend in Q2 2026.

Metric formulas

  • Avg CPC = total spend ÷ total clicks.
  • CVR = imported conversions ÷ clicks.
  • Dashboard revenue = the greater of platform conversion value or purchase + lead value on each spend row.
  • Contribution margin = dashboard revenue − ad spend. It is a marketing contribution measure, not Stripe-net/accounting margin.
  • ROAS = dashboard revenue ÷ spend.
  • Total = both quarters pooled; additive metrics are summed and rate metrics are recomputed from pooled numerators/denominators.

Campaign classification

  • Travel = campaign name contains travel.
  • Non-Travel = all other in-scope B2C campaigns.
  • This is the established Hventures dashboard-compatible split.
  • LR Non-Travel includes app campaigns. Their conversion actions can differ from web ticket purchases, so its very high CVR should not be read as web checkout CVR alone.

Geography

  • Geo is inferred from bounded campaign-name tokens, not Google Ads user location.
  • USA + Canada campaigns are kept combined. UK + Australia/NZ and broader mixed campaigns are also kept combined.
  • % total CM is each geo bucket’s CM divided by the account’s total CM for the same period; it appears on geography total rows.
  • Negative-margin geos can have negative CM shares. Geo shares may exceed 100% in aggregate when other geos lose money.