Gymnasia "GetYourGuide Style" Campaign Specification

Project: Instagram Stories Ad Campaign with Booking Landing Pages Style Reference: GetYourGuide Instagram Ads Date: January 14, 2026


Executive Summary

Build a GetYourGuide-style Instagram Stories ad campaign for Gymnasia featuring:


Campaign Structure Overview

┌─────────────────────────────────────────────────────────────────┐
│                     INSTAGRAM STORIES                            │
├─────────────────────────────────────────────────────────────────┤
│  Story 1: 6 Squares Grid (Activity Overview)                    │
│  Story 2: 6 Squares Grid (With Reviews/Social Proof)            │
│  Story 3: Animated Video (Featured Class)                       │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼ Click CTA
┌─────────────────────────────────────────────────────────────────┐
│                     LANDING PAGE                                 │
│  - Filter chips (by type, age, etc.)                            │
│  - Class listings with ratings, prices, badges                  │
│  - "Booked X times" social proof                                │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼ Click class
┌─────────────────────────────────────────────────────────────────┐
│                     CLASS DETAIL PAGE                            │
│  - Hero image carousel                                          │
│  - Description, schedule, coach                                 │
│  - Reviews section                                              │
│  - Booking form / CTA                                           │
└─────────────────────────────────────────────────────────────────┘

Part 1: Instagram Story Ads

1.1 Visual Design System

Color Palette (Gymnasia brand adaptation):

Primary Background:   #FF6B35 (Energetic Orange) or #1A1A2E (Dark Navy)
Card Background:      #FFFFFF
Text Primary:         #1A1A2E (Navy)
Text Secondary:       #6B7280 (Gray)
Accent/CTA:           #FF6B35 (Orange)
Rating Stars:         #FFD700 (Gold)

Card Style (Polaroid/Tilted):

1.2 Story 1: Adults - Activity Overview (6 Squares)

Layout: 2x3 grid of activity cards

| Position | Activity | Image Content | Rating | |----------|----------|---------------|--------| | Top Left | BJJ | Rolling/grappling action shot | ★ 4.9 | | Top Right | Boxing | Pad work / coach + student | ★ 4.8 | | Mid Left | MMA | Cage/striking training | ★ 4.7 | | Mid Right | Gym | Modern equipment | ★ 4.8 | | Bot Left | Animal Flow | Ground-based movement | ★ 4.9 | | Bot Right | Sauna | Sauna interior | ★ 5.0 |

Card Content Template:

┌─────────────────────┐
│    [IMAGE AREA]     │
│                     │
├─────────────────────┤
│ 📍 Tbilisi          │
│ Brazilian Jiu-Jitsu │
│ ★ 4.9 (68)          │
└─────────────────────┘

CTA Button: "BOOK NOW" (white pill button, Gymnasia logo)

Text Overlay (bottom, outside grid):

"Book your first class at Tbilisi's #1 combat sports gym"

1.3 Story 2: Adults - With Reviews (6 Squares)

Layout: 2x3 grid mixing activity cards with review snippets

| Position | Content Type | Details | |----------|--------------|---------| | Top Left | Activity Card | BJJ Fundamentals | | Top Right | Review Card | "Best gym in Tbilisi!" - Alex, UK ★★★★★ | | Mid Left | Review Card | "Changed my life at 40" - Giorgi ★★★★★ | | Mid Right | Activity Card | Boxing for Beginners | | Bot Left | Activity Card | Gym Membership | | Bot Right | Review Card | "Safe, technical, welcoming" ★★★★★ |

Review Card Design:

┌─────────────────────┐
│ ★★★★★               │
│                     │
│ "Best gym in        │
│  Tbilisi!"          │
│                     │
│ — Alex, UK 🇬🇧       │
│   Jan 2026          │
└─────────────────────┘

1.4 Story 3: Animated/Video (Featured Class)

Format: 15-second video story

Content Structure:

