Ads: setup, content, placements, languages¶
Research from 2026-10-23. Ad platforms change often: check the current menus and rules in Ads Manager and Google Ads before each campaign.
This page explains how to run our ads on Meta (Instagram/Facebook) and Google. The overall plan (channels, seasons, ourselves vs. agency) is in Marketing. The technical side (tracking, consent, landing pages) is in Website: ads, SEO and analytics.
Our concrete budgets are in the private notes (private/marketing-budget.md).
Basics¶
- All ads land on our website, on the page in the ad's language (
/de/, or/for English), never directly on the booking tool. See Marketing. - Google Search catches people who are already looking ("Massage Saanen"). It is usually the cheapest per booking for a local service: start here.
- Meta reaches people who are not looking yet (scrolling Instagram). Good for the opening, new offers and the seasons.
- Main number on both platforms: cost per booking, not clicks.
| Google Search | Meta (Instagram/Facebook) | |
|---|---|---|
| The person | Searching right now | Scrolling, not searching |
| Ad | Text | Video, photo |
| Strength | Ready to book | Awareness, opening, seasons |
| Weakness | Few searches in a small region; cannot create demand | More expensive per booking; needs much content |
Ad rules for anti-cellulite (both platforms)¶
Why ads get rejected
- ❌ No before/after images and no close-ups of "problem" skin.
- ❌ Never address the viewer's body: "your cellulite", "do you have…". Meta's personal attributes policy forbids it.
- ❌ No medical promises: "removes cellulite", "guaranteed results", "detox", "minus one size".
- ❌ No fat or medical claims (the Luskine Body Pro is a cosmetic device, see the note below): no fat reduction, fat burning, lipolysis, weight loss or slimming; no lymphatic drainage, lymphoedema, vein or circulation problems, pain relief or recovery after surgery.
- ❌ No nudity or sexual undertones. Show legs and back modestly, with towels. Avoid ambiguous words like "full body" or "relax completely": Google's adult content policy is strict with massage.
- ✅ "Firming massage", "smoother, firmer-looking skin", "feel lighter", "trial session CHF …". Results vary.
Our device: Luskine Body Pro (cosmetic, not medical)
The massage uses the Luskine Body Pro, a mechanical massage device. The manufacturer classifies it as a cosmetic device, not a medical device: no Swissmedic registration and no Sachkundenachweis are needed, only Luskine's training. This holds only while we describe cosmetic and wellness outcomes: skin appearance, silhouette, the look of cellulite, relaxation. Medical or fat-reduction claims in our own ads, posts or website could change how the treatment is regulated. The manufacturer's statement is kept in the private notes. [verify] the signed statement and the EU Declaration of Conformity before purchase.
Meta (Instagram / Facebook)¶
Before you start¶
- Instagram is a professional account, linked to the Facebook Page and the Business Portfolio (see Account setup).
- A payment method is added to the ad account (Business Settings → Payments).
- The landing page exists in each language, with UTM tags, e.g.
https://alpformflow.ch/de/?utm_source=instagram&utm_medium=paid-social&utm_campaign=opening-2026. - Recommended: the Meta Pixel with the booking event on the website (see Website: ads, SEO and analytics).
How a campaign is built¶
A campaign has three levels:
| Level | What you set |
|---|---|
| Campaign | The goal (objective) |
| Ad set | Budget, schedule, audience, placements |
| Ad | The content: video/photo, text, link, button |
One ad set can hold several ads, and one ad can hold several photos/videos:
| Option | What it is | Who decides what is shown |
|---|---|---|
| One ad = one photo or video | Simplest | Meta only chooses who sees it |
| Several ads in one ad set | e.g. 3–5 different videos and photos | Meta gives more budget to the best one |
| Flexible format / dynamic creative | One ad with up to 10 photos/videos and several texts | Meta combines them per person and placement [verify] exact names in Ads Manager |
| Carousel | Up to 10 cards in one ad that the viewer swipes | The viewer |
Best for us: several different ads in one ad set.
- Since 2025, Meta's ad system (Andromeda) decides who sees an ad mainly from its content. Different videos reach different people (a local woman, a tourist looking for wellness).
- Saanenland is a small audience. One ad repeats to the same people within 1–2 weeks (ad fatigue), and the cost per booking goes up.
- One campaign per photo or video would split our small budget, and none would get enough data.
- But not too many: agencies with big budgets use 10–30 ads per ad set. With a small budget, 3–5 ads is the maximum, or most of them never get shown.
Step by step: Stories ad with a booking link (Ads Manager)¶
Go to adsmanager.facebook.com → + Create.
- Campaign
- Objective: Traffic at the start. When the Pixel counts bookings, switch to Sales or Leads (optimises for bookings).
- Special ad category: none (massage is not a special category).
- Advantage+ campaign budget: off at the start, so you keep control.
- Ad set
- Conversion location: Website.
- Budget: a daily budget with a start and end date (e.g. 2–3 weeks before opening).
- Location: Saanen plus 20–30 km, "People living in or recently in this location" (this also reaches tourists).
- Age: e.g. 25–60. Keep interests broad: the region is small.
- Languages: see Languages below.
- Placements: Manual placements → only Instagram Stories and Instagram Reels (same 9:16 format). Audience Network off.
- Ad
- Identity: the Facebook Page and the Instagram account.
- Format: single image or video (9:16).
- Primary text: short, e.g. "Anti-cellulite massage in Saanen. Opening in December. Book your trial session."
- Destination: Website URL with UTM tags.
- Call to action: Book now.
- Check the preview for Stories → Publish. Meta reviews the ad, usually within 24 hours.
Simpler alternative: Boost in the Instagram app. Post a Story or Reel → Boost → goal "More website visits" → link and "Book now" button → audience, budget, duration. Fewer controls and less tracking, but fine for a first try.
Where Meta shows the ads¶
| Setting | Who decides | When to use |
|---|---|---|
| Advantage+ placements (default) | Meta: Feed, Stories, Reels, Explore, Messenger, Facebook, Audience Network | Bigger budgets with ads in several formats |
| Manual placements | We tick exactly where | Us: small budget, 9:16 videos made for Stories/Reels |
- Always switch off Audience Network (ads in other apps and games): cheap clicks, low quality, little control over where our brand appears.
- In fully automatic Advantage+ campaigns, Meta may spend a small part of the budget (about 5%) on excluded placements
[verify]. Not in a normal manual campaign with manual placements. - Brand safety: Business Settings → Brand safety → block lists of apps and sites.
- Meta still decides which people in our audience see the ad, and when (an auction each time someone opens the app).
Google Ads¶
Campaign types¶
| Type | Where | Content | For us |
|---|---|---|---|
| Search | Google search results | Text | ✅ Start here |
| Demand Gen | YouTube (incl. Shorts), Discover, Gmail, Display Network (websites and apps), Maps (beta) | Images, video, carousel | Later: a small test in the opening and tourist seasons |
| Performance Max | Everywhere, Google decides | Everything | ❌ Not at the start: little control, needs data |
| Display (old campaign type) | Websites and apps | Banners | Being moved into Demand Gen (see below) |
Search campaign: best practices¶
Structure
- One campaign with one shared budget, one ad group per language (see Languages).
- Location: Saanen plus a radius (Gstaad, Schönried, Lauenen…).
- Location option "Presence": people who are, or regularly are, in the area. "Presence or interest" (the default) also reaches people planning a trip to Gstaad: test it before the winter season.
- Untick Search Partners and Display Network. Both are on by default.
Keywords
- Local and specific: "massage saanen", "anticellulite massage gstaad", "massage gstaad".
- Phrase and exact match at the start. Broad match only later, with Smart Bidding and conversion tracking.
- Negative keywords from day one: erotik, erotic, thai, tantra, job, stelle, ausbildung, kurs, course, gerät, selber, gratis.
Ads (responsive search ads)
- 2 ads per ad group. Google says a second ad gives about +6.6% conversions on average.
- Each ad: up to 15 headlines (30 characters) and 4 descriptions (90 characters)
[verify]limits in the interface. Google combines them itself. - Vary the headlines: place ("Massage in Saanen"), service ("Anti-cellulite massage"), offer ("Trial session CHF …"), trust ("Certified therapist"), action ("Book online today").
- Same ad rules as above.
Assets (extensions): free and important
- Sitelinks: Prices, Trial session, Location & parking, Vouchers.
- Callouts: "Online booking", "Parking nearby", "DE/EN/FR".
- Call: phone button.
- Location: linked to the Google Business Profile (after verification).
- Images: 1:1 1200×1200 and 1.91:1 1200×628.
Bidding
- Start: Maximize clicks with a maximum cost per click.
- After 15–30 tracked bookings: Maximize conversions.
- Conversion tracking: see Website: ads, SEO and analytics.
- Switch off automatic text customization and AI Max at the start, so Google does not write or translate ad texts by itself.
- Check the search terms report every week.
Demand Gen and the Display Network (ads with images)¶
These are the ads with images + text on websites, apps, YouTube, Discover and Gmail.
- 2026 change: Google is retiring the separate Display campaign type and moving it into Demand Gen (migration tool since June 2026, complete by 2027). The Display Network stays, as a channel inside Demand Gen. "Display only" is still possible with the channel controls.
- Formats: single image, video, carousel. Our 9:16 Instagram videos can be reused for YouTube Shorts.
Can we choose the sites or topics? Yes:
| Targeting | What it means | Example for us |
|---|---|---|
| Location | As always | Saanen + 25 km |
| Topics | Pages about a topic | "Beauty & Fitness → Spas & Beauty Services", "Travel → Switzerland" |
| Placements | Specific websites, apps or YouTube channels | Regional news, tourism sites, wellness channels (if they carry ads) |
| Content keywords | Pages that contain certain words | "wellness Gstaad", "spa Saanenland" |
| Custom segments | People who searched for or visited certain things (10–15 search terms or URLs) | People who searched "Gstaad hotel", "spa Gstaad" |
| In-market / affinity | Google's interest groups | "Beauty services", "spa & wellness" |
| Remarketing | Visitors of our website who did not book | "Your trial session is waiting" |
| Lookalike | People similar to our clients | Later, with a client list |
- With placements, ads show only there.
- "Optimized targeting" lets Google go beyond our audiences: switch it off for control.
- Sites and topics to avoid are excluded mainly at account level (Content suitability).
- Here the campaign language setting still applies (unlike Search), so separate DE and EN campaigns are possible.
Is it worth it for us? Cheap reach and good for being seen, but low intent (people read news, not looking for a massage), and few local sites carry ads. Plan: Search first. Then a small Demand Gen test (YouTube Shorts + Discover) with our existing videos in the opening and tourist seasons. Remarketing when the website has enough visitors.
Languages¶
German and English are a must; French and Italian later.
How each platform knows the person's language¶
| Meta | Google Search | |
|---|---|---|
| Signal | The app language on Facebook/Instagram | Since late September 2026: the language of the ad and the landing page, plus Google's estimate of the languages a person knows |
| Language setting | Optional language targeting in the ad set | Removed for Search; still used on YouTube, Display, Discover, Gmail |
| Result | A Swiss person with the phone in English sees the English version (fine: they understand it) | Google can show the English ad to a German speaker who also knows English, and the other way round |
Meta: one ad set or one per language?¶
A. Recommended at the start: one ad set with multilingual ads.
- When creating the ad, choose a default language (German) and add languages (English, later French). Up to 48 more.
- Each language gets its own headline and text, and can get its own image or video.
- Meta shows each person the version in their app language; everyone else sees the default.
- Why: the whole budget feeds one learning algorithm. In a small region, several ad sets would each get too little data.
- Watch out
[verify in Ads Manager]:- Text inside the video or image (subtitles, captions) is not translated: make a separate video per language.
- One source says Reels does not serve the language versions. If so, run this ad on Stories only and make a separate ad for Reels.
- No automatic translation: native speakers write or check every text.
B. Later: one ad set per language (language targeting German / English), each with its own budget.
- Pros: budget control per language, clear reports.
- Cons: the budget is split, each ad set learns separately, audiences overlap (bilingual people).
- When: with a much bigger budget, or a different offer per audience, e.g. winter: tourists in English, spring: locals in German (anti-cellulite peak).
Google Search: one language per ad group¶
- Per language one ad group (or campaign): keywords, ads and landing page all in German or all in English. Never mix languages in one ad.
- Keywords in that language: DE: "massage saanen", "anticellulite massage", "massage in der nähe". EN: "massage gstaad", "cellulite massage", "spa massage near me". Some keywords are the same in both languages ("Massage Saanen"): then Google picks the ad by its language estimate, which is fine when both versions exist.
- Landing pages: DE ad →
/de/, EN ad →/(English is the default language at the main address). - Small budget: 1 campaign, 2 ad groups (DE, EN), one shared budget. Two campaigns only if we want a fixed budget per language (e.g. more on EN in winter).
- AI Max and text customization off: Google confirmed that an English search can otherwise show a French ad generated by AI.
Our setup¶
| Start (opening, small budget) | Later (bigger budget, seasons) | |
|---|---|---|
| Meta | 1 campaign → 1 ad set (Saanen + 25 km) → 3–5 ads, each multilingual (DE default + EN), a separate video per language when it has text | Separate EN ad set for tourists in winter and DE ad set for locals in spring |
1 Search campaign → ad groups DE and EN → 2 ads each, landing pages /de/ and / |
Separate campaigns per language; FR for the Romandie and French tourists | |
| Content | Every video in 2 versions (DE and EN subtitles or voice); photos with little text | Add FR, later IT |
Content requirements¶
Formats and sizes¶
| Placement | Format | Size | Files |
|---|---|---|---|
| Instagram Stories / Reels (main), YouTube Shorts | 9:16 vertical | 1080×1920 px | Video: MP4/MOV, H.264, AAC sound, 30 fps, max 4 GB. Photo: JPG/PNG |
| Instagram/Facebook Feed | 4:5 | 1080×1350 px | Same |
| Carousel | 1:1 or 4:5 | 1080×1080 / 1080×1350 | 2–10 cards |
| Google Demand Gen, horizontal | 1.91:1 | 1200×628 (min. 600×314) | JPG/PNG, max 5 MB |
| Google Demand Gen, square | 1:1 | 1200×1200 (min. 300×300) | JPG/PNG, max 5 MB |
| Google Demand Gen, vertical | 4:5 | 960×1200 | JPG/PNG, max 5 MB |
| Google video | 9:16, 1:1, 16:9 | 10–60 s | — |
| Logo (Google) | 1:1 | 1200×1200 | — |
Meta sizes come from third-party guides: check them in the Ads Manager preview [verify].
- Video length: 6–15 seconds works best for Stories and Reels.
- First 2 seconds: the strongest image first (hands, oil, the therapist's face), not the logo.
- Safe zones: keep text, logo and price in the middle. Stories: ~250 px top and ~340 px bottom free. Reels: the bottom ~35% is covered by text and buttons.
- Sound: many people watch without sound: add subtitles burned into the video. Music: only licensed tracks, e.g. Meta's Sound Collection. Popular songs can block the ad.
- Text on images: little, at most 5–7 words. The main message goes in the ad text.
Quality¶
- Camera: a recent smartphone is enough. Film vertically, 1080p or 4K, 30 fps.
- Light: daylight from a window or soft warm lamps; no hard ceiling light.
- Stable: a phone tripod or stand. Clean lens, tidy room, no personal items in the frame.
- Natural beats "perfect": real phone videos often work better on Stories/Reels than polished studio adverts. A professional photoshoot is great for the website; for ads, a few real phone videos are enough.
- People on camera: written consent from everyone filmed. No client faces without permission.
How different the ads should be¶
A different idea, not a different colour. Changing colour, font or crop gives Meta almost the same ad. Change the topic, people, setting and first seconds:
| # | Idea | Example | Why |
|---|---|---|---|
| 1 | Atmosphere | Calm studio, warm light, oil, towels, the view of Saanen | Wellness feeling |
| 2 | The therapist | She talks to the camera for 10–15 s: "Hello, I'm …, this happens in your first session" | Trust: often the strongest idea for a one-person studio |
| 3 | How it works | 3 steps: short consultation → massage → tips for home | Removes uncertainty |
| 4 | Offer | "Opening in December: trial session CHF …" (photo or short video) | A direct reason to book now |
| 5 | Location | Saanen village, the street, the entrance, "parking nearby" | Locals and tourists know where to go |
| 6 | Reviews (after opening) | A real client quote, with written permission | Social proof |
Also vary the format: at least 1–2 videos and 1–2 photos, later a carousel.
First content pack (before opening)¶
4 ads: therapist intro video, atmosphere video, "how it works" video, offer photo. All 9:16, with subtitles, texts in DE and EN. Start 2–3 weeks before opening. Keep 2–3 new ideas ready to swap in after 10 days.
Running and improving¶
- Every 7–10 days: pause the weakest ad (lowest click rate, highest cost per booking) and add one new idea.
- Refresh when frequency (how often the same person saw the ad) goes above about 3, or the cost per booking goes up.
- Meta does not split the budget equally: one ad gets most of it. For a fair comparison of two ideas, use A/B test in Ads Manager.
- Change one thing at a time and measure.
| Metric | Meaning | Rough target |
|---|---|---|
| Hook rate: 3-second views ÷ impressions | Do the first seconds stop people scrolling? | > 25% |
| Link CTR: link clicks ÷ impressions | Does the ad make people tap? | > 1% |
| Frequency | How often the same person saw the ad | < 3, then refresh |
| Cost per booking | What really matters | Our limit is in the private notes |
The target values are typical industry numbers, not platform rules.
Remarketing¶
Showing ads again to people who visited our website but did not book.
- We do not store anything about visitors. Google and Meta do: our website loads their tag (after cookie consent), they recognise the person and put them on our list. We only see the list size, never who is on it.
- The website reports a booking to Google and Meta. The list "visitors minus bookings" is then built automatically.
- Lists need a minimum size before ads can run (about 100 people for Meta and Google Display/YouTube, about 1,000 for Google Search
[verify]). Many visitors are lost to declined cookies, Safari privacy features and ad blockers. - For a new local salon, remarketing becomes possible only after a few months, mostly on Meta and YouTube.
- Technical details: Website: ads, SEO and analytics.
Rollout¶
- Before opening: accounts ready (Account setup), website with tracking and consent banner, first content pack.
- 2–3 weeks before opening: Meta opening campaign (Stories + Reels, DE + EN). Google Search campaign from the opening (or a little earlier, with the booking calendar starting on the opening day).
- First 4–6 weeks: weekly check of search terms, cost per booking, frequency. Swap weak ads.
- Opening and tourist season: small Demand Gen test (YouTube Shorts + Discover).
- From ~100+ people on a list: small remarketing campaign.
Sources¶
Meta
- Meta Ads Manager, Meta Ads Guide, Meta Advertising Standards
- Advertising in multiple languages
- Create an ad with dynamic formats and creative, Create an ad that uses dynamic creative, About Flexible Media
- Carousel ads, Ad formats, Aspect ratios, Advertising levels
- Andromeda and creative diversity: Confect, Adrio, Madwise, Jetfuel
- Specs: Moonb – Story specs, Argil – Reel size, Landingi – Reel size
- Languages: Coinis – translate ad copy, Rafirit – multi-language Meta ads
- Language targeting changes, September 2026 (Google Ads Developer Blog), Search Engine Land, Search Engine Journal
- About language targeting, Text customization, AI localization tool (beta), Localization in Google Ads
- Best practices for responsive search ads
- Display → Demand Gen: Search Engine Journal, Common Thread, Boost That
- Demand Gen: About, Create, Audiences, FAQ, Optimized targeting, Exclusions, Specs
- Performance Max specs, Image assets in Performance Max