user

coba buat iklannya lebih detail, targetnya spesifik akan belanda dann australia katanya


Default

Mas Eko wants me to create a more detailed ad campaign specifically targeting Netherlands (Belanda) and Australia. Let me update the proposal with more specific ads for these two markets.

I need to think about:
1. What makes Netherlands and Australia different as target markets
2. Cultural differences and how to approach each
3. Ad copy in Dutch and English (for AU)
4. Specific content for each market
5. More detailed ad creative descriptions
6. Specific audience targeting for each country

Let me research what I can find about Dutch and Australian travelers to Bali.

Key insights:
- Netherlands: Dutch tourists are a significant market for Bali. They speak Dutch but most are fluent in English. The Dutch have a historical connection with Indonesia (colonial history).
- Australia: Australia is one of the biggest tourism markets for Bali. Very close geographically. Many Australians travel to Bali regularly. English-speaking.

Let me create detailed ads for each market with:
- Audience targeting specifics
- Ad copy (headlines, primary text, descriptions)
- Visual creative direction
- CTA recommendations
- Funnel stage mapping

I'll update the DOCX with this detailed breakdown.

Oke Mas Eko! Sekarang aku bikin detail iklan khusus target **Belanda (Netherlands)** dan **Australia**. Lebih spesifik, lebih tajam! 🎯


system

---
name: news
description: "Look up the latest news for the user from specified news sites. Provides authoritative URLs for politics, finance, society, world, tech, sports, and entertainment. Use browser_use to open each URL and snapshot to get content, then summarize for the user."
metadata:
  builtin_skill_version: "1.2"
  qwenpaw:
    emoji: "📰"
    requires: {}
---

# News Reference

When the user asks for "latest news", "what's in the news today", or "news in category X", use the **browser_use** tool with the categories and URLs below: open the page, take a snapshot, then extract headlines and key points from the page content and reply to the user.

## Categories and Sources

| Category      | Source                    | URL |
|---------------|---------------------------|-----|
| **Politics**  | People's Daily · CPC News | https://cpc.people.com.cn/ |
| **Finance**   | China Economic Net        | http://www.ce.cn/ |
| **Society**   | China News · Society      | https://www.chinanews.com/society/ |
| **World**     | CGTN                      | https://www.cgtn.com/ |
| **Tech**      | Science and Technology Daily | https://www.stdaily.com/ |
| **Sports**    | CCTV Sports               | https://sports.cctv.com/ |
| **Entertainment** | Sina Entertainment   | https://ent.sina.com.cn/ |

## How to Use (browser_use)

1. **Clarify the user's need**: Determine which category or categories (politics / finance / society / world / tech / sports / entertainment), or pick 1–2 to fetch.
2. **Pick the URL**: Use the URL from the table for that category; for multiple categories, repeat the steps below for each URL.
3. **Open the page**: Call **browser_use** with:
   ```json
   {"action": "open", "url": "https://www.chinanews.com/society/"}
   ```
   Replace `url` with the corresponding URL from the table.
4. **Take a snapshot**: In the same session, call **browser_use** again:
   ```json
   {"action": "snapshot"}
   ```
   Extract headlines, dates, and summaries from the returned page content.
5. **Summarize the reply**: Organize a short list (headline + one or two sentences + source) by time or importance; if a site is unreachable or times out, say so and suggest another source.

## Notes

- Page structure may change when sites are updated; if extraction fails, say so and suggest the user open the link directly.
- When visiting multiple categories, run `open` for each URL, then `snapshot`, to avoid mixing content from different pages.
- You may include the original link in the reply so the user can open it.


user

hooh ulangi ya


Default

Mas Eko wants me to go back to the task - make the ads more detailed, targeting specifically Netherlands (Belanda) and Australia. Let me update the DOCX with very detailed ad creatives for these two markets.

Let me think about what I need to create:

For Netherlands:
- Historical connection: Indonesia was a Dutch colony - many Dutch have family ties or cultural interest
- Age group: older Dutch (50+) often traveled to Indonesia for nostalgia, but now younger Dutch (25-40) are going for digital nomad lifestyle
- Dutch tourists typically stay longer in Bali (2-4 weeks)
- Language: Dutch and English

For Australia:
- Bali is the #1 overseas destination for Australians
- Short flights (3-6 hours depending on city)
- Budget-conscious travelers - looking for value
- Many repeat visitors
- Age: 18-35 for party/surfing, 35-55 for families and relaxation
- Bali is almost like a "second home" for many Australians

Let me create the updated DOCX with:
1. Market insights for NL and AU
2. Detailed audience personas
3. Specific ad copy (headline + primary text + description) in English (and some Dutch phrases)
4. Visual direction for each ad
5. Funnel-specific ads for each market
6. Budget allocation between the two markets

Let me do this efficiently - update the existing script.

Oke, aku bikin ulang dengan detail iklan yang spesifik untuk **Belanda & Australia** 🎯

Pertama, coba research dulu karakteristik traveler dari dua negara ini ke Bali:

Question: Dutch Netherlands tourists Bali Indonesia travel trends 2025

Question: Dutch Netherlands tourists Bali Indonesia travel trends 2025


system

Detailed Results:

Title: Dutch Tourism Hits 52M Overnight Stays in 2025
URL: https://etias.com/articles/dutch-tourism-hits-52m-overnight-stays-in-2025
Content: [Air Travel](https://etias.com/articles/c/categories/air-travel/). [Airport Security](https://etias.com/articles/c/categories/airport-security/). [Asylum](https://etias.com/articles/c/categories/asylum/). [Austria](https://etias.com/articles/c/categories/austria/). [Belgium](https://etias.com/articles/c/categories/belgium/). [Border Security](https://etias.com/articles/c/categories/border-security/). [Brexit](https://etias.com/articles/c/categories/brexit/). [Bulgaria](https://etias.com/articles/c/categories/bulgaria/). [COVID-19](https://etias.com/articles/c/categories/covid-19/). [Criminal Record](https://etias.com/articles/c/categories/criminal-record/). [Croatia](https://etias.com/articles/c/categories/croatia/). [Cyprus](https://etias.com/articles/c/categories/cyprus/). [Denmark](https://etias.com/articles/c/categories/denmark/). [Digital COVID Certification](https://etias.com/articles/c/categories/digital-covid-certification/). [Digital Nomad](https://etias.com/articles/c/categories/digital-nomad/). [EFTA](https://etias.com/articles/c/categories/efta/). [Entry-Exit System](https://etias.com/articles/c/categories/entry-exit-system/). [Erasmus+](https://etias.com/articles/c/categories/erasmus/). [Estonia](https://etias.com/articles/c/categories/estonia/). [ETIAS](https://etias.com/articles/c/categories/etias/). [ETIAS Application](https://etias.com/articles/c/categories/etias-application/). [ETIAS Architecture](https://etias.com/articles/c/categories/etias-architecture/). [ETIAS Data Privacy](https://etias.com/articles/c/categories/etias-data-privacy/). [ETIAS Data Retention](https://etias.com/articles/c/categories/etias-data-retention/). [ETIAS Delay](https://etias.com/articles/c/categories/etias-delay/). [ETIAS Denial](https://etias.com/articles/c/categories/etias-denial/). [ETIAS for Minors](https://etias.com/articles/c/categories/etias-for-minors/). [ETIAS Form](https://etias.com/articles/c/categories/etias-form/). [ETIAS Guide](https://etias.com/articles/c/categories/etias-guide/). [ETIAS Infrastructure](https://etias.com/articles/c/categories/etias-infrastructure/). [ETIAS Launch](https://etias.com/articles/c/categories/etias-launch/). [ETIAS Notifications](https://etias.com/articles/c/categories/etias-notifications/). [ETIAS Passport](https://etias.com/articles/c/categories/etias-passport/). [ETIAS Processing](https://etias.com/articles/c/categories/etias-processing/). [ETIAS Requirements](https://etias.com/articles/c/categories/etias-requirements/). [ETIAS Screening](https://etias.com/articles/c/categories/etias-screening/). [ETIAS Technology](https://etias.com/articles/c/categories/etias-technology/). [ETIAS Validity](https://etias.com/articles/c/categories/etias-validity/). [ETIAS Watchlist](https://etias.com/articles/c/categories/etias-watchlist/). [EU Budget](https://etias<<<TRUNCATED>>>
The output above was truncated.
The full content is saved to the file and contains 21 lines in total.
This excerpt starts at line 1 and covers the next 3000 bytes.
If the current content is not enough, call `read_file` with file_path=/app/working/workspaces/default/tool_results/197c139b3bec42dcb1491de4d57ff230.txt start_line=5 to read more.


Default

Let me search more specifically for Australian and Dutch tourist stats to Bali.

Question: Australian tourists Bali Indonesia statistics top source market 2025

Question: Australian tourists Bali Indonesia statistics top source market 2025


system

Detailed Results:

Title: Bali Tourism Statistics 101: A Comprehensive Update
URL: https://www.bukitvista.com/blog/bali-tourism-statistics-updates
Content: In this article, we explore the latest **Bali tourism statistics**, including visitor trends, top tourist origins, and high-demand areas, along with insights for businesses looking to capitalize on the island’s booming travel industry. Bali is continuing its **strong resurgence in 2025**, building on the momentum from 2024, with **international tourist arrivals showing impressive growth**. Key **tourism markets such as Australia, India, China**, and more recently, **South Korea and the United Kingdom**, remain integral to Bali’s recovery and growth. Australia is still the **leading source of international visitors**, followed by strong showings from **India**, which has consistently maintained its position as a top market. **South Korea** and the **United Kingdom** are also among the more notable contributors to international arrivals, completing the broader set of top five source markets for foreign tourists in Bali in 2025. This continued pattern underscores **Australia’s significant contribution** to Bali’s tourism industry in 2025, followed by strong representation from **India and China**, with **South Korea and the UK** rounding out the leading international source countries.

Title: Bali's foreign tourist arrivals rise nearly 10 pct in 2025, BPS says
URL: https://en.antaranews.com/news/402594/balis-foreign-tourist-arrivals-rise-nearly-10-pct-in-2025-bps-says
Content: Australia remained Bali's largest source market, with 1.63 million arrivals in 2025, followed by India at about 569,260 and China at roughly

Title: Visitor Statistics | Bali Hotels Association | Make Bali Part Of Your Life
URL: https://www.balihotelsassociation.com/monthly-passengers-statistic
Content: *Official Sources: Bali Central Bureau of Statistics (BPS) & Bali Tourism Authority (DISPARDA). ## **March 2026**. | **472,070**  International Arrivals  **▲ 0.3% vs Mar 2025** | **1,060,798**  Domestic Arrivals\*  **▲ 67.5% vs Mar 2025** | **1,532,868**  Total Arrivals  **combined Mar 2026** |. * International arrivals reached **472,070 in March 2026**, marking a **+0.26% increase year-on-year** compared to March 2025 (470,851). * Australian tourists led foreign arrivals in March 2026, accounting for approximately **25.4% of total international arrivals** with 119,777 visitors. * Inter-province domestic tourism in March 2026 recorded **1,060,798 arrivals**, reflecting a **+67.5% surge year-on-year** versus March 2025 (633,380), boosted by the Nyepi and Eid al-Fitr holiday overlap. -The BHA figures are arrival counts for Bali Province tourists (international and domestic visitors to the island). The BHA statistics focus on arrivals into Bali specifically. PT Dezavo Horeka Internasional banner. PT GRAHA LESTARI AGUNG MAKMUR - ScentAir banner. * PT Dezavo Horeka Internasional logo. * PT GRAHA LESTARI AGUNG MAKMUR -<<<TRUNCATED>>>
The output above was truncated.
The full content is saved to the file and contains 21 lines in total.
This excerpt starts at line 1 and covers the next 3000 bytes.
If the current content is not enough, call `read_file` with file_path=/app/working/workspaces/default/tool_results/ebe2ac037aef4efbb71a59aa6d16349a.txt start_line=13 to read more.


Default

Great insights! Key stats:

**Australia in Bali:**
- #1 source market - 1.63 million arrivals in 2025
- ~25% of all international arrivals to Bali
- March 2026: 119,777 Australian visitors out of 472,070 total

**Netherlands:**
- Not in the top 5 (Australia, India, China, South Korea, UK)
- But Dutch have a historical connection to Indonesia
- Likely smaller but valuable niche market

Now let me build the updated DOCX. I'll make it very detailed with specific ads for each market.

Let me write the script now.

const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
        Header, Footer, AlignmentType, LevelFormat, HeadingLevel,
        BorderStyle, WidthType, ShadingType, PageNumber, PageBreak } = require('docx');
const fs = require('fs');

const border = { style: BorderStyle.SINGLE, size: 1, color: "CCCCCC" };
const borders = { top: border, bottom: border, left: border, right: border };

function cell(text, width, bold = false, fill = null) {
    return new TableCell({
        borders, width: { size: width, type: WidthType.DXA },
        shading: fill ? { fill, type: ShadingType.CLEAR } : undefined,
        margins: { top: 60, bottom: 60, left: 100, right: 100 },
        children: [new Paragraph({ children: [new TextRun({ text: text || "", bold, font: "Arial", size: 19 })] })]
    });
}
function headerCell(text, width) { return cell(text, width, true, "1F4E79"); }
function hCell(text, width) {
    return new TableCell({
        borders, width: { size: width, type: WidthType.DXA },
        shading: { fill: "1F4E79", type: ShadingType.CLEAR },
        margins: { top: 60, bottom: 60, left: 100, right: 100 },
        children: [new Paragraph({ children: [new TextRun({ text, bold: true, font: "Arial", size: 19, color: "FFFFFF" })] })]
    });
}
function green(text, width) { return cell(text, width, true, "E8F5E9"); }
function orange(text, width) { return cell(text, width, true, "FFF3E0"); }

function bullet(text, bold=false) {
    return new Paragraph({ numbering: { reference: "bullets", level: 0 }, children: [new TextRun({ text, bold })] });
}
function spacer(n=120) { return new Paragraph({ spacing: { before: n } }); }

const doc = new Document({
    styles: {
        default: { document: { run: { font: "Arial", size: 22 } } },
        paragraphStyles: [
            { id: "Heading1", name: "Heading 1", basedOn: "Normal", quickFormat: true,
              run: { size: 36, bold: true, font: "Arial", color: "1F4E79" },
              paragraph: { spacing: { before: 300, after: 160 }, outlineLevel: 0 } },
            { id: "Heading2", name: "Heading 2", basedOn: "Normal", quickFormat: true,
              run: { size: 26, bold: true, font: "Arial", color: "2E75B6" },
              paragraph: { spacing: { before: 200, after: 100 }, outlineLevel: 1 } },
            { id: "Heading3", name: "Heading 3", basedOn: "Normal", quickFormat: true,
              run: { size: 22, bold: true, font: "Arial", color: "333333" },
              paragraph: { spacing: { before: 140, after: 60 }, outlineLevel: 2 } },
        ]
    },
    numbering: {
        config: [
            { reference: "bullets",
              levels: [{ level: 0, format: LevelFormat.BULLET, text: "\u2022", alignment: AlignmentType.LEFT,
                style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },
        ]
    },
    sections: [{
        properties: { page: { size: { width: 12240, height: 15840 }, margin: { top: 1000, right: 1200, bottom: 1000, left: 1200 } } },
        headers: { default: new Header({ children: [new Paragraph({ alignment: AlignmentType.RIGHT,
            children: [new TextRun({ text: "Rolina - Detail Kampanye Meta Ads | Belanda & Australia", font: "Arial", size: 16, color: "999999" })] })] }) },
        footers: { default: new Footer({ children: [new Paragraph({ alignment: AlignmentType.CENTER,
            children: [new TextRun({ text: "Page ", font: "Arial", size: 16 }), new TextRun({ children: [PageNumber.CURRENT], font: "Arial", size: 16 })] })] }) },
        children: [

// ===== COVER =====
new Paragraph({ spacing: { before: 1600 } }),
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "DETAIL KAMPANYE", font: "Arial", size: 52, bold: true, color: "1F4E79" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Meta Ads Rolina", font: "Arial", size: 40, color: "2E75B6" })] }),
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Target: Belanda & Australia", font: "Arial", size: 36, bold: true, color: "333333" })] }),
spacer(400),
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "ROLINA VISA SERVICES", font: "Arial", size: 30, bold: true, color: "555555" })] }),
spacer(600),
new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Disusun oleh: Eko | Mei 2026", font: "Arial", size: 20, color: "999999" })] }),
new Paragraph({ children: [new PageBreak()] }),

// ===== MARKET INSIGHT =====
new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun("1. Data Pasar: Australia & Belanda di Bali")] }),
spacer(),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("1.1 Australia - Pasar #1 Bali")] }),
new Paragraph({ children: [new TextRun("Australia adalah sumber turis TERBESAR ke Bali. Data terbaru:")] }),
spacer(60),
bullet("1,63 JUTA kedatangan Australia ke Bali tahun 2025 (sumber: BPS/BHA)"),
bullet("~25% dari SELURUH turis internasional Bali berasal dari Australia"),
bullet("Maret 2026: 119.777 turis Australia = 25,4% dari total kedatangan"),
bullet("Penerbangan langsung dari Sydney, Melbourne, Brisbane, Perth, Adelaide, Darwin"),
bullet("Waktu tempuh hanya 3-6 jam - Bali adalah 'backyard' orang Australia"),
bullet("Demografi: 25-45 tahun (party/surf/families), 45-65 tahun (retreat/relax)"),
bullet("Rata-rata stay 7-14 hari, banyak repeat visitors (>50% pernah ke Bali sebelumnya)"),
bullet("Budget-conscious tapi loyal - cari value for money"),

spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("1.2 Belanda (Netherlands) - Pasar Historis")] }),
bullet("Hubungan sejarah Indonesia-Belanda sejak era kolonial - ada ikatan kultural"),
bullet("Banyak orang Belanda yang punya keturunan atau koneksi keluarga di Indonesia"),
bullet("Turis Belanda cenderung lebih lama tinggal (2-4 minggu)"),
bullet("Demografi: 30-55 tahun, educated, adventurous, suka budaya & alam"),
bullet("Bahasa: Dutch & English (99% Dutch people speak English fluent!)"),
bullet("Penerbangan: Amsterdam -> Bali via transit (Dubai, Singapore, Doha)"),
bullet("Tertarik pada budaya, spiritual, alam, dan luxury/wellness retreat"),
bullet("Digital nomad dari Belanda juga meningkat di Bali"),

spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("1.3 Segmentasi Target Rolina")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 3580, 3580],
    rows: [
        new TableRow({ children: [hCell("Segmen", 2200), hCell("Australia", 3580), hCell("Belanda", 3580)] }),
        new TableRow({ children: [
            green("PRIMARY", 2200),
            cell("Young Travelers\nUsia 25-40 | Solo/couple\nFirst-timer & repeat\nBudget: AUD$1K-3K\nInterests: Surf, party, explore\nVisa: Tourist/Business", 3580),
            cell("Cultural Explorers\nUsia 30-55 | Couple/family\nFirst-timer to Indonesia\nBudget: EUR 1K-4K\nInterests: Budaya, alam, seni\nVisa: Tourist/Family", 3580)
        ] }),
        new TableRow({ children: [
            orange("SECONDARY", 2200),
            cell("Families & Retirees\nUsia 45-65 | Family/couple\nFrequent Bali visitors\nBudget: AUD$3K-8K\nInterests: Relax, villa, food\nVisa: Tourist/Retirement", 3580),
            cell("Digital Nomads\nUsia 25-40 | Solo/couple\nRemote workers\nBudget: EUR 1K-3K/bulan\nInterests: Co-working, lifestyle\nVisa: Business/Working", 3580)
        ] }),
    ]
}),

new Paragraph({ children: [new PageBreak()] }),

// ===== AUSTRALIA CAMPAIGN =====
new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun("2. Kampanye AUSTRALIA")] }),
spacer(),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("2.1 Audience Targeting Australia")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2800, 6560],
    rows: [
        new TableRow({ children: [headerCell("Parameter", 2800), headerCell("Setting", 6560)] }),
        new TableRow({ children: [cell("Location", 2800), cell("Australia (Sydney, Melbourne, Brisbane, Perth, Gold Coast, Adelaide)", 6560)] }),
        new TableRow({ children: [cell("Age", 2800), cell("25-55 (split test: 25-40 vs 41-55)", 6560)] }),
        new TableRow({ children: [cell("Gender", 2800), cell("All", 6560)] }),
        new TableRow({ children: [cell("Detailed Targeting", 2800), cell("Interests: Bali, Indonesia, Travel, Beach holidays, Surfing, Budget travel, Backpacking\nBehaviors: Frequent international travelers\nExclude: Recent visitors to Indonesia (last 90 days)", 6560)] }),
        new TableRow({ children: [cell("Placements", 2800), cell("Facebook Feed, Instagram Feed, Instagram Stories, Reels (prioritaskan)", 6560)] }),
        new TableRow({ children: [cell("Estimated Size", 2800), cell("2.000.000 - 4.000.000 (broad) | 500K-1M (detailed)", 6560)] }),
    ]
}),

spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("2.2 AD #A1 - TOFU: "Bali is Calling, Mate!"")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Video 15 detik (9:16 vertical untuk Reels/Stories)", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Brand Awareness / Reach", 7160)] }),
        new TableRow({ children: [cell("Visual", 2200), cell("Buka dengan footage drone pantai Bali (Nusa Penida/Seminyak). Cut ke orang Australia happy di beach club, surfing, naik scooter. Akhiri logo Rolina + text 'Bali Just Got Easier'. MUSIC: Tropical house upbeat.", 7160)] }),
        new TableRow({ children: [cell("Headline", 2200), cell("Bali is Calling, Mate! 🇮🇩✈", 7160)] }),
        new TableRow({ children: [cell("Primary Text", 2200), cell("Dreaming of Bali? You're not alone, mate! Over 1.6 million Aussies visited Bali last year — and for good reason. Sun, surf, amazing food, and the best vibes on earth.\n\nPlanning your trip? Don't let visa paperwork kill your holiday buzz. Rolina has been handling Bali visas for 20+ years — we make it dead easy.\n\nFirst visa service in Bali. Since 2012. Trusted by thousands of Aussie travellers.", 7160)] }),
        new TableRow({ children: [cell("CTA", 2200), cell("Learn More -> Website", 7160)] }),
    ]
}),

spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("2.3 AD #A2 - MOFU: "Aussie, Here's Your Bali Visa Cheat Sheet"")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Carousel 5 slides (1:1 square)", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Traffic / Engagement", 7160)] }),
        new TableRow({ children: [cell("Audience", 2200), cell("Retarget: People who watched 25%+ of Video A1 + Lookalike 2% Aussie customers", 7160)] }),
        new TableRow({ children: [cell("Slide 1", 2200), cell("COVER: 'Aussie Traveller's Bali Visa Cheat Sheet' with hero image of Aussie at Bali airport smiling", 7160)] }),
        new TableRow({ children: [cell("Slide 2", 2200), cell("'Step 1: Choose Your Visa' Tourist (30-60 days), Business, or KITAS for long stays", 7160)] }),
        new TableRow({ children: [cell("Slide 3", 2200), cell("'Step 2: Send Us Your Docs' Just your passport + photo. We handle the rest.", 7160)] }),
        new TableRow({ children: [cell("Slide 4", 2200), cell("'Step 3: Get Approved & Fly!' Average processing: 3-7 business days. Real-time tracking included.", 7160)] }),
        new TableRow({ children: [cell("Slide 5", 2200), cell("CTA: 'Chat Our Visa Expert on WhatsApp Now!' + phone icon", 7160)] }),
        new TableRow({ children: [cell("Headline", 2200), cell("Aussie, Here's Your Bali Visa Cheat Sheet 🇦🇺➡🇮🇩", 7160)] }),
        new TableRow({ children: [cell("Primary Text", 2200), cell("Planning a Bali trip, mate? Don't stress about the visa — we've done this 10,000+ times for Aussies.\n\nMost Australians can get Visa on Arrival (VoA) for 30 days. But if you want to stay longer (up to 60 days) or come for work/business, Rolina handles everything.\n\n3 simple steps. Real-time tracking. 20+ years in Bali. No hidden fees.\n\nSwipe through for the full breakdown 👉", 7160)] }),
    ]
}),

spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("2.4 AD #A3 - BOFU: "Skip the Queue, Get Your Bali Visa Today"")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Single Image (1:1) + WhatsApp CTA", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Conversion / Messages", 7160)] }),
        new TableRow({ children: [cell("Audience", 2200), cell("Retarget: Website visitors 30d + engaged with A1/A2 + Lookalike 1%", 7160)] }),
        new TableRow({ children: [cell("Visual", 2200), cell("Image: Happy Aussie couple at Bali beach villa with overlaid text 'Bali Visa Sorted in 3 Days'. Bottom: WhatsApp chat bubble with 'G'day! I need a visa'", 7160)] }),
        new TableRow({ children: [cell("Headline", 2200), cell("Skip the Queue — Get Your Bali Visa in 3 Days 🇦🇺", 7160)] }),
        new TableRow({ children: [cell("Primary Text", 2200), cell("READY TO GO, MATE? 🏄♂\n\nStop Googling visa requirements. Stop stressing about paperwork. Rolina handles EVERYTHING for your Bali trip — from tourist visa to KITAS.\n\n✅ 20+ years in Bali\n✅ Aussie-friendly service (we speak your language)\n✅ Real-time tracking so you always know your status\n✅ Average processing: just 3-7 business days\n\n💬 Tap below to chat our visa expert NOW on WhatsApp. Free consultation. No obligations.", 7160)] }),
        new TableRow({ children: [cell("CTA Button", 2200), cell("Send WhatsApp Message", 7160)] }),
        new TableRow({ children: [cell("CTA Link", 2200), cell("https://wa.me/6289509006600?text=Gday! I'm planning a trip to Bali and need help with my visa.", 7160)] }),
    ]
}),

new Paragraph({ children: [new PageBreak()] }),

// ===== AD #A4 TESTIMONIAL =====
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("2.5 AD #A4 - Testimonial: "Real Aussies, Real Bali Trips"")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Video 20-30 detik (testimonial)", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Engagement / Video Views", 7160)] }),
        new TableRow({ children: [cell("Visual", 2200), cell("[Jika ada klien Australia] Minta klien rekam video pendek: cerita pengalaman pakai Rolina. Alternatif: footage lifestyle + text overlay kutipan testimonial + nama + kota asal.", 7160)] }),
        new TableRow({ children: [cell("Headline", 2200), cell(""Rolina Made Bali So Easy!" — Sarah, Sydney", 7160)] }),
        new TableRow({ children: [cell("Primary Text", 2200), cell("Don't just take our word for it. Hundreds of Aussies trust Rolina every year to sort their Bali visa.\n\nSarah from Sydney: 'I was so confused about the visa extension process. Rolina took care of everything — I didn't lift a finger. Highly recommend for any Aussie heading to Bali!'\n\nPlanning your Bali trip? Chat us on WhatsApp now. First consultation is free.", 7160)] }),
    ]
}),

// ===== AD #A5 RETARGETING =====
spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("2.6 AD #A5 - Urgency: "Last Minute Bali? We Got You!"")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Single Image (Stories 9:16)", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Conversion", 7160)] }),
        new TableRow({ children: [cell("Audience", 2200), cell("All Australia audiences who haven't converted yet", 7160)] }),
        new TableRow({ children: [cell("Visual", 2200), cell("Countdown-style image: 'Bali in [X] Days?' with plane ticket icon. Urgent red/yellow accents.", 7160)] }),
        new TableRow({ children: [cell("Headline", 2200), cell("Flying to Bali Soon? Sort Your Visa NOW 🛫", 7160)] }),
        new TableRow({ children: [cell("Primary Text", 2200), cell("WAIT! Before you book that flight...\n\nMake sure your visa is sorted. Rolina processes visas in as fast as 3 business days for Aussies.\n\n⏰ Don't leave it to the last minute — some visas take longer.\n💬 Chat us NOW on WhatsApp for a free visa check.", 7160)] }),
        new TableRow({ children: [cell("CTA Button", 2200), cell("Send WhatsApp Message", 7160)] }),
    ]
}),

new Paragraph({ children: [new PageBreak()] }),

// ===== NETHERLANDS CAMPAIGN =====
new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun("3. Kampanye BELANDA (Netherlands)")] }),
spacer(),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("3.1 Audience Targeting Belanda")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2800, 6560],
    rows: [
        new TableRow({ children: [headerCell("Parameter", 2800), headerCell("Setting", 6560)] }),
        new TableRow({ children: [cell("Location", 2800), cell("Netherlands (Amsterdam, Rotterdam, Utrecht, Den Haag, Eindhoven)", 6560)] }),
        new TableRow({ children: [cell("Age", 2800), cell("25-55", 6560)] }),
        new TableRow({ children: [cell("Language", 2800), cell("Dutch + English (buat 2 ad set terpisah untuk A/B test!)", 6560)] }),
        new TableRow({ children: [cell("Detailed Targeting", 2800), cell("Interests: Indonesia, Bali, Southeast Asia travel, Culture, Yoga & spirituality, Digital nomad\nBehaviors: Frequent international travelers, Expats\nExclude: Recent visitors to Indonesia (last 90 days)", 6560)] }),
        new TableRow({ children: [cell("Placements", 2800), cell("Facebook Feed, Instagram Feed, Instagram Stories, Reels", 6560)] }),
        new TableRow({ children: [cell("Estimated Size", 2800), cell("500.000 - 1.500.000 (broad) | 150K-400K (detailed)", 6560)] }),
    ]
}),

spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("3.2 AD #N1 - TOFU: "Ontdek het Echte Bali"")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Video 20 detik (9:16 vertical)", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Brand Awareness / Reach", 7160)] }),
        new TableRow({ children: [cell("Visual", 2200), cell("Cinematic footage: Bali temples (Tanah Lot, Uluwatu), rice terraces (Tegallalang), traditional dance, Dutch tourist enjoying Bali coffee at sunrise. Slow, artsy, emotional. Color grade: warm tropical. Overlay text in Dutch: 'Het echte Bali wacht op je.' Akhiri: logo Rolina + 'Sinds 2012.'", 7160)] }),
        new TableRow({ children: [cell("Headline (NL)", 2200), cell("Ontdek het Echte Bali — Visa Geregeld in 3 Dagen 🇮🇩", 7160)] }),
        new TableRow({ children: [cell("Headline (EN)", 2200), cell("Discover the Real Bali — Visa Sorted in 3 Days 🇮🇩", 7160)] }),
        new TableRow({ children: [cell("Primary Text (NL)", 2200), cell("Bali is meer dan een strand. Het is tempels bij zonsopgang, rijstvelden die glinsteren in de ochtendmist, en de warmste glimlach die je ooit zult zien.\n\nAl 20+ jaar helpt Rolina reizigers uit Nederland met hun visum voor Indonesië. Wij zijn het eerste visumbureau in Bali — en nog steeds het meest vertrouwde.\n\nPlan je reis. Wij regelen de rest.\n\n👉 Klik voor gratis visumadvies.", 7160)] }),
        new TableRow({ children: [cell("Primary Text (EN)", 2200), cell("Bali is more than beaches. It's sunrise temples, rice terraces glowing in morning mist, and the warmest smiles on earth.\n\nFor 20+ years, Rolina has helped Dutch travellers get their Indonesia visa. We're the first visa service in Bali — and still the most trusted.\n\nPlan your trip. We'll handle the rest.\n\n👉 Tap for free visa advice.", 7160)] }),
        new TableRow({ children: [cell("CTA", 2200), cell("Learn More", 7160)] }),
    ]
}),

spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("3.3 AD #N2 - MOFU: "Visum voor Indonesië? Zo Geregeld."")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Carousel 5 slides (1:1)", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Traffic / Engagement", 7160)] }),
        new TableRow({ children: [cell("Audience", 2200), cell("Retarget: People who watched 25%+ of Video N1 + Lookalike 2%", 7160)] }),
        new TableRow({ children: [cell("Slide 1 (NL)", 2200), cell("'Visum voor Indonesië: Alles Wat Je Moet Weten' + hero image Bali temple", 7160)] }),
        new TableRow({ children: [cell("Slide 2 (NL)", 2200), cell("'Toeristenvisum (30-60 dagen)' — Voor vakantie, familiebezoek, yoga retreat", 7160)] }),
        new TableRow({ children: [cell("Slide 3 (NL)", 2200), cell("'Zakenvisum & KITAS' — Voor werk, investering, of lang verblijf", 7160)] }),
        new TableRow({ children: [cell("Slide 4 (NL)", 2200), cell("'Waarom Rolina?' — 20+ jaar ervaring, real-time tracking, Nederlandstalige hulp", 7160)] }),
        new TableRow({ children: [cell("Slide 5 (NL)", 2200), cell("'Klaar voor Bali? Start je visumaanvraag nu!' + WhatsApp button", 7160)] }),
        new TableRow({ children: [cell("Headline (NL)", 2200), cell("Visum voor Indonesië? Zo Geregeld. ✅", 7160)] }),
        new TableRow({ children: [cell("Primary Text (NL)", 2200), cell("Plan je een reis naar Indonesië? Het visum is vaak het lastigste deel — maar niet met Rolina.\n\nAls Nederlander heb je verschillende opties: toeristenvisum (30-60 dagen), zakenvisum, of een KITAS voor lang verblijf. Wij helpen je met de juiste keuze — snel, transparant, en zonder gedoe.\n\nAl 20+ jaar de #1 visumservice in Bali. Swipe voor alle info 👉", 7160)] }),
        new TableRow({ children: [cell("Primary Text (EN)", 2200), cell("Planning a trip to Indonesia? The visa is often the trickiest part — but not with Rolina.\n\nAs a Dutch citizen, you have several options: tourist visa (30-60 days), business visa, or KITAS for long stays. We help you choose the right one — fast, transparent, and hassle-free.\n\nBali's #1 visa service for 20+ years. Swipe for all the info 👉", 7160)] }),
    ]
}),

new Paragraph({ children: [new PageBreak()] }),

// ===== AD #N3 BOFU DUTCH =====
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("3.4 AD #N3 - BOFU: "Start Je Bali Avontuur Vandaag"")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Single Image (1:1) + WhatsApp CTA", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Conversion / Messages", 7160)] }),
        new TableRow({ children: [cell("Audience", 2200), cell("Retarget: Website visitors 30d + engaged N1/N2 + Lookalike 1%", 7160)] }),
        new TableRow({ children: [cell("Visual", 2200), cell("Split image: Left side = cozy Dutch home with rain + 'Verlangen naar zon?' text. Right side = Bali beach paradise + 'Visum geregeld in 3 dagen.' Bottom: WhatsApp preview bubble in Dutch.", 7160)] }),
        new TableRow({ children: [cell("Headline (NL)", 2200), cell("Klaar voor de Overstap? Start Je Bali Avontuur Vandaag 🌴", 7160)] }),
        new TableRow({ children: [cell("Headline (EN)", 2200), cell("Ready to Make the Move? Start Your Bali Adventure Today 🌴", 7160)] }),
        new TableRow({ children: [cell("Primary Text (NL)", 2200), cell("STOP met dromen. START met plannen. ✈\n\nTerwijl het regent in Nederland, schijnt de zon in Bali. En Rolina maakt het makkelijker dan ooit om je visum te regelen.\n\n✅ 20+ jaar ervaring in Bali\n✅ Nederlandstalige ondersteuning\n✅ Real-time tracking van je aanvraag\n✅ Gemiddeld in 3-7 werkdagen geregeld\n\n💬 Klik hieronder om GRATIS met onze visumexpert te chatten op WhatsApp. Vrijblijvend.", 7160)] }),
        new TableRow({ children: [cell("Primary Text (EN)", 2200), cell("STOP dreaming. START planning. ✈\n\nWhile it rains in the Netherlands, the sun shines in Bali. And Rolina makes it easier than ever to sort your visa.\n\n✅ 20+ years in Bali\n✅ Dutch-speaking support\n✅ Real-time application tracking\n✅ Average 3-7 business days processing\n\n💬 Tap below to chat with our visa expert on WhatsApp. No obligations.", 7160)] }),
        new TableRow({ children: [cell("CTA Button", 2200), cell("Send WhatsApp Message", 7160)] }),
        new TableRow({ children: [cell("CTA Link", 2200), cell("https://wa.me/6289509006600?text=Hallo! Ik wil graag een visum voor Indonesië regelen.", 7160)] }),
    ]
}),