0-3s:   Gymnasia logo animation
3-8s:   Action footage of featured class (e.g., BJJ drilling)
8-12s:  Quick cuts: coach explaining, students high-fiving
12-15s: End card with rating + "Book Trial Class" CTA

Featured Classes to Produce:


1.5 Story 1: Kids - Activity Overview (6 Squares)

| Position | Activity | Image Content | Rating | |----------|----------|---------------|--------| | Top Left | Kids BJJ | Kids rolling/playing | ★ 5.0 | | Top Right | Kids Boxing | Coach with young boxer | ★ 4.9 | | Mid Left | Jungle Gym | Obstacle course fun | ★ 4.9 | | Mid Right | Kids Judo | Throwing technique | ★ 4.8 | | Bot Left | Kids Karate | Kids in gi, kata | ★ 4.8 | | Bot Right | Kids Football | Indoor football drills | ★ 4.9 |

CTA: "BOOK NOW"

Text: "Safe, fun sports for kids 4-15 in Tbilisi"

1.6 Story 2: Kids - With Parent Reviews (6 Squares)

| Position | Content Type | Details | |----------|--------------|---------| | Top Left | Activity Card | Kids BJJ | | Top Right | Review Card | "My son loves it!" - Nino ★★★★★ | | Mid Left | Review Card | "Finally off screens" - David ★★★★★ | | Mid Right | Activity Card | Jungle Gym | | Bot Left | Activity Card | Kids Boxing | | Bot Right | Review Card | "Safe & professional" - Maka ★★★★★ |

1.7 Story 3: Kids - Animated Video

Content: Kids class highlights showing fun, safety, learning show jungle gym class


Part 2: Unified Catalog Landing Page

2.1 Page Structure

URL Pattern: gymnasia.ge/catalog

URL Parameters:

┌─────────────────────────────────────────────────────────────────┐
│ GYMNASIA                                        [❤️]            │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 🔍 Search classes...                                        │ │
│ └─────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ [Adults] [Kids 4-16] [Small Kids 2-5]                          │
│                                                                 │
│ [All] [Combat] [Fitness/Movement]                              │
├─────────────────────────────────────────────────────────────────┤
│ 9 classes available                       Recommended ↕️        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│ ┌─────────┐  BJJ Fundamentals                                  │
│ │  [IMG]  │  60 min • Beginner friendly                        │
│ │    ❤️   │  ★ 4.9 (127)                    From 30 GEL       │
│ └─────────┘  [🔥 Popular]                                      │
│                                                                 │
│ Click → Opens Purchase Modal with options:                     │
│   • Single Class: 30 GEL                                       │
│   • 8 Classes: 200 GEL (25 GEL/class)                         │
│   • 12 Classes: 270 GEL (22.5 GEL/class) - Save 10%           │
│   • 20 Classes: 400 GEL (20 GEL/class) - Save 20%             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2.2 Age Groups

| Age Group | URL Parameter | Description | |-----------|---------------|-------------| | Adults | ?age=adults | 18+ Combat sports, gym, fitness | | Kids 4-16 | ?age=kids | Children's combat sports & activities | | Small Kids 2-5 | ?age=small-kids | Toddler-appropriate classes |

2.3 Adults Classes (Hardcoded)

| Class | Duration | Level | Single Price | Tags | |-------|----------|-------|--------------|------| | BJJ Fundamentals | 60 min | Beginner | 30 GEL | combat | | Grappling / No-Gi | 60 min | All | 30 GEL | combat | | Boxing | 60 min | All | 30 GEL | combat | | Kickboxing | 60 min | All | 30 GEL | combat | | Kyokushin Karate | 60 min | All | 30 GEL | combat | | MMA | 60 min | Intermediate | 30 GEL | combat | | Gym + Sauna | Unlimited | All | 25 GEL/day | fitness | | Animal Flow | 60 min | All | 25 GEL | fitness | | Pilates | 50 min | All | 25 GEL | fitness |

2.4 Kids 4-16 Classes (Hardcoded)

| Class | Duration | Ages | Single Price | Tags | |-------|----------|------|--------------|------| | Kids BJJ | 45 min | 5-12 | 25 GEL | combat | | Kids Judo | 45 min | 5-14 | 25 GEL | combat | | Kids Karate | 45 min | 5-14 | 25 GEL | combat | | Kids Boxing | 45 min | 6-14 | 25 GEL | combat | | Kids MMA | 45 min | 8-14 | 25 GEL | combat | | Jungle Gym | 60 min | 4-12 | 20 GEL | movement | | Kids Football | 60 min | 5-12 | 20 GEL | movement |

2.5 Small Kids 2-5 Classes (Hardcoded)

| Class | Duration | Ages | Single Price | Tags | |-------|----------|------|--------------|------| | Jungle Gym (2-5) | 45 min | 2-5 | 20 GEL | movement | | Mini Judo (3-5) | 45 min | 3-5 | 20 GEL | combat | | Mini Karate (3-5) | 45 min | 3-5 | 20 GEL | combat |

2.6 Pricing Options (Purchase Modal)

Kids Class Packages: | Package | Price | Per Class | Savings | |---------|-------|-----------|---------| | Single Class | 20-25 GEL | - | - | | 8 Classes | 200 GEL | 25 GEL | - | | 12 Classes | 270 GEL | 22.5 GEL | 10% | | 20 Classes | 400 GEL | 20 GEL | 20% |

Adults Class Packages: | Package | Price | Per Class | Savings | |---------|-------|-----------|---------| | Single Class | 25-30 GEL | - | - | | 8 Classes | 200 GEL | 25 GEL | - | | 12 Classes | 270 GEL | 22.5 GEL | 10% | | 20 Classes | 400 GEL | 20 GEL | 20% |

Adults Gym Membership: | Duration | Price | Per Month | Savings | |----------|-------|-----------|---------| | 1 Month | 150 GEL | 150 GEL | - | | 3 Months | 405 GEL | 135 GEL | 10% | | 6 Months | 720 GEL | 120 GEL | 20% | | 12 Months | 1,260 GEL | 105 GEL | 30% |

Gym membership includes gym + sauna access

2.7 Filter Chips

Adults: All, Combat, Fitness Kids: All, Combat, Movement Small Kids: All, Combat, Movement

2.8 Social Proof Badges

const badges = {
  popular: "🔥 Popular",
  booked: "📅 Booked today",
  topRated: "⭐ Top rated",
  bestValue: "💎 Best value"
};

2.9 Purchase Flow

  1. User clicks on class card
  2. Modal opens with:
    • Class info (name, description, image)
    • Purchase options (single class, packages, memberships)
    • Email & phone input
    • "Buy Now" button
  3. On "Buy Now" click:
    • Calls submitGenericPayment API
    • Redirects to payment gateway
  4. After payment → user receives confirmation

Part 3: Purchase Modal (Inline Class Details)

3.1 Modal Structure

The purchase modal opens when user clicks a class card. It contains all necessary details and purchase options in a single modal, eliminating the need for separate class detail pages.

┌─────────────────────────────────────────────────────────────────┐
│ BJJ Fundamentals                                          [✕]   │
│ Learn Brazilian Jiu-Jitsu foundations in a safe environment.   │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │                    [HERO IMAGE]                             │ │
│ └─────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ Purchase Options                                                │
│                                                                 │
│ ○ Single Class .......................... 30 GEL               │
│                                                                 │
│ Class Packages                                                  │
│ ○ 8 Classes ............................. 200 GEL              │
│     25 GEL/class                                               │
│ ○ 12 Classes ............................ 270 GEL   [Save 10%] │
│     22.5 GEL/class                                             │
│ ○ 20 Classes ............................ 400 GEL   [Save 20%] │
│     20 GEL/class                                               │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│ Your Email: [________________________]                          │
│ Your Phone: [________________________]                          │
├─────────────────────────────────────────────────────────────────┤
│              [ BUY NOW - 270 GEL ]                              │
└─────────────────────────────────────────────────────────────────┘

3.2 For Gym + Sauna (Adults Only)