spacer(150),
new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun("3.5 AD #N4 - Cultural: "Indonesia & Nederland: Een Bijzondere Band"")] }),
new Table({
    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],
    rows: [
        new TableRow({ children: [headerCell("Elemen", 2200), headerCell("Detail", 7160)] }),
        new TableRow({ children: [cell("Format", 2200), cell("Video 20-25 detik (emotional/story-driven)", 7160)] }),
        new TableRow({ children: [cell("Objective", 2200), cell("Engagement / Video Views", 7160)] }),
        new TableRow({ children: [cell("Visual", 2200), cell("Slow transition: Old colonial photo of Dutch in Indonesia -> Modern Dutch family visiting Bali temple -> Dutch person getting visa help at Rolina office -> Happy Dutch couple at Bali sunset. Voiceover (Dutch): 'Onze landen delen geschiedenis. Nu delen we een thuis.' Music: Soft gamelan + piano.", 7160)] }),
        new TableRow({ children: [cell("Headline (NL)", 2200), cell("Nederland & Indonesië: Een Bijzondere

{"content": "const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, \n        Header, Footer, AlignmentType, LevelFormat, HeadingLevel, \n        BorderStyle, WidthType, ShadingType, PageNumber, PageBreak } = require('docx');\nconst fs = require('fs');\n\nconst border = { style: BorderStyle.SINGLE, size: 1, color: \"CCCCCC\" };\nconst borders = { top: border, bottom: border, left: border, right: border };\n\nfunction cell(text, width, bold = false, fill = null) {\n    return new TableCell({\n        borders, width: { size: width, type: WidthType.DXA },\n        shading: fill ? { fill, type: ShadingType.CLEAR } : undefined,\n        margins: { top: 60, bottom: 60, left: 100, right: 100 },\n        children: [new Paragraph({ children: [new TextRun({ text: text || \"\", bold, font: \"Arial\", size: 19 })] })]\n    });\n}\nfunction headerCell(text, width) { return cell(text, width, true, \"1F4E79\"); }\nfunction hCell(text, width) { \n    return new TableCell({\n        borders, width: { size: width, type: WidthType.DXA },\n        shading: { fill: \"1F4E79\", type: ShadingType.CLEAR },\n        margins: { top: 60, bottom: 60, left: 100, right: 100 },\n        children: [new Paragraph({ children: [new TextRun({ text, bold: true, font: \"Arial\", size: 19, color: \"FFFFFF\" })] })]\n    });\n}\nfunction green(text, width) { return cell(text, width, true, \"E8F5E9\"); }\nfunction orange(text, width) { return cell(text, width, true, \"FFF3E0\"); }\n\nfunction bullet(text, bold=false) {\n    return new Paragraph({ numbering: { reference: \"bullets\", level: 0 }, children: [new TextRun({ text, bold })] });\n}\nfunction spacer(n=120) { return new Paragraph({ spacing: { before: n } }); }\n\nconst doc = new Document({\n    styles: {\n        default: { document: { run: { font: \"Arial\", size: 22 } } },\n        paragraphStyles: [\n            { id: \"Heading1\", name: \"Heading 1\", basedOn: \"Normal\", quickFormat: true,\n              run: { size: 36, bold: true, font: \"Arial\", color: \"1F4E79\" },\n              paragraph: { spacing: { before: 300, after: 160 }, outlineLevel: 0 } },\n            { id: \"Heading2\", name: \"Heading 2\", basedOn: \"Normal\", quickFormat: true,\n              run: { size: 26, bold: true, font: \"Arial\", color: \"2E75B6\" },\n              paragraph: { spacing: { before: 200, after: 100 }, outlineLevel: 1 } },\n            { id: \"Heading3\", name: \"Heading 3\", basedOn: \"Normal\", quickFormat: true,\n              run: { size: 22, bold: true, font: \"Arial\", color: \"333333\" },\n              paragraph: { spacing: { before: 140, after: 60 }, outlineLevel: 2 } },\n        ]\n    },\n    numbering: {\n        config: [\n            { reference: \"bullets\",\n              levels: [{ level: 0, format: LevelFormat.BULLET, text: \"\\u2022\", alignment: AlignmentType.LEFT,\n                style: { paragraph: { indent: { left: 720, hanging: 360 } } } }] },\n        ]\n    },\n    sections: [{\n        properties: { page: { size: { width: 12240, height: 15840 }, margin: { top: 1000, right: 1200, bottom: 1000, left: 1200 } } },\n        headers: { default: new Header({ children: [new Paragraph({ alignment: AlignmentType.RIGHT,\n            children: [new TextRun({ text: \"Rolina - Detail Kampanye Meta Ads | Belanda & Australia\", font: \"Arial\", size: 16, color: \"999999\" })] })] }) },\n        footers: { default: new Footer({ children: [new Paragraph({ alignment: AlignmentType.CENTER,\n            children: [new TextRun({ text: \"Page \", font: \"Arial\", size: 16 }), new TextRun({ children: [PageNumber.CURRENT], font: \"Arial\", size: 16 })] })] }) },\n        children: [\n\n// ===== COVER =====\nnew Paragraph({ spacing: { before: 1600 } }),\nnew Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: \"DETAIL KAMPANYE\", font: \"Arial\", size: 52, bold: true, color: \"1F4E79\" })] }),\nnew Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: \"Meta Ads Rolina\", font: \"Arial\", size: 40, color: \"2E75B6\" })] }),\nnew Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: \"Target: Belanda & Australia\", font: \"Arial\", size: 36, bold: true, color: \"333333\" })] }),\nspacer(400),\nnew Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: \"ROLINA VISA SERVICES\", font: \"Arial\", size: 30, bold: true, color: \"555555\" })] }),\nspacer(600),\nnew Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: \"Disusun oleh: Eko | Mei 2026\", font: \"Arial\", size: 20, color: \"999999\" })] }),\nnew Paragraph({ children: [new PageBreak()] }),\n\n// ===== MARKET INSIGHT =====\nnew Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun(\"1. Data Pasar: Australia & Belanda di Bali\")] }),\nspacer(),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"1.1 Australia - Pasar #1 Bali\")] }),\nnew Paragraph({ children: [new TextRun(\"Australia adalah sumber turis TERBESAR ke Bali. Data terbaru:\")] }),\nspacer(60),\nbullet(\"1,63 JUTA kedatangan Australia ke Bali tahun 2025 (sumber: BPS/BHA)\"),\nbullet(\"~25% dari SELURUH turis internasional Bali berasal dari Australia\"),\nbullet(\"Maret 2026: 119.777 turis Australia = 25,4% dari total kedatangan\"),\nbullet(\"Penerbangan langsung dari Sydney, Melbourne, Brisbane, Perth, Adelaide, Darwin\"),\nbullet(\"Waktu tempuh hanya 3-6 jam - Bali adalah 'backyard' orang Australia\"),\nbullet(\"Demografi: 25-45 tahun (party/surf/families), 45-65 tahun (retreat/relax)\"),\nbullet(\"Rata-rata stay 7-14 hari, banyak repeat visitors (>50% pernah ke Bali sebelumnya)\"),\nbullet(\"Budget-conscious tapi loyal - cari value for money\"),\n\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"1.2 Belanda (Netherlands) - Pasar Historis\")] }),\nbullet(\"Hubungan sejarah Indonesia-Belanda sejak era kolonial - ada ikatan kultural\"),\nbullet(\"Banyak orang Belanda yang punya keturunan atau koneksi keluarga di Indonesia\"),\nbullet(\"Turis Belanda cenderung lebih lama tinggal (2-4 minggu)\"),\nbullet(\"Demografi: 30-55 tahun, educated, adventurous, suka budaya & alam\"),\nbullet(\"Bahasa: Dutch & English (99% Dutch people speak English fluent!)\"),\nbullet(\"Penerbangan: Amsterdam -> Bali via transit (Dubai, Singapore, Doha)\"),\nbullet(\"Tertarik pada budaya, spiritual, alam, dan luxury/wellness retreat\"),\nbullet(\"Digital nomad dari Belanda juga meningkat di Bali\"),\n\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"1.3 Segmentasi Target Rolina\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 3580, 3580],\n    rows: [\n        new TableRow({ children: [hCell(\"Segmen\", 2200), hCell(\"Australia\", 3580), hCell(\"Belanda\", 3580)] }),\n        new TableRow({ children: [\n            green(\"PRIMARY\", 2200),\n            cell(\"Young Travelers\\nUsia 25-40 | Solo/couple\\nFirst-timer & repeat\\nBudget: AUD$1K-3K\\nInterests: Surf, party, explore\\nVisa: Tourist/Business\", 3580),\n            cell(\"Cultural Explorers\\nUsia 30-55 | Couple/family\\nFirst-timer to Indonesia\\nBudget: EUR 1K-4K\\nInterests: Budaya, alam, seni\\nVisa: Tourist/Family\", 3580)\n        ] }),\n        new TableRow({ children: [\n            orange(\"SECONDARY\", 2200),\n            cell(\"Families & Retirees\\nUsia 45-65 | Family/couple\\nFrequent Bali visitors\\nBudget: AUD$3K-8K\\nInterests: Relax, villa, food\\nVisa: Tourist/Retirement\", 3580),\n            cell(\"Digital Nomads\\nUsia 25-40 | Solo/couple\\nRemote workers\\nBudget: EUR 1K-3K/bulan\\nInterests: Co-working, lifestyle\\nVisa: Business/Working\", 3580)\n        ] }),\n    ]\n}),\n\nnew Paragraph({ children: [new PageBreak()] }),\n\n// ===== AUSTRALIA CAMPAIGN =====\nnew Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun(\"2. Kampanye AUSTRALIA\")] }),\nspacer(),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"2.1 Audience Targeting Australia\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2800, 6560],\n    rows: [\n        new TableRow({ children: [headerCell(\"Parameter\", 2800), headerCell(\"Setting\", 6560)] }),\n        new TableRow({ children: [cell(\"Location\", 2800), cell(\"Australia (Sydney, Melbourne, Brisbane, Perth, Gold Coast, Adelaide)\", 6560)] }),\n        new TableRow({ children: [cell(\"Age\", 2800), cell(\"25-55 (split test: 25-40 vs 41-55)\", 6560)] }),\n        new TableRow({ children: [cell(\"Gender\", 2800), cell(\"All\", 6560)] }),\n        new TableRow({ children: [cell(\"Detailed Targeting\", 2800), cell(\"Interests: Bali, Indonesia, Travel, Beach holidays, Surfing, Budget travel, Backpacking\\nBehaviors: Frequent international travelers\\nExclude: Recent visitors to Indonesia (last 90 days)\", 6560)] }),\n        new TableRow({ children: [cell(\"Placements\", 2800), cell(\"Facebook Feed, Instagram Feed, Instagram Stories, Reels (prioritaskan)\", 6560)] }),\n        new TableRow({ children: [cell(\"Estimated Size\", 2800), cell(\"2.000.000 - 4.000.000 (broad) | 500K-1M (detailed)\", 6560)] }),\n    ]\n}),\n\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"2.2 AD #A1 - TOFU: \"Bali is Calling, Mate!\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Video 15 detik (9:16 vertical untuk Reels/Stories)\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Brand Awareness / Reach\", 7160)] }),\n        new TableRow({ children: [cell(\"Visual\", 2200), cell(\"Buka dengan footage drone pantai Bali (Nusa Penida/Seminyak). Cut ke orang Australia happy di beach club, surfing, naik scooter. Akhiri logo Rolina + text 'Bali Just Got Easier'. MUSIC: Tropical house upbeat.\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline\", 2200), cell(\"Bali is Calling, Mate! 🇮🇩✈\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text\", 2200), cell(\"Dreaming of Bali? You're not alone, mate! Over 1.6 million Aussies visited Bali last year — and for good reason. Sun, surf, amazing food, and the best vibes on earth.\\n\\nPlanning your trip? Don't let visa paperwork kill your holiday buzz. Rolina has been handling Bali visas for 20+ years — we make it dead easy.\\n\\nFirst visa service in Bali. Since 2012. Trusted by thousands of Aussie travellers.\", 7160)] }),\n        new TableRow({ children: [cell(\"CTA\", 2200), cell(\"Learn More -> Website\", 7160)] }),\n    ]\n}),\n\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"2.3 AD #A2 - MOFU: \"Aussie, Here's Your Bali Visa Cheat Sheet\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Carousel 5 slides (1:1 square)\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Traffic / Engagement\", 7160)] }),\n        new TableRow({ children: [cell(\"Audience\", 2200), cell(\"Retarget: People who watched 25%+ of Video A1 + Lookalike 2% Aussie customers\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 1\", 2200), cell(\"COVER: 'Aussie Traveller's Bali Visa Cheat Sheet' with hero image of Aussie at Bali airport smiling\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 2\", 2200), cell(\"'Step 1: Choose Your Visa' Tourist (30-60 days), Business, or KITAS for long stays\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 3\", 2200), cell(\"'Step 2: Send Us Your Docs' Just your passport + photo. We handle the rest.\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 4\", 2200), cell(\"'Step 3: Get Approved & Fly!' Average processing: 3-7 business days. Real-time tracking included.\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 5\", 2200), cell(\"CTA: 'Chat Our Visa Expert on WhatsApp Now!' + phone icon\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline\", 2200), cell(\"Aussie, Here's Your Bali Visa Cheat Sheet 🇦🇺➡🇮🇩\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text\", 2200), cell(\"Planning a Bali trip, mate? Don't stress about the visa — we've done this 10,000+ times for Aussies.\\n\\nMost Australians can get Visa on Arrival (VoA) for 30 days. But if you want to stay longer (up to 60 days) or come for work/business, Rolina handles everything.\\n\\n3 simple steps. Real-time tracking. 20+ years in Bali. No hidden fees.\\n\\nSwipe through for the full breakdown 👉\", 7160)] }),\n    ]\n}),\n\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"2.4 AD #A3 - BOFU: \"Skip the Queue, Get Your Bali Visa Today\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Single Image (1:1) + WhatsApp CTA\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Conversion / Messages\", 7160)] }),\n        new TableRow({ children: [cell(\"Audience\", 2200), cell(\"Retarget: Website visitors 30d + engaged with A1/A2 + Lookalike 1%\", 7160)] }),\n        new TableRow({ children: [cell(\"Visual\", 2200), cell(\"Image: Happy Aussie couple at Bali beach villa with overlaid text 'Bali Visa Sorted in 3 Days'. Bottom: WhatsApp chat bubble with 'G'day! I need a visa'\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline\", 2200), cell(\"Skip the Queue — Get Your Bali Visa in 3 Days 🇦🇺\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text\", 2200), cell(\"READY TO GO, MATE? 🏄♂\\n\\nStop Googling visa requirements. Stop stressing about paperwork. Rolina handles EVERYTHING for your Bali trip — from tourist visa to KITAS.\\n\\n✅ 20+ years in Bali\\n✅ Aussie-friendly service (we speak your language)\\n✅ Real-time tracking so you always know your status\\n✅ Average processing: just 3-7 business days\\n\\n💬 Tap below to chat our visa expert NOW on WhatsApp. Free consultation. No obligations.\", 7160)] }),\n        new TableRow({ children: [cell(\"CTA Button\", 2200), cell(\"Send WhatsApp Message\", 7160)] }),\n        new TableRow({ children: [cell(\"CTA Link\", 2200), cell(\"https://wa.me/6289509006600?text=Gday! I'm planning a trip to Bali and need help with my visa.\", 7160)] }),\n    ]\n}),\n\nnew Paragraph({ children: [new PageBreak()] }),\n\n// ===== AD #A4 TESTIMONIAL =====\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"2.5 AD #A4 - Testimonial: \"Real Aussies, Real Bali Trips\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Video 20-30 detik (testimonial)\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Engagement / Video Views\", 7160)] }),\n        new TableRow({ children: [cell(\"Visual\", 2200), cell(\"[Jika ada klien Australia] Minta klien rekam video pendek: cerita pengalaman pakai Rolina. Alternatif: footage lifestyle + text overlay kutipan testimonial + nama + kota asal.\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline\", 2200), cell(\"\"Rolina Made Bali So Easy!\" — Sarah, Sydney\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text\", 2200), cell(\"Don't just take our word for it. Hundreds of Aussies trust Rolina every year to sort their Bali visa.\\n\\nSarah from Sydney: 'I was so confused about the visa extension process. Rolina took care of everything — I didn't lift a finger. Highly recommend for any Aussie heading to Bali!'\\n\\nPlanning your Bali trip? Chat us on WhatsApp now. First consultation is free.\", 7160)] }),\n    ]\n}),\n\n// ===== AD #A5 RETARGETING =====\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"2.6 AD #A5 - Urgency: \"Last Minute Bali? We Got You!\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Single Image (Stories 9:16)\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Conversion\", 7160)] }),\n        new TableRow({ children: [cell(\"Audience\", 2200), cell(\"All Australia audiences who haven't converted yet\", 7160)] }),\n        new TableRow({ children: [cell(\"Visual\", 2200), cell(\"Countdown-style image: 'Bali in [X] Days?' with plane ticket icon. Urgent red/yellow accents.\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline\", 2200), cell(\"Flying to Bali Soon? Sort Your Visa NOW 🛫\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text\", 2200), cell(\"WAIT! Before you book that flight...\\n\\nMake sure your visa is sorted. Rolina processes visas in as fast as 3 business days for Aussies.\\n\\n⏰ Don't leave it to the last minute — some visas take longer.\\n💬 Chat us NOW on WhatsApp for a free visa check.\", 7160)] }),\n        new TableRow({ children: [cell(\"CTA Button\", 2200), cell(\"Send WhatsApp Message\", 7160)] }),\n    ]\n}),\n\nnew Paragraph({ children: [new PageBreak()] }),\n\n// ===== NETHERLANDS CAMPAIGN =====\nnew Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun(\"3. Kampanye BELANDA (Netherlands)\")] }),\nspacer(),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"3.1 Audience Targeting Belanda\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2800, 6560],\n    rows: [\n        new TableRow({ children: [headerCell(\"Parameter\", 2800), headerCell(\"Setting\", 6560)] }),\n        new TableRow({ children: [cell(\"Location\", 2800), cell(\"Netherlands (Amsterdam, Rotterdam, Utrecht, Den Haag, Eindhoven)\", 6560)] }),\n        new TableRow({ children: [cell(\"Age\", 2800), cell(\"25-55\", 6560)] }),\n        new TableRow({ children: [cell(\"Language\", 2800), cell(\"Dutch + English (buat 2 ad set terpisah untuk A/B test!)\", 6560)] }),\n        new TableRow({ children: [cell(\"Detailed Targeting\", 2800), cell(\"Interests: Indonesia, Bali, Southeast Asia travel, Culture, Yoga & spirituality, Digital nomad\\nBehaviors: Frequent international travelers, Expats\\nExclude: Recent visitors to Indonesia (last 90 days)\", 6560)] }),\n        new TableRow({ children: [cell(\"Placements\", 2800), cell(\"Facebook Feed, Instagram Feed, Instagram Stories, Reels\", 6560)] }),\n        new TableRow({ children: [cell(\"Estimated Size\", 2800), cell(\"500.000 - 1.500.000 (broad) | 150K-400K (detailed)\", 6560)] }),\n    ]\n}),\n\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"3.2 AD #N1 - TOFU: \"Ontdek het Echte Bali\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Video 20 detik (9:16 vertical)\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Brand Awareness / Reach\", 7160)] }),\n        new TableRow({ children: [cell(\"Visual\", 2200), cell(\"Cinematic footage: Bali temples (Tanah Lot, Uluwatu), rice terraces (Tegallalang), traditional dance, Dutch tourist enjoying Bali coffee at sunrise. Slow, artsy, emotional. Color grade: warm tropical. Overlay text in Dutch: 'Het echte Bali wacht op je.' Akhiri: logo Rolina + 'Sinds 2012.'\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline (NL)\", 2200), cell(\"Ontdek het Echte Bali — Visa Geregeld in 3 Dagen 🇮🇩\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline (EN)\", 2200), cell(\"Discover the Real Bali — Visa Sorted in 3 Days 🇮🇩\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text (NL)\", 2200), cell(\"Bali is meer dan een strand. Het is tempels bij zonsopgang, rijstvelden die glinsteren in de ochtendmist, en de warmste glimlach die je ooit zult zien.\\n\\nAl 20+ jaar helpt Rolina reizigers uit Nederland met hun visum voor Indonesië. Wij zijn het eerste visumbureau in Bali — en nog steeds het meest vertrouwde.\\n\\nPlan je reis. Wij regelen de rest.\\n\\n👉 Klik voor gratis visumadvies.\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text (EN)\", 2200), cell(\"Bali is more than beaches. It's sunrise temples, rice terraces glowing in morning mist, and the warmest smiles on earth.\\n\\nFor 20+ years, Rolina has helped Dutch travellers get their Indonesia visa. We're the first visa service in Bali — and still the most trusted.\\n\\nPlan your trip. We'll handle the rest.\\n\\n👉 Tap for free visa advice.\", 7160)] }),\n        new TableRow({ children: [cell(\"CTA\", 2200), cell(\"Learn More\", 7160)] }),\n    ]\n}),\n\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"3.3 AD #N2 - MOFU: \"Visum voor Indonesië? Zo Geregeld.\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Carousel 5 slides (1:1)\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Traffic / Engagement\", 7160)] }),\n        new TableRow({ children: [cell(\"Audience\", 2200), cell(\"Retarget: People who watched 25%+ of Video N1 + Lookalike 2%\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 1 (NL)\", 2200), cell(\"'Visum voor Indonesië: Alles Wat Je Moet Weten' + hero image Bali temple\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 2 (NL)\", 2200), cell(\"'Toeristenvisum (30-60 dagen)' — Voor vakantie, familiebezoek, yoga retreat\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 3 (NL)\", 2200), cell(\"'Zakenvisum & KITAS' — Voor werk, investering, of lang verblijf\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 4 (NL)\", 2200), cell(\"'Waarom Rolina?' — 20+ jaar ervaring, real-time tracking, Nederlandstalige hulp\", 7160)] }),\n        new TableRow({ children: [cell(\"Slide 5 (NL)\", 2200), cell(\"'Klaar voor Bali? Start je visumaanvraag nu!' + WhatsApp button\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline (NL)\", 2200), cell(\"Visum voor Indonesië? Zo Geregeld. ✅\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text (NL)\", 2200), cell(\"Plan je een reis naar Indonesië? Het visum is vaak het lastigste deel — maar niet met Rolina.\\n\\nAls Nederlander heb je verschillende opties: toeristenvisum (30-60 dagen), zakenvisum, of een KITAS voor lang verblijf. Wij helpen je met de juiste keuze — snel, transparant, en zonder gedoe.\\n\\nAl 20+ jaar de #1 visumservice in Bali. Swipe voor alle info 👉\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text (EN)\", 2200), cell(\"Planning a trip to Indonesia? The visa is often the trickiest part — but not with Rolina.\\n\\nAs a Dutch citizen, you have several options: tourist visa (30-60 days), business visa, or KITAS for long stays. We help you choose the right one — fast, transparent, and hassle-free.\\n\\nBali's #1 visa service for 20+ years. Swipe for all the info 👉\", 7160)] }),\n    ]\n}),\n\nnew Paragraph({ children: [new PageBreak()] }),\n\n// ===== AD #N3 BOFU DUTCH =====\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"3.4 AD #N3 - BOFU: \"Start Je Bali Avontuur Vandaag\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Single Image (1:1) + WhatsApp CTA\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Conversion / Messages\", 7160)] }),\n        new TableRow({ children: [cell(\"Audience\", 2200), cell(\"Retarget: Website visitors 30d + engaged N1/N2 + Lookalike 1%\", 7160)] }),\n        new TableRow({ children: [cell(\"Visual\", 2200), cell(\"Split image: Left side = cozy Dutch home with rain + 'Verlangen naar zon?' text. Right side = Bali beach paradise + 'Visum geregeld in 3 dagen.' Bottom: WhatsApp preview bubble in Dutch.\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline (NL)\", 2200), cell(\"Klaar voor de Overstap? Start Je Bali Avontuur Vandaag 🌴\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline (EN)\", 2200), cell(\"Ready to Make the Move? Start Your Bali Adventure Today 🌴\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text (NL)\", 2200), cell(\"STOP met dromen. START met plannen. ✈\\n\\nTerwijl het regent in Nederland, schijnt de zon in Bali. En Rolina maakt het makkelijker dan ooit om je visum te regelen.\\n\\n✅ 20+ jaar ervaring in Bali\\n✅ Nederlandstalige ondersteuning\\n✅ Real-time tracking van je aanvraag\\n✅ Gemiddeld in 3-7 werkdagen geregeld\\n\\n💬 Klik hieronder om GRATIS met onze visumexpert te chatten op WhatsApp. Vrijblijvend.\", 7160)] }),\n        new TableRow({ children: [cell(\"Primary Text (EN)\", 2200), cell(\"STOP dreaming. START planning. ✈\\n\\nWhile it rains in the Netherlands, the sun shines in Bali. And Rolina makes it easier than ever to sort your visa.\\n\\n✅ 20+ years in Bali\\n✅ Dutch-speaking support\\n✅ Real-time application tracking\\n✅ Average 3-7 business days processing\\n\\n💬 Tap below to chat with our visa expert on WhatsApp. No obligations.\", 7160)] }),\n        new TableRow({ children: [cell(\"CTA Button\", 2200), cell(\"Send WhatsApp Message\", 7160)] }),\n        new TableRow({ children: [cell(\"CTA Link\", 2200), cell(\"https://wa.me/6289509006600?text=Hallo! Ik wil graag een visum voor Indonesië regelen.\", 7160)] }),\n    ]\n}),\n\nspacer(150),\nnew Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun(\"3.5 AD #N4 - Cultural: \"Indonesia & Nederland: Een Bijzondere Band\"\")] }),\nnew Table({\n    width: { size: 9360, type: WidthType.DXA }, columnWidths: [2200, 7160],\n    rows: [\n        new TableRow({ children: [headerCell(\"Elemen\", 2200), headerCell(\"Detail\", 7160)] }),\n        new TableRow({ children: [cell(\"Format\", 2200), cell(\"Video 20-25 detik (emotional/story-driven)\", 7160)] }),\n        new TableRow({ children: [cell(\"Objective\", 2200), cell(\"Engagement / Video Views\", 7160)] }),\n        new TableRow({ children: [cell(\"Visual\", 2200), cell(\"Slow transition: Old colonial photo of Dutch in Indonesia -> Modern Dutch family visiting Bali temple -> Dutch person getting visa help at Rolina office -> Happy Dutch couple at Bali sunset. Voiceover (Dutch): 'Onze landen delen geschiedenis. Nu delen we een thuis.' Music: Soft gamelan + piano.\", 7160)] }),\n        new TableRow({ children: [cell(\"Headline (NL)\", 2200), cell(\"Nederland & Indonesië: Een Bijzondere


system

Error: write_file() missing 1 required positional argument: 'file_path'