┌─────────────────────────────────────────────────────────────────┐
│ Gym + Sauna                                               [✕]   │
│ Full access to modern gym and sauna.                           │
├─────────────────────────────────────────────────────────────────┤
│ Purchase Options                                                │
│                                                                 │
│ ○ Day Pass .............................. 25 GEL               │
│                                                                 │
│ Gym Membership                                                  │
│ ○ 1 Month ............................... 150 GEL              │
│     150 GEL/month                                              │
│ ○ 3 Months .............................. 405 GEL   [Save 10%] │
│     135 GEL/month                                              │
│ ○ 6 Months .............................. 720 GEL   [Save 20%] │
│     120 GEL/month                                              │
│ ○ 12 Months ............................. 1,260 GEL [Save 30%] │
│     105 GEL/month                                              │
│                                                                 │
│ ✓ Includes gym + sauna access                                  │
├─────────────────────────────────────────────────────────────────┤
│              [ BUY NOW - 405 GEL ]                              │
└─────────────────────────────────────────────────────────────────┘

3.3 Content Requirements per Class

For each class (hardcoded in code):

| Content | Description | |---------|-------------| | Title | Class name (EN, KA) | | Short Description | 1-2 sentences | | Duration | In minutes | | Level | Beginner/Intermediate/Advanced/All | | Age Range | For kids classes only | | Single Price | Per class | | Thumbnail | 1 image | | Coach | Coach name | | Rating | 1-5 stars | | Review Count | Number of reviews | | Badge | Popular/Booked/TopRated/BestValue or null | | What You'll Learn | 2-3 bullet points | | Coach | Name, photo, credentials, quote | | Reviews | 5+ verified reviews with ratings | | Related Classes | 3 recommendations |

3.3 Booking Form / CTA

Primary CTA: "Book Trial Class" (for non-members) Secondary CTA: "View Membership Options"

Booking Flow:

  1. Click "Book" on schedule slot
  2. Select date (calendar widget)
  3. Enter contact info (name, phone, email)
  4. Confirm booking (WhatsApp/SMS confirmation)

Part 4: Meta Ads Setup

4.1 Campaign Structure

ADULTS CAMPAIGN (act_482151786977425 or act_1429558184113596 for BJJ)
├── Ad Set: Adults Combat Sports
│   ├── Ad: Story 1 - 6 Squares Overview
│   ├── Ad: Story 2 - 6 Squares Reviews
│   └── Ad: Story 3 - Video (BJJ Focus)
│
├── Ad Set: Adults Gym/Fitness
│   ├── Ad: Story 1 - Gym/Sauna Focus
│   ├── Ad: Story 2 - Reviews
│   └── Ad: Story 3 - Video (Gym Tour)
│
└── Ad Set: Adults Pilates/Wellness
    ├── Ad: Story 1 - Wellness Focus
    └── Ad: Story 2 - Reviews

KIDS CAMPAIGN (act_482151786977425)
├── Ad Set: Kids Combat
│   ├── Ad: Story 1 - 6 Squares Overview
│   ├── Ad: Story 2 - Parent Reviews
│   └── Ad: Story 3 - Video (Kids BJJ)
│
└── Ad Set: Kids Movement/Jungle Gym
    ├── Ad: Story 1 - Fun Activities
    └── Ad: Story 3 - Video (Jungle Gym)

4.2 Campaign Settings

| Setting | Adults | Kids | |---------|--------|------| | Objective | OUTCOME_LEADS or OUTCOME_TRAFFIC | OUTCOME_LEADS | | Daily Budget | $20-50 | $15-30 | | Placements | Instagram Stories, Reels | Instagram Stories, Reels | | Optimization | Link Clicks or Leads | Leads |

4.3 Targeting

Adults Combat (BJJ/Boxing/MMA):

{
  "age_min": 18,
  "age_max": 45,
  "genders": [1],
  "geo_locations": {
    "cities": [{"key": "Tbilisi"}]
  },
  "locales": [6, 24, 41],
  "interests": [
    "Brazilian Jiu-Jitsu", "Boxing", "MMA", "UFC",
    "Joe Rogan", "Gordon Ryan", "Fitness"
  ]
}

Adults Gym/Fitness:

{
  "age_min": 22,
  "age_max": 50,
  "genders": [0],
  "geo_locations": {
    "cities": [{"key": "Tbilisi"}]
  },
  "interests": [
    "Fitness", "Gym", "Weight training", "Healthy lifestyle"
  ]
}

Kids (Parents):

{
  "age_min": 28,
  "age_max": 50,
  "genders": [0],
  "geo_locations": {
    "cities": [{"key": "Tbilisi"}]
  },
  "interests": [
    "Parenting", "Kids activities", "Children's sports",
    "Family fitness", "After-school activities"
  ],
  "behaviors": ["Parents with children (3-12)"]
}

4.4 Ad Creative Specs

Instagram Story Image:

Instagram Story Video:

4.5 UTM Parameters

?utm_source=instagram
&utm_medium=story
&utm_campaign=adults_combat_jan26
&utm_content=6squares_overview

Part 5: Technical Implementation

5.0 Assets & Data Catalog

All class images, coach photos, and structured data have been prepared:

| Resource | Path | Description | |----------|------|-------------| | Master JSON | /public/classes/classes-catalog.json | All classes, coaches, reviews, filters | | Images | /public/classes/images/ | 74 images organized by category | | Documentation | /public/classes/README.md | Asset inventory and usage guide |

Image Categories Available:

5.1 Landing Page Tech Stack

Framework:     Next.js 14 (App Router)
Styling:       TailwindCSS
Hosting:       Vercel or CloudFlare Pages
CMS:           Notion API (for class data) or Hardcoded JSON
Forms:         React Hook Form + API route
Analytics:     Meta Pixel + Google Analytics 4

5.2 Data Structure

interface GymClass {
  id: string;
  slug: string;
  name: {
    en: string;
    ka: string;
    ru: string;
  };
  shortDescription: string;
  fullDescription: string;
  duration: number; // minutes
  level: 'beginner' | 'intermediate' | 'advanced' | 'all';
  price: {
    single: number;
    trial: number | null;
  };
  category: 'combat' | 'fitness' | 'wellness' | 'kids';
  audience: 'adults' | 'kids';
  images: string[]; // 5 hero images
  schedule: ScheduleSlot[];
  coach: Coach;
  reviews: Review[];
  rating: number;
  reviewCount: number;
  badges: Badge[];
  relatedClasses: string[]; // class IDs
}

interface ScheduleSlot {
  day: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
  startTime: string; // "18:00"
  endTime: string;   // "19:00"
}

interface Coach {
  name: string;
  title: string;
  photo: string;
  credentials: string[];
  quote: string;
}

interface Review {
  id: string;
  author: string;
  country: string;
  date: string;
  rating: number;
  text: string;
  verified: boolean;
  photos?: string[];
}

type Badge = 'popular' | 'booked' | 'topRated' | 'newCoach' | 'limitedSpots' | 'bestValue';

5.3 Page Routes

/catalog                    → Unified catalog page (all age groups)
/catalog?age=adults         → Adults classes
/catalog?age=kids           → Kids 4-16 classes
/catalog?age=small-kids     → Small kids 2-5 classes
/catalog?age=adults&class=bjj-fundamentals → Highlight specific class

Note: No separate class detail pages. All details shown in purchase modal.

5.4 Payment Integration

// Using submitGenericPayment from src/userApi.ts
import { submitGenericPayment } from '../src/userApi';

// On "Buy Now" click:
const result = await submitGenericPayment({
  type: 'class-purchase',
  email: userEmail,
  amount: selectedPrice,          // e.g., 270
  id: `${classId}-${option}-${Date.now()}`,
  currency: 'GEL',
  title: className,               // e.g., "BJJ Fundamentals"
  description: purchaseDescription // e.g., "12 Classes Package"
});

// Redirect to payment URL
if (result.url) {
  window.location.href = result.url;
}

5.5 Meta Pixel Events

// Catalog page view
fbq('track', 'ViewContent', {
  content_type: 'product_group',
  content_category: 'gym_classes'
});

// Class modal open
fbq('track', 'ViewContent', {
  content_type: 'product',
  content_ids: ['bjj-fundamentals'],
  content_name: 'BJJ Fundamentals',
  value: 30,
  currency: 'GEL'
});

// Buy button click
fbq('track', 'InitiateCheckout', {
  content_ids: ['bjj-fundamentals'],
  num_items: 1,
  value: 270,
  currency: 'GEL'
});

// Payment redirect
fbq('track', 'Lead', {
  content_name: 'BJJ Fundamentals - 12 Classes',
  value: 270,
  currency: 'GEL'
});

Part 6: Content Production Checklist

6.1 Photography Needed

Per Class (minimum):

General:

6.2 Video Production

Per Featured Class:

6.3 Review Collection

Action Items:

6.4 Copy Writing

Per Class:


Part 7: Launch Timeline

| Week | Task | |------|------| | Week 1 | Content production (photos, videos) | | Week 2 | Landing page development | | Week 3 | Class detail pages + booking flow | | Week 4 | Meta Pixel setup + ad creative production | | Week 5 | Campaign launch + A/B testing | | Week 6 | Optimization based on performance |


Part 8: Success Metrics

| Metric | Target | |--------|--------| | CTR (Stories) | > 1.5% | | Landing Page → Class View | > 40% | | Class View → Booking | > 10% | | Cost per Lead | < $5 USD | | Trial → Membership Conversion | > 30% |


Appendix A: Story Design Templates

6-Square Grid Template (Figma/Canva)

┌─────────────────────────────────────┐
│  Background: #FF6B35 (orange)       │
│                                     │
│   ┌─────────┐    ┌─────────┐       │
│   │ [Card1] │    │ [Card2] │       │
│   │ -3° rot │    │ +2° rot │       │
│   └─────────┘    └─────────┘       │
│                                     │
│   ┌─────────┐    ┌─────────┐       │
│   │ [Card3] │    │ [Card4] │       │
│   │ +1° rot │    │ -2° rot │       │
│   └─────────┘    └─────────┘       │
│                                     │
│   ┌─────────┐    ┌─────────┐       │
│   │ [Card5] │    │ [Card6] │       │
│   │ -1° rot │    │ +3° rot │       │
│   └─────────┘    └─────────┘       │
│                                     │
│      ┌────────────────────┐        │
│      │ 🔗 BOOK NOW        │        │
│      └────────────────────┘        │
│                                     │
└─────────────────────────────────────┘

Individual Card Template

Width: 320px
Height: 380px
Border radius: 12px
Shadow: 0 4px 12px rgba(0,0,0,0.15)
Rotation: random(-3, +3) degrees

┌────────────────────────────────┐
│  ┌──────────────────────────┐  │
│  │                          │  │
│  │      [SQUARE IMAGE]      │  │
│  │       280 x 220px        │  │
│  │                          │  │
│  └──────────────────────────┘  │
│                                │
│  📍 Tbilisi, Georgia           │
│                                │
│  BJJ Fundamentals              │
│  ★ 4.9 (127)                   │
│                                │
└────────────────────────────────┘

Appendix B: Sample Ad Copy

Story 1 CTA Text Options

Adults Combat:

Adults Gym:

Kids:

Review Quotes to Feature

Adults:

  1. "Best BJJ gym in Georgia. Period." — Alex, UK
  2. "Started at 40, best decision ever." — Giorgi
  3. "Finally found my stress relief." — Maria, Russia
  4. "Coaches actually care about technique." — Tom, USA

Kids (from parents):

  1. "My son asks to go every day!" — Nino
  2. "Safe, fun, and they're learning discipline." — David
  3. "Finally something better than screens." — Maka
  4. "The coaches are amazing with kids." — Elena

End of Specification Document