system

385 /app/working/workspaces/default/build_final_proposal.js


Default

The file was truncated. Let me check what the last line is.

The file got cut off. Let me rebuild it — I'll split the big script into two parts and then combine them.


system

                spacer(60),
                makeTableFull(
                    ["Theme", "Contoh Copy", "Digunakan Oleh"],
                    [
                        ["Trust / Legitimasi", ""Licensed agency since 2006" / "12+ years experience" / "Trusted by 30.000+ clients"", "eVisa Bali, VISALF, Bali Visa Agency"],
                        ["Kecepatan", ""Visa approved in 5 days" / "Fast processing" / "Express service"", "Flado, Bali Visa Agency, Rumaka"],<<<TRUNCATED>>>
The output above was truncated.
The full content is saved to the file and contains 386 lines in total.
This excerpt starts at line 380 and covers the next 463 bytes.
If the current content is not enough, call `read_file` with file_path=/app/working/workspaces/default/build_final_proposal.js start_line=386 to read more.


Default

OK the file got truncated at ~386 lines. Let me write the rest of it starting from line 385 onward, using edit_file to append. Actually, a better approach: let me just write the remaining part to a separate file and then concatenate them.

Let me take a different approach. I'll write the whole script as a node.js file using execute_shell_command to write it piece by piece.

// PART 2 — continuation of build_final_proposal.js
// This file contains the remaining sections (2.3 onward through the end)

                        ["Harga Transparan", ""No hidden fees" / "IDR 2.150.000 all-in" / "Pay after approval"", "Flado, Bali Visa Agency, Bahalap Uras"],
                        ["Simplicity", ""Easy online application" / "3 simple steps" / "Just send your passport"", "Rumaka, eVisa Bali, Flado"],
                        ["Multi-Language", ""We speak your language" / Russian-French-English team", "Bahalap Uras, Peak Solutions, Flado"],
                        ["Human Touch", ""Real people, not robots" / "Talk to our friendly team"", "Bali Visa Agency, Bahalap Uras"],
                        ["Community", "Telegram groups, customer WhatsApp communities", "Flado"],
                    ],
                    [2200, 4760, 2400],
                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19), c(r[2], w[2], false, fill, 19)]
                ),

                spacer(120),
                new Paragraph({ children: [new TextRun({ text: "Format Iklan yang Dominan Digunakan Kompetitor:", bold: true })] }),
                spacer(60),
                makeTableFull(
                    ["Format", "Deskripsi", "Efektivitas"],
                    [
                        ["Video Pendek (15-30s)", "Footage Bali cantik + tim kantor + proses visa", "SANGAT TINGGI — engagement rate 2-5x static images"],
                        ["Carousel (3-5 slides)", "Step-by-step visa process / perbandingan tipe visa", "TINGGI — edukatif, swipeable"],
                        ["Single Image + Overlay Text", "Team photo / kantor / sertifikat + headline bold", "SEDANG — tapi murah produksi"],
                        ["Testimonial Video/UGC", "Customer review video singkat", "TINGGI — social proof langsung"],
                        ["Instant Experience", "Full-screen mobile landing page dengan form", "SEDANG — untuk BOFU/remarketing"],
                    ],
                    [2400, 4160, 2800],
                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19), c(r[2], w[2], false, fill, 19)]
                ),

                spacer(160),
                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "2.4  Contoh Iklan Kompetitor (Rekonstruksi)", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),
                new Paragraph({ children: [
                    new TextRun({ text: "Catatan:", bold: true, italics: true }),
                    new TextRun({ text: " Akses langsung ke Facebook Ad Library dibatasi oleh Chrome CDP, sehingga contoh di bawah direkonstruksi berdasarkan copywriting yang teramati di website kompetitor dan pola umum industri jasa visa. Semua angle dan klaim mencerminkan positioning nyata masing-masing kompetitor.", italics: true })
                ] }),
                spacer(60),

                ...adPreviewBox(
                    "\uD83D\uDCF1 Flado — "Visa Bali dalam 5 Hari"",
                    "Need a Bali visa fast? \uD83C\uDF34\n\n\u2705 Tourist C1 Visa — from only IDR 2.2M (~$129)\n\u2705 Approved in 5-10 working days\n\u2705 11,800+ happy clients\n\u2705 No hidden fees, pay online\n\nMulti-language support: EN \u2022 FR \u2022 DE \u2022 RU \u2022 NL \u2022 ES \u2022 AR",
                    "\uD83D\uDCAC Chat on WhatsApp — Free Consultation",
                    "Single Image (Infographic — visa types comparison + pricing)"
                ),
                ...adPreviewBox(
                    "\uD83C\uDF1F Bali Visa Agency — "Bayar Setelah Approve"",
                    "Why pay upfront when you can pay AFTER your documents are submitted to immigration? \uD83E\uDD14\n\nAt Bali Visa Agency (since 2006), you only pay once we've successfully processed your application.\n\n\uD83D\uDCCB Single Entry \u2022 Multiple Entry \u2022 KITAS\n\uD83D\uDCB0 C1 Tourist Visa from IDR 2.15M\n\uD83D\uDCDE Real people, real support — WhatsApp us now",
                    "\uD83D\uDCDE WhatsApp: +62 812-3999-3008",
                    "Video (15s — office tour + team greeting camera)"
                ),
                ...adPreviewBox(
                    "\uD83C\uDDEC\uD83C\uDDE7 Bahalap Uras — "On parle fran\xE7ais!"",
                    "Visa Bali simplifi\xE9 \uD83C\uDF34\n\nNotre \xE9quipe francophone vous accompagne de A \xE0 Z:\n\u2022 Visa touriste (30-180 jours)\n\u2022 Visa multiple entr\xE9es\n\u2022 KITAS & extensions\n\n\uD83D\uDCB0 Prix transparents, service fiable depuis 2021\n\uD83D\uDCDE WhatsApp en fran\xE7ais: +62 877-5134-6157",
                    "WhatsApp French Speaker \u2192",
                    "Carousel (3 slides: \u2460 team photo \u2461 visa types \u2462 pricing)"
                ),
                ...adPreviewBox(
                    "\uD83D\uDCBC Bali Legals — "Australian-Owned, Bali-Based"",
                    "Looking to invest or retire in Bali? \uD83C\uDFF4\u200D\u2620\uFE0F\n\nWe're an Australian-owned boutique firm with 15+ years of expertise:\n\u2714 Visa & KITAS processing\n\u2714 Property Due Diligence\n\u2714 Company (PT PMA) Setup\n\u2714 Building & Construction permits\n\nAustralian legal standards, local Bali expertise.\nBook your free 30-min consultation.",
                    "\uD83D\uDCC5 Book Free Consultation",
                    "Video (30s — Australian founder explaining Bali property + visa)"
                ),

                spacer(160),
                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "2.5  Competitive Positioning Map", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),
                new Paragraph({ children: [new TextRun({ text: "Peta posisioning kompetitor berdasarkan dua sumbu: Harga (Low → Premium) dan Target Audience (Tourist → Business/Investor)." })] }),
                spacer(60),
                makeTableFull(
                    ["Quadrant", "Kompetitor", "Karakteristik"],
                    [
                        ["Low Price / Tourist", "Flado, Bahalap Uras, Get Bali Visa", "Volume-driven, banyak visa type, pricing transparan rendah"],
                        ["Mid Price / Tourist+Expat", "Bali Visa Agency, eVisa Bali, Rumaka", "Trust-focused, middle pricing, balanced portfolio"],
                        ["Premium / Business+Investor", "Bali Legals, Peak Solutions", "High-ticket, boutique, corporate services, property"],
                        ["Niche Language", "Bali-Visum.de (German), Bahalap Uras (RU/FR)", "Bahasa spesifik, market kecil tapi loyal"],
                    ],
                    [2400, 2800, 4160],
                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19), c(r[2], w[2], false, fill, 19)]
                ),
                spacer(60),
                new Paragraph({ children: [
                    new TextRun({ text: "\uD83C\uDFAF Posisi yang direkomendasikan untuk Rolina:", bold: true }),
                    new TextRun({ text: " Mid-Price / Trusted Expert — memanfaatkan pengalaman 20+ tahun sebagai differentiator. Tidak berkompetisi di harga rendah (Flado, Bahalap) maupun premium tinggi (Bali Legals), tapi di sweet spot: "Paling berpengalaman dengan harga wajar."" })
                ] }),
            ]
        },

        // ═══════ SECTION 3 — ROLINA SWOT ═══════
        {
            properties: { page: { size: { width: 12240, height: 15840 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } },
                headers: { default: new Header({ children: [new Paragraph({ alignment: AlignmentType.RIGHT, children: [new TextRun({ text: "Rolina Visa Services — Proposal Meta Ads", font: "Arial", size: 16, color: "999999", italics: true })] })] }) },
                footers: { default: new Footer({ children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Page ", font: "Arial", size: 16, color: "999999" }), new TextRun({ children: [PageNumber.CURRENT], font: "Arial", size: 16, color: "999999" })] })] }) },
            },
            children: [
                new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun({ text: "3. PROFIL & SWOT ROLINA VISA SERVICES", bold: true, font: "Arial", size: 36, color: "1F4E79" })] }),

                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "3.1  Profil Singkat", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),
                makeTableFull(
                    ["Aspek", "Detail"],
                    [
                        ["Nama", "Rolina Visa Services"],
                        ["Pengalaman", "20+ tahun di Bali"],
                        ["Website", "rolinavisaservices.com"],
                        ["Kontak", "Tel: +62 361 487121 | Email: info@rolinavisaservices.com"],
                        ["Layanan", "Retiree Visa, Investor Visa, Work Visa (KITAS), Visa Extension, Visa Consultation, Documentation, Processing"],
                        ["Partner", "Kolaborasi dengan tour operator lokal untuk paket wisata"],
                        ["Keunikan", "20+ tahun — salah satu agen visa PALING LAMA di Bali"],
                    ],
                    [2200, 7160],
                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19)]
                ),

                spacer(60),
                new Paragraph({ children: [new TextRun({ text: "Gap yang teridentifikasi dari website Rolina (per Juni 2026):", bold: true })] }),
                bullet("Website hanya dalam Bahasa Inggris — tidak ada multi-language support"),
                bullet("Tidak ada pricing transparan — user harus kontak dulu untuk tahu harga"),
                bullet("WhatsApp link tidak prominent di website (hanya telepon & email)"),
                bullet("Tidak ada testimonial atau review yang visible"),
                bullet("Tidak ada blog/content marketing (artikel tentang visa, tips Bali, dll)"),
                bullet("Tidak ada tracking system online untuk status visa"),

                spacer(120),
                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "3.2  Analisis SWOT", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),

                // SWOT Table
                new Table({
                    width: { size: 9360, type: WidthType.DXA }, columnWidths: [4680, 4680],
                    rows: [
                        new TableRow({ children: [
                            new TableCell({ borders: b, width: { size: 4680, type: WidthType.DXA }, shading: { fill: "E8F5E9", type: ShadingType.CLEAR },
                                children: [new Paragraph({ children: [new TextRun({ text: "\uD83D\uDFE2 STRENGTHS", bold: true, size: 22, color: "2E7D32" })] }),
                                    bullet("20+ tahun pengalaman — kredibilitas TERTINGGI di antara kompetitor"),
                                    bullet("Kantor fisik di Bali — bukan purely online"),
                                    bullet("Layanan lengkap: tourist s/d retiree & investor"),
                                    bullet("Partner dengan tour operator — cross-sell opportunity"),
                                    bullet("Specialist team — "highly skilled immigration specialists""),
                                ] }),
                            new TableCell({ borders: b, width: { size: 4680, type: WidthType.DXA }, shading: { fill: "FFEBEE", type: ShadingType.CLEAR },
                                children: [new Paragraph({ children: [new TextRun({ text: "\uD83D\uDD34 WEAKNESSES", bold: true, size: 22, color: "C62828" })] }),
                                    bullet("Website tidak multi-language — hanya Inggris"),
                                    bullet("Tidak ada pricing transparan"),
                                    bullet("Tidak ada WhatsApp/chat sebagai CTA utama"),
                                    bullet("Tidak ada social proof (testimonial, review)"),
                                    bullet("Tidak ada content marketing / SEO"),
                                    bullet("Tidak ada Meta Ads aktif (sepengetahuan kami)"),
                                ] }),
                        ] }),
                        new TableRow({ children: [
                            new TableCell({ borders: b, width: { size: 4680, type: WidthType.DXA }, shading: { fill: "FFF9C4", type: ShadingType.CLEAR },
                                children: [new Paragraph({ children: [new TextRun({ text: "\uD83D\uDFE1 OPPORTUNITIES", bold: true, size: 22, color: "F57F17" })] }),
                                    bullet("Niche targeting Australia & Belanda — celah yang belum digarap kompetitor"),
                                    bullet("Konten edukasi multi-bahasa (EN + NL) sebagai differentiator"),
                                    bullet("WhatsApp integration — 90%+ kompetitor pakai WA, Rolina harus ikut"),
                                    bullet("Pasar Australia: 1.63M pengunjung/tahun, belum ada kampanye visa khusus AU"),
                                    bullet("Trend digital nomad & retiree visa — Rolina punya layanan untuk keduanya"),
                                    bullet("Australia punya direct flights ke Bali — barrier to entry rendah"),
                                ] }),
                            new TableCell({ borders: b, width: { size: 4680, type: WidthType.DXA }, shading: { fill: "FFEBEE", type: ShadingType.CLEAR },
                                children: [new Paragraph({ children: [new TextRun({ text: "\u26A0\uFE0F THREATS", bold: true, size: 22, color: "C62828" })] }),
                                    bullet("Flado & Bali Visa Agency AGGRESSIVE di Meta Ads — bisa outspend Rolina"),
                                    bullet("Bali Legals (Australian-owned) — kredibilitas lebih tinggi di mata orang Australia"),
                                    bullet("Perubahan regulasi visa Indonesia yang cepat — bisa bikin konten cepat outdated"),
                                    bullet("Kompetitor dengan multi-language support (Flado: 10 bahasa)"),
                                    bullet("Price war: Flado dan Bahalap Uras kasih harga transparan murah"),
                                ] }),
                        ] }),
                    ]
                }),
            ]
        },

        // ═══════ SECTION 4 — FUNNEL STRATEGY ═══════
        {
            properties: { page: { size: { width: 12240, height: 15840 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } },
                headers: { default: new Header({ children: [new Paragraph({ alignment: AlignmentType.RIGHT, children: [new TextRun({ text: "Rolina Visa Services — Proposal Meta Ads", font: "Arial", size: 16, color: "999999", italics: true })] })] }) },
                footers: { default: new Footer({ children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Page ", font: "Arial", size: 16, color: "999999" }), new TextRun({ children: [PageNumber.CURRENT], font: "Arial", size: 16, color: "999999" })] })] }) },
            },
            children: [
                new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun({ text: "4. STRATEGI META ADS — FUNNEL KOMPREHENSIF", bold: true, font: "Arial", size: 36, color: "1F4E79" })] }),

                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "4.1  Arsitektur Funnel 3-Tahap", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),
                new Paragraph({ children: [new TextRun({ text: "Funnel didesain untuk memindahkan calon klien dari AWARENESS (belum kenal Rolina) → CONSIDERATION (membandingkan opsi) → CONVERSION (WhatsApp inquiry → paid client)." })] }),
                spacer(60),

                makeTableFull(
                    ["TAHAP", "TOFU (Top of Funnel)", "MOFU (Middle of Funnel)", "BOFU (Bottom of Funnel)"],
                    [
                        ["Tujuan", "Awareness & Reach\nMemperkenalkan Rolina", "Consideration & Engagement\nMembangun kepercayaan", "Conversion\nMendorong aksi: WhatsApp/Call"],
                        ["Target Audience", "Cold audience\nBelum kenal Rolina", "Warm audience\nSudah engage/visit", "Hot audience\nSiap konversi"],
                        ["Budget Alokasi", "40-50%", "25-35%", "15-25%"],
                        ["Format Iklan", "Video pendek (15-30s)\nCarousel edukasi\nImage (Bali beauty)", "Video testimonial\nCarousel perbandingan visa\nBlog/article promotion", "Single image CTA\nVideo WhatsApp demo\nInstant Experience form"],
                        ["Copy Angle", "Inspirasi + Edukasi\n"Bali is calling"", "Trust + Proof\n"20+ years experience"", "Urgensi + Kemudahan\n"Chat us now on WhatsApp""],
                        ["CTA", "Learn More / Watch", "Download Guide / Read More", "WhatsApp Now / Free Consultation"],
                        ["Metrik Sukses", "Impressions, Reach, CPM\nVideo views 25%+", "CTR, Landing Page Views\nEngagement rate", "Leads, CPL, Conversion rate\nCost per booked client"],
                    ],
                    [2000, 2453, 2453, 2453],
                    (r, w, fill) => [bc(r[0], w[0], 18), c(r[1], w[1], false, fill, 18), c(r[2], w[2], false, fill, 18), c(r[3], w[3], false, fill, 18)]
                ),

                spacer(120),
                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "4.2  Mekanisme Closing & Landing Page", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),
                new Paragraph({ children: [new TextRun({ text: "Semua iklan BOFU mengarahkan ke WhatsApp Rolina dengan pre-filled message. Ini adalah flow yang direkomendasikan:", bold: true })] }),
                spacer(60),
                new Paragraph({ children: [
                    new TextRun({ text: "\uD83D\uDCCC  Iklan Meta", bold: true, color: "2E75B6" }),
                    new TextRun({ text: "  →  " }),
                    new TextRun({ text: "\uD83D\uDCF2 Klik CTA "Chat on WhatsApp"", bold: true, color: "2E75B6" }),
                    new TextRun({ text: "  →  " }),
                    new TextRun({ text: "\uD83D\uDCAC WhatsApp Terbuka (pre-filled):", bold: true, color: "2E75B6" }),
                    new TextRun({ text: " "Halo Rolina! Saya tertarik info visa [nama visa]. Bisa dibantu?"" }),
                ] }),
                spacer(40),
                new Paragraph({ children: [
                    new TextRun({ text: "\uD83D\uDCCC  Alternatif BOFU:", bold: true, color: "2E75B6" }),
                    new TextRun({ text: " Iklan bisa juga mengarah ke landing page khusus di website Rolina dengan:" }),
                ] }),
                bullet("Form isian singkat: Nama, Email, Negara asal, Tipe visa yg diminati"),
                bullet("WhatsApp button fixed di halaman (floating CTA)"),
                bullet("Tracking: Facebook Pixel untuk remarketing ke yang sudah visit"),
                bullet("Free consultation offer: "Isi form, dapat konsultasi gratis 15 menit""),

                spacer(80),
                new Paragraph({ children: [new TextRun({ text: "WhatsApp Pre-Filled Message Examples:", bold: true, font: "Arial", size: 22, color: "2E75B6" }) ] }),
                makeTableFull(
                    ["Segment", "Pre-Filled WhatsApp Message"],
                    [
                        ["Tourist AU", ""Hi Rolina! I'm from Australia, planning a trip to Bali. Can you help with the tourist visa process?""],
                        ["Retiree AU", ""Hi Rolina! Interested in the Retirement Visa for Bali. Would love a free consultation.""],
                        ["Investor AU", ""Hi Rolina! Looking into Investor KITAS for business setup in Bali. Can we chat?""],
                        ["Tourist NL", ""Hallo Rolina! Ik kom uit Nederland en wil naar Bali. Kunnen jullie helpen met een toeristenvisum?""],
                        ["Expat NL", ""Hallo Rolina! Ik overweeg om in Bali te wonen. Welk visum past bij mij?""],
                    ],
                    [2400, 6960],
                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19)]
                ),

                spacer(120),
                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "4.3  Targeting Detail: AUSTRALIA \uD83C\uDDE6\uD83C\uDDFA", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),
                makeTableFull(
                    ["Parameter", "Setting"],
                    [
                        ["Lokasi", "Australia (semua state: NSW, VIC, QLD, WA, SA, TAS, NT, ACT)"],
                        ["Kota Prioritas", "Sydney, Melbourne, Brisbane, Perth, Gold Coast, Adelaide"],
                        ["Umur", "25-65 tahun"],
                        ["Bahasa", "English"],
                        ["Minat (Interests)", "Bali, Indonesia travel, Southeast Asia travel, Digital nomad, Expat life, Retirement abroad, Surfing, Yoga & wellness, Real estate investment abroad"],
                        ["Behavior", "International travelers, Frequent travelers, Engaged shoppers (travel category)"],
                        ["Lookalike", "1-3% Lookalike dari data klien existing Rolina (kalau ada)"],
                        ["Exclude", "Orang yang sudah like/follow halaman Rolina (untuk TOFU), Orang yang sudah konversi dalam 30 hari terakhir"],
                    ],
                    [2200, 7160],
                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19)]
                ),
                spacer(40),
                new Paragraph({ children: [new TextRun({ text: "Market insight:", bold: true }), new TextRun({ text: " Australia adalah pasar #1 untuk Bali. 1,63 juta kedatangan/tahun (~25% dari total). Penerbangan langsung dari Sydney, Melbourne, Brisbane, Perth, Gold Coast, Adelaide, Darwin. Warga Australia eligible untuk e-VOA 30 hari, tapi banyak yang butuh visa lebih panjang (C1, KITAS, retiree)." })] }),

                spacer(100),
                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "4.4  Targeting Detail: BELANDA (NETHERLANDS) \uD83C\uDDF3\uD83C\uDDF1", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),
                makeTableFull(
                    ["Parameter", "Setting"],
                    [
                        ["Lokasi", "Netherlands (semua provinsi)"],
                        ["Kota Prioritas", "Amsterdam, Rotterdam, Den Haag, Utrecht, Eindhoven, Groningen"],
                        ["Umur", "25-65 tahun"],
                        ["Bahasa", "Dutch (Nederlands) + English"],
                        ["Minat (Interests)", "Bali, Indonesi\xEB reizen, Zuidoost-Azi\xEB reizen, Digital nomad, Expat/Pensioen in buitenland, Surfen, Yoga, Investering in vastgoed"],
                        ["Behavior", "International travelers, Frequent flyers, Travel planners"],
                        ["Lookalike", "1-3% Lookalike dari data klien existing (kalau ada)"],
                        ["Exclude", "Yang sudah like/follow, yang sudah konversi"],
                    ],
                    [2200, 7160],
                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19)]
                ),
                spacer(40),
                new Paragraph({ children: [new TextRun({ text: "Market insight:", bold: true }), new TextRun({ text: " Belanda punya hubungan historis kuat dengan Indonesia. Banyak warga Belanda yang pensiun atau berbisnis di Bali. Target utama: pensiunan (retiree visa), digital nomad/remote worker, dan wisatawan long-stay. Bahasa Belanda jarang dipakai oleh kompetitor — ini adalah BLUE OCEAN untuk Rolina. Kampanye bilingual (NL+EN) bisa jadi pembeda kuat." })] }),
            ]
        },

        // ═══════ SECTION 5 — AD SCRIPTS ═══════
        {
            properties: { page: { size: { width: 12240, height: 15840 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } },
                headers: { default: new Header({ children: [new Paragraph({ alignment: AlignmentType.RIGHT, children: [new TextRun({ text: "Rolina Visa Services — Proposal Meta Ads", font: "Arial", size: 16, color: "999999", italics: true })] })] }) },
                footers: { default: new Footer({ children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: "Page ", font: "Arial", size: 16, color: "999999" }), new TextRun({ children: [PageNumber.CURRENT], font: "Arial", size: 16, color: "999999" })] })] }) },
            },
            children: [
                new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun({ text: "5. KREATIF IKLAN — SCRIPT & FORMAT", bold: true, font: "Arial", size: 36, color: "1F4E79" })] }),
                new Paragraph({ children: [new TextRun({ text: "Berikut adalah script iklan detail untuk setiap tahap funnel, dipisahkan per negara target. Setiap script mencakup audience, copy, CTA, dan format visual yang direkomendasikan.", bold: true })] }),

                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: "5.1  Kampanye Australia \uD83C\uDDE6\uD83C\uDDFA (9 Script)", bold: true, font: "Arial", size: 28, color: "2E75B6" })] }),

                // ── AU TOFU ──
                new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun({ text: "TOFU — Awareness (3 ads)", bold: true, font: "Arial", size: 24, color: "333333" })] }),

                ...countryAd("Australia", "\uD83C\uDDE6\uD83C\uDDFA", "TOFU-1: Destination Hype",
                    "Australians 25-55, interested in Bali/Indonesia travel, belum pernah engage dengan Rolina",
                    "\uD83C\uDF34 Dreaming of Bali?\n\nFrom the beaches of Seminyak to the rice terraces of Ubud — your tropical escape is just a visa away. \n\nAnd getting that visa? It's easier than you think. \n\nAt Rolina Visa Services, we've been helping Australians explore Bali for over 20 years. Let us handle the paperwork while you plan your tan. \u2600\uFE0F",
                    "Learn More \u2192",
                    "Video 15-20s: Drone shots Bali (pantai, sawah, pura) + text overlay + logo Rolina"
                ),
                ...countryAd("Australia", "\uD83C\uDDE6\uD83C\uDDFA", "TOFU-2: Educational — "Which Visa?"",
                    "Australians searching about Bali travel requirements, visa info",
                    "\uD83E\uDD14 Planning a Bali trip but confused about visas?\n\nHere's a quick guide for Australians:\n\n\u2705 Short trip (<30 days): eVOA (apply online, $35)\n\u2705 Long stay (60-180 days): Tourist C1 Visa\n\u2705 Digital nomad / remote worker: Nomad KITAS\n\u2705 Retiring in Bali: Retirement KITAS\n\nNeed help figuring out which one you need? Rolina's specialists have 20+ years experience helping Aussies get the right visa.",
                    "Get Free Visa Guide \u2192",
                    "Carousel 4 slides: 1 visa type per slide + icon + singkat deskripsi"
                ),
                ...countryAd("Australia", "\uD83C\uDDE6\uD83C\uDDFA", "TOFU-3: Retiree Angle",
                    "Australians 50-65, interested in retirement abroad, Bali property, expat life",
                    "\uD83C\uDFF4\u200D\u2620\uFE0F Aussie, thinking about retiring in Bali?\n\n\u2600\uFE0F Year-round tropical climate\n\uD83D\uDCB0 Cost of living 60-70% lower than Australia\n\uD83C\uDF5C Incredible food, culture, and community\n\uD83C\uDFE5 Property options for foreigners\n\nBut first — you'll need a Retirement KITAS. Rolina Visa Services has been helping Australian retirees settle in Bali for 20+ years. \n\nStart your Bali retirement journey today.",
                    "Learn About Retiree Visa \u2192",
                    "Video 15-20s: Australian retiree enjoying Bali (villa, beach, cafe) + text overlay"
                ),

                // ── AU MOFU ──
                new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun({ text: "MOFU — Consideration (3 ads)", bold: true, font: "Arial", size: 24, color: "333333" })] }),

                ...countryAd("Australia", "\uD83C\uDDE6\uD83C\uDDFA", "MOFU-1: Trust & Credibility",
                    "Retargeting: orang yang sudah nonton TOFU video atau visit website",
                    "\uD83C\uDF1F 20+ Years. Thousands of Happy Clients. One Trusted Name.\n\nRolina Visa Services is one of Bali's most established visa agencies, with specialist immigration consultants handling your application from start to finish.\n\n\u2705 Licensed & official\n\u2705 Real-time status updates\n\u2705 Transparent process — no surprises\n\u2705 Office in Bali — we're here when you arrive!\n\nDon't trust your visa to just anyone. Trust experience.",
                    "Chat With Us on WhatsApp \u2192",
                    "Video 20s: Tim Rolina di kantor, proses dokumen, brief interview singkat founder/staff"
                ),
                ...countryAd("Australia", "\uD83C\uDDE6\uD83C\uDDFA", "MOFU-2: Process Breakdown",
                    "Australians yang sudah lihat konten TOFU, tertarik tapi belum yakin",
                    "\uD83D\uDCCB Getting a Bali Visa — Here's How Simple It Is:\n\n\u2460 Step 1: Tell us which visa you need (free consultation!)\n\u2461 Step 2: Send us your documents (we'll check everything)\n\u2462 Step 3: We submit to immigration\n\u2463 Step 4: Visa approved — you're Bali-bound! \u2708\uFE0F\n\nNo stress. No confusion. Just 20 years of expertise doing the heavy lifting for you.\n\nReady to get started?",
                    "Start My Application \u2192",
                    "Infographic-style static image: 4 steps with icons + Rolina branding"
                ),
                ...countryAd("Australia", "\uD83C\uDDE6\uD83C\uDDFA", "MOFU-3: Testimonial/Comparison",
                    "Australians comparing visa agencies, searching reviews",
                    ""I was overwhelmed by the visa options for Bali. Rolina made it so easy — they explained everything, handled the paperwork, and my visa was approved in 8 days!" — Sarah M., Melbourne \u2B50\u2B50\u2B50\u2B50\u2B50\n\n\uD83D\uDCB0 Competitive pricing\n\uD83D\uDCC5 Fast processing\n\uD83D\uDCDE Real people on WhatsApp — not bots\n\nJoin thousands of Australians who trust Rolina for their Bali visa.",
                    "Chat on WhatsApp \u2192",
                    "Carousel: 3x testimonial quotes + foto (stock or real client) + star ratings"
                ),

                // ── AU BOFU ──
                new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun({ text: "BOFU — Conversion (3 ads)", bold: true, font: "Arial", size: 24, color: "333333" })]

{"file_path": "/app/working/workspaces/default/build_final_part2.js", "content": "\n// PART 2 — continuation of build_final_proposal.js\n// This file contains the remaining sections (2.3 onward through the end)\n\n                        [\"Harga Transparan\", \"\\\"No hidden fees\\\" / \\\"IDR 2.150.000 all-in\\\" / \\\"Pay after approval\\\"\", \"Flado, Bali Visa Agency, Bahalap Uras\"],\n                        [\"Simplicity\", \"\\\"Easy online application\\\" / \\\"3 simple steps\\\" / \\\"Just send your passport\\\"\", \"Rumaka, eVisa Bali, Flado\"],\n                        [\"Multi-Language\", \"\\\"We speak your language\\\" / Russian-French-English team\", \"Bahalap Uras, Peak Solutions, Flado\"],\n                        [\"Human Touch\", \"\\\"Real people, not robots\\\" / \\\"Talk to our friendly team\\\"\", \"Bali Visa Agency, Bahalap Uras\"],\n                        [\"Community\", \"Telegram groups, customer WhatsApp communities\", \"Flado\"],\n                    ],\n                    [2200, 4760, 2400],\n                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19), c(r[2], w[2], false, fill, 19)]\n                ),\n\n                spacer(120),\n                new Paragraph({ children: [new TextRun({ text: \"Format Iklan yang Dominan Digunakan Kompetitor:\", bold: true })] }),\n                spacer(60),\n                makeTableFull(\n                    [\"Format\", \"Deskripsi\", \"Efektivitas\"],\n                    [\n                        [\"Video Pendek (15-30s)\", \"Footage Bali cantik + tim kantor + proses visa\", \"SANGAT TINGGI — engagement rate 2-5x static images\"],\n                        [\"Carousel (3-5 slides)\", \"Step-by-step visa process / perbandingan tipe visa\", \"TINGGI — edukatif, swipeable\"],\n                        [\"Single Image + Overlay Text\", \"Team photo / kantor / sertifikat + headline bold\", \"SEDANG — tapi murah produksi\"],\n                        [\"Testimonial Video/UGC\", \"Customer review video singkat\", \"TINGGI — social proof langsung\"],\n                        [\"Instant Experience\", \"Full-screen mobile landing page dengan form\", \"SEDANG — untuk BOFU/remarketing\"],\n                    ],\n                    [2400, 4160, 2800],\n                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19), c(r[2], w[2], false, fill, 19)]\n                ),\n\n                spacer(160),\n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"2.4  Contoh Iklan Kompetitor (Rekonstruksi)\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n                new Paragraph({ children: [\n                    new TextRun({ text: \"Catatan:\", bold: true, italics: true }), \n                    new TextRun({ text: \" Akses langsung ke Facebook Ad Library dibatasi oleh Chrome CDP, sehingga contoh di bawah direkonstruksi berdasarkan copywriting yang teramati di website kompetitor dan pola umum industri jasa visa. Semua angle dan klaim mencerminkan positioning nyata masing-masing kompetitor.\", italics: true })\n                ] }),\n                spacer(60),\n\n                ...adPreviewBox(\n                    \"\\uD83D\\uDCF1 Flado — \\\"Visa Bali dalam 5 Hari\\\"\",\n                    \"Need a Bali visa fast? \\uD83C\\uDF34\\n\\n\\u2705 Tourist C1 Visa — from only IDR 2.2M (~$129)\\n\\u2705 Approved in 5-10 working days\\n\\u2705 11,800+ happy clients\\n\\u2705 No hidden fees, pay online\\n\\nMulti-language support: EN \\u2022 FR \\u2022 DE \\u2022 RU \\u2022 NL \\u2022 ES \\u2022 AR\",\n                    \"\\uD83D\\uDCAC Chat on WhatsApp — Free Consultation\",\n                    \"Single Image (Infographic — visa types comparison + pricing)\"\n                ),\n                ...adPreviewBox(\n                    \"\\uD83C\\uDF1F Bali Visa Agency — \\\"Bayar Setelah Approve\\\"\",\n                    \"Why pay upfront when you can pay AFTER your documents are submitted to immigration? \\uD83E\\uDD14\\n\\nAt Bali Visa Agency (since 2006), you only pay once we've successfully processed your application.\\n\\n\\uD83D\\uDCCB Single Entry \\u2022 Multiple Entry \\u2022 KITAS\\n\\uD83D\\uDCB0 C1 Tourist Visa from IDR 2.15M\\n\\uD83D\\uDCDE Real people, real support — WhatsApp us now\",\n                    \"\\uD83D\\uDCDE WhatsApp: +62 812-3999-3008\",\n                    \"Video (15s — office tour + team greeting camera)\"\n                ),\n                ...adPreviewBox(\n                    \"\\uD83C\\uDDEC\\uD83C\\uDDE7 Bahalap Uras — \\\"On parle fran\\xE7ais!\\\"\",\n                    \"Visa Bali simplifi\\xE9 \\uD83C\\uDF34\\n\\nNotre \\xE9quipe francophone vous accompagne de A \\xE0 Z:\\n\\u2022 Visa touriste (30-180 jours)\\n\\u2022 Visa multiple entr\\xE9es\\n\\u2022 KITAS & extensions\\n\\n\\uD83D\\uDCB0 Prix transparents, service fiable depuis 2021\\n\\uD83D\\uDCDE WhatsApp en fran\\xE7ais: +62 877-5134-6157\",\n                    \"WhatsApp French Speaker \\u2192\",\n                    \"Carousel (3 slides: \\u2460 team photo \\u2461 visa types \\u2462 pricing)\"\n                ),\n                ...adPreviewBox(\n                    \"\\uD83D\\uDCBC Bali Legals — \\\"Australian-Owned, Bali-Based\\\"\",\n                    \"Looking to invest or retire in Bali? \\uD83C\\uDFF4\\u200D\\u2620\\uFE0F\\n\\nWe're an Australian-owned boutique firm with 15+ years of expertise:\\n\\u2714 Visa & KITAS processing\\n\\u2714 Property Due Diligence\\n\\u2714 Company (PT PMA) Setup\\n\\u2714 Building & Construction permits\\n\\nAustralian legal standards, local Bali expertise.\\nBook your free 30-min consultation.\",\n                    \"\\uD83D\\uDCC5 Book Free Consultation\",\n                    \"Video (30s — Australian founder explaining Bali property + visa)\"\n                ),\n\n                spacer(160),\n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"2.5  Competitive Positioning Map\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n                new Paragraph({ children: [new TextRun({ text: \"Peta posisioning kompetitor berdasarkan dua sumbu: Harga (Low → Premium) dan Target Audience (Tourist → Business/Investor).\" })] }),\n                spacer(60),\n                makeTableFull(\n                    [\"Quadrant\", \"Kompetitor\", \"Karakteristik\"],\n                    [\n                        [\"Low Price / Tourist\", \"Flado, Bahalap Uras, Get Bali Visa\", \"Volume-driven, banyak visa type, pricing transparan rendah\"],\n                        [\"Mid Price / Tourist+Expat\", \"Bali Visa Agency, eVisa Bali, Rumaka\", \"Trust-focused, middle pricing, balanced portfolio\"],\n                        [\"Premium / Business+Investor\", \"Bali Legals, Peak Solutions\", \"High-ticket, boutique, corporate services, property\"],\n                        [\"Niche Language\", \"Bali-Visum.de (German), Bahalap Uras (RU/FR)\", \"Bahasa spesifik, market kecil tapi loyal\"],\n                    ],\n                    [2400, 2800, 4160],\n                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19), c(r[2], w[2], false, fill, 19)]\n                ),\n                spacer(60),\n                new Paragraph({ children: [\n                    new TextRun({ text: \"\\uD83C\\uDFAF Posisi yang direkomendasikan untuk Rolina:\", bold: true }),\n                    new TextRun({ text: \" Mid-Price / Trusted Expert — memanfaatkan pengalaman 20+ tahun sebagai differentiator. Tidak berkompetisi di harga rendah (Flado, Bahalap) maupun premium tinggi (Bali Legals), tapi di sweet spot: \\\"Paling berpengalaman dengan harga wajar.\\\"\" })\n                ] }),\n            ]\n        },\n\n        // ═══════ SECTION 3 — ROLINA SWOT ═══════\n        {\n            properties: { page: { size: { width: 12240, height: 15840 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } },\n                headers: { default: new Header({ children: [new Paragraph({ alignment: AlignmentType.RIGHT, children: [new TextRun({ text: \"Rolina Visa Services — Proposal Meta Ads\", font: \"Arial\", size: 16, color: \"999999\", italics: true })] })] }) },\n                footers: { default: new Footer({ children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: \"Page \", font: \"Arial\", size: 16, color: \"999999\" }), new TextRun({ children: [PageNumber.CURRENT], font: \"Arial\", size: 16, color: \"999999\" })] })] }) },\n            },\n            children: [\n                new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun({ text: \"3. PROFIL & SWOT ROLINA VISA SERVICES\", bold: true, font: \"Arial\", size: 36, color: \"1F4E79\" })] }),\n                \n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"3.1  Profil Singkat\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n                makeTableFull(\n                    [\"Aspek\", \"Detail\"],\n                    [\n                        [\"Nama\", \"Rolina Visa Services\"],\n                        [\"Pengalaman\", \"20+ tahun di Bali\"],\n                        [\"Website\", \"rolinavisaservices.com\"],\n                        [\"Kontak\", \"Tel: +62 361 487121 | Email: info@rolinavisaservices.com\"],\n                        [\"Layanan\", \"Retiree Visa, Investor Visa, Work Visa (KITAS), Visa Extension, Visa Consultation, Documentation, Processing\"],\n                        [\"Partner\", \"Kolaborasi dengan tour operator lokal untuk paket wisata\"],\n                        [\"Keunikan\", \"20+ tahun — salah satu agen visa PALING LAMA di Bali\"],\n                    ],\n                    [2200, 7160],\n                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19)]\n                ),\n\n                spacer(60),\n                new Paragraph({ children: [new TextRun({ text: \"Gap yang teridentifikasi dari website Rolina (per Juni 2026):\", bold: true })] }),\n                bullet(\"Website hanya dalam Bahasa Inggris — tidak ada multi-language support\"),\n                bullet(\"Tidak ada pricing transparan — user harus kontak dulu untuk tahu harga\"),\n                bullet(\"WhatsApp link tidak prominent di website (hanya telepon & email)\"),\n                bullet(\"Tidak ada testimonial atau review yang visible\"),\n                bullet(\"Tidak ada blog/content marketing (artikel tentang visa, tips Bali, dll)\"),\n                bullet(\"Tidak ada tracking system online untuk status visa\"),\n\n                spacer(120),\n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"3.2  Analisis SWOT\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n                \n                // SWOT Table\n                new Table({\n                    width: { size: 9360, type: WidthType.DXA }, columnWidths: [4680, 4680],\n                    rows: [\n                        new TableRow({ children: [\n                            new TableCell({ borders: b, width: { size: 4680, type: WidthType.DXA }, shading: { fill: \"E8F5E9\", type: ShadingType.CLEAR }, \n                                children: [new Paragraph({ children: [new TextRun({ text: \"\\uD83D\\uDFE2 STRENGTHS\", bold: true, size: 22, color: \"2E7D32\" })] }),\n                                    bullet(\"20+ tahun pengalaman — kredibilitas TERTINGGI di antara kompetitor\"),\n                                    bullet(\"Kantor fisik di Bali — bukan purely online\"),\n                                    bullet(\"Layanan lengkap: tourist s/d retiree & investor\"),\n                                    bullet(\"Partner dengan tour operator — cross-sell opportunity\"),\n                                    bullet(\"Specialist team — \\\"highly skilled immigration specialists\\\"\"),\n                                ] }),\n                            new TableCell({ borders: b, width: { size: 4680, type: WidthType.DXA }, shading: { fill: \"FFEBEE\", type: ShadingType.CLEAR }, \n                                children: [new Paragraph({ children: [new TextRun({ text: \"\\uD83D\\uDD34 WEAKNESSES\", bold: true, size: 22, color: \"C62828\" })] }),\n                                    bullet(\"Website tidak multi-language — hanya Inggris\"),\n                                    bullet(\"Tidak ada pricing transparan\"),\n                                    bullet(\"Tidak ada WhatsApp/chat sebagai CTA utama\"),\n                                    bullet(\"Tidak ada social proof (testimonial, review)\"),\n                                    bullet(\"Tidak ada content marketing / SEO\"),\n                                    bullet(\"Tidak ada Meta Ads aktif (sepengetahuan kami)\"),\n                                ] }),\n                        ] }),\n                        new TableRow({ children: [\n                            new TableCell({ borders: b, width: { size: 4680, type: WidthType.DXA }, shading: { fill: \"FFF9C4\", type: ShadingType.CLEAR }, \n                                children: [new Paragraph({ children: [new TextRun({ text: \"\\uD83D\\uDFE1 OPPORTUNITIES\", bold: true, size: 22, color: \"F57F17\" })] }),\n                                    bullet(\"Niche targeting Australia & Belanda — celah yang belum digarap kompetitor\"),\n                                    bullet(\"Konten edukasi multi-bahasa (EN + NL) sebagai differentiator\"),\n                                    bullet(\"WhatsApp integration — 90%+ kompetitor pakai WA, Rolina harus ikut\"),\n                                    bullet(\"Pasar Australia: 1.63M pengunjung/tahun, belum ada kampanye visa khusus AU\"),\n                                    bullet(\"Trend digital nomad & retiree visa — Rolina punya layanan untuk keduanya\"),\n                                    bullet(\"Australia punya direct flights ke Bali — barrier to entry rendah\"),\n                                ] }),\n                            new TableCell({ borders: b, width: { size: 4680, type: WidthType.DXA }, shading: { fill: \"FFEBEE\", type: ShadingType.CLEAR }, \n                                children: [new Paragraph({ children: [new TextRun({ text: \"\\u26A0\\uFE0F THREATS\", bold: true, size: 22, color: \"C62828\" })] }),\n                                    bullet(\"Flado & Bali Visa Agency AGGRESSIVE di Meta Ads — bisa outspend Rolina\"),\n                                    bullet(\"Bali Legals (Australian-owned) — kredibilitas lebih tinggi di mata orang Australia\"),\n                                    bullet(\"Perubahan regulasi visa Indonesia yang cepat — bisa bikin konten cepat outdated\"),\n                                    bullet(\"Kompetitor dengan multi-language support (Flado: 10 bahasa)\"),\n                                    bullet(\"Price war: Flado dan Bahalap Uras kasih harga transparan murah\"),\n                                ] }),\n                        ] }),\n                    ]\n                }),\n            ]\n        },\n\n        // ═══════ SECTION 4 — FUNNEL STRATEGY ═══════\n        {\n            properties: { page: { size: { width: 12240, height: 15840 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } },\n                headers: { default: new Header({ children: [new Paragraph({ alignment: AlignmentType.RIGHT, children: [new TextRun({ text: \"Rolina Visa Services — Proposal Meta Ads\", font: \"Arial\", size: 16, color: \"999999\", italics: true })] })] }) },\n                footers: { default: new Footer({ children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: \"Page \", font: \"Arial\", size: 16, color: \"999999\" }), new TextRun({ children: [PageNumber.CURRENT], font: \"Arial\", size: 16, color: \"999999\" })] })] }) },\n            },\n            children: [\n                new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun({ text: \"4. STRATEGI META ADS — FUNNEL KOMPREHENSIF\", bold: true, font: \"Arial\", size: 36, color: \"1F4E79\" })] }),\n\n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"4.1  Arsitektur Funnel 3-Tahap\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n                new Paragraph({ children: [new TextRun({ text: \"Funnel didesain untuk memindahkan calon klien dari AWARENESS (belum kenal Rolina) → CONSIDERATION (membandingkan opsi) → CONVERSION (WhatsApp inquiry → paid client).\" })] }),\n                spacer(60),\n\n                makeTableFull(\n                    [\"TAHAP\", \"TOFU (Top of Funnel)\", \"MOFU (Middle of Funnel)\", \"BOFU (Bottom of Funnel)\"],\n                    [\n                        [\"Tujuan\", \"Awareness & Reach\\nMemperkenalkan Rolina\", \"Consideration & Engagement\\nMembangun kepercayaan\", \"Conversion\\nMendorong aksi: WhatsApp/Call\"],\n                        [\"Target Audience\", \"Cold audience\\nBelum kenal Rolina\", \"Warm audience\\nSudah engage/visit\", \"Hot audience\\nSiap konversi\"],\n                        [\"Budget Alokasi\", \"40-50%\", \"25-35%\", \"15-25%\"],\n                        [\"Format Iklan\", \"Video pendek (15-30s)\\nCarousel edukasi\\nImage (Bali beauty)\", \"Video testimonial\\nCarousel perbandingan visa\\nBlog/article promotion\", \"Single image CTA\\nVideo WhatsApp demo\\nInstant Experience form\"],\n                        [\"Copy Angle\", \"Inspirasi + Edukasi\\n\\\"Bali is calling\\\"\", \"Trust + Proof\\n\\\"20+ years experience\\\"\", \"Urgensi + Kemudahan\\n\\\"Chat us now on WhatsApp\\\"\"],\n                        [\"CTA\", \"Learn More / Watch\", \"Download Guide / Read More\", \"WhatsApp Now / Free Consultation\"],\n                        [\"Metrik Sukses\", \"Impressions, Reach, CPM\\nVideo views 25%+\", \"CTR, Landing Page Views\\nEngagement rate\", \"Leads, CPL, Conversion rate\\nCost per booked client\"],\n                    ],\n                    [2000, 2453, 2453, 2453],\n                    (r, w, fill) => [bc(r[0], w[0], 18), c(r[1], w[1], false, fill, 18), c(r[2], w[2], false, fill, 18), c(r[3], w[3], false, fill, 18)]\n                ),\n\n                spacer(120),\n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"4.2  Mekanisme Closing & Landing Page\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n                new Paragraph({ children: [new TextRun({ text: \"Semua iklan BOFU mengarahkan ke WhatsApp Rolina dengan pre-filled message. Ini adalah flow yang direkomendasikan:\", bold: true })] }),\n                spacer(60),\n                new Paragraph({ children: [\n                    new TextRun({ text: \"\\uD83D\\uDCCC  Iklan Meta\", bold: true, color: \"2E75B6\" }),\n                    new TextRun({ text: \"  →  \" }),\n                    new TextRun({ text: \"\\uD83D\\uDCF2 Klik CTA \\\"Chat on WhatsApp\\\"\", bold: true, color: \"2E75B6\" }),\n                    new TextRun({ text: \"  →  \" }),\n                    new TextRun({ text: \"\\uD83D\\uDCAC WhatsApp Terbuka (pre-filled):\", bold: true, color: \"2E75B6\" }),\n                    new TextRun({ text: \" \\\"Halo Rolina! Saya tertarik info visa [nama visa]. Bisa dibantu?\\\"\" }),\n                ] }),\n                spacer(40),\n                new Paragraph({ children: [\n                    new TextRun({ text: \"\\uD83D\\uDCCC  Alternatif BOFU:\", bold: true, color: \"2E75B6\" }),\n                    new TextRun({ text: \" Iklan bisa juga mengarah ke landing page khusus di website Rolina dengan:\" }),\n                ] }),\n                bullet(\"Form isian singkat: Nama, Email, Negara asal, Tipe visa yg diminati\"),\n                bullet(\"WhatsApp button fixed di halaman (floating CTA)\"),\n                bullet(\"Tracking: Facebook Pixel untuk remarketing ke yang sudah visit\"),\n                bullet(\"Free consultation offer: \\\"Isi form, dapat konsultasi gratis 15 menit\\\"\"),\n\n                spacer(80),\n                new Paragraph({ children: [new TextRun({ text: \"WhatsApp Pre-Filled Message Examples:\", bold: true, font: \"Arial\", size: 22, color: \"2E75B6\" }) ] }),\n                makeTableFull(\n                    [\"Segment\", \"Pre-Filled WhatsApp Message\"],\n                    [\n                        [\"Tourist AU\", \"\\\"Hi Rolina! I'm from Australia, planning a trip to Bali. Can you help with the tourist visa process?\\\"\"],\n                        [\"Retiree AU\", \"\\\"Hi Rolina! Interested in the Retirement Visa for Bali. Would love a free consultation.\\\"\"],\n                        [\"Investor AU\", \"\\\"Hi Rolina! Looking into Investor KITAS for business setup in Bali. Can we chat?\\\"\"],\n                        [\"Tourist NL\", \"\\\"Hallo Rolina! Ik kom uit Nederland en wil naar Bali. Kunnen jullie helpen met een toeristenvisum?\\\"\"],\n                        [\"Expat NL\", \"\\\"Hallo Rolina! Ik overweeg om in Bali te wonen. Welk visum past bij mij?\\\"\"],\n                    ],\n                    [2400, 6960],\n                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19)]\n                ),\n\n                spacer(120),\n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"4.3  Targeting Detail: AUSTRALIA \\uD83C\\uDDE6\\uD83C\\uDDFA\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n                makeTableFull(\n                    [\"Parameter\", \"Setting\"],\n                    [\n                        [\"Lokasi\", \"Australia (semua state: NSW, VIC, QLD, WA, SA, TAS, NT, ACT)\"],\n                        [\"Kota Prioritas\", \"Sydney, Melbourne, Brisbane, Perth, Gold Coast, Adelaide\"],\n                        [\"Umur\", \"25-65 tahun\"],\n                        [\"Bahasa\", \"English\"],\n                        [\"Minat (Interests)\", \"Bali, Indonesia travel, Southeast Asia travel, Digital nomad, Expat life, Retirement abroad, Surfing, Yoga & wellness, Real estate investment abroad\"],\n                        [\"Behavior\", \"International travelers, Frequent travelers, Engaged shoppers (travel category)\"],\n                        [\"Lookalike\", \"1-3% Lookalike dari data klien existing Rolina (kalau ada)\"],\n                        [\"Exclude\", \"Orang yang sudah like/follow halaman Rolina (untuk TOFU), Orang yang sudah konversi dalam 30 hari terakhir\"],\n                    ],\n                    [2200, 7160],\n                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19)]\n                ),\n                spacer(40),\n                new Paragraph({ children: [new TextRun({ text: \"Market insight:\", bold: true }), new TextRun({ text: \" Australia adalah pasar #1 untuk Bali. 1,63 juta kedatangan/tahun (~25% dari total). Penerbangan langsung dari Sydney, Melbourne, Brisbane, Perth, Gold Coast, Adelaide, Darwin. Warga Australia eligible untuk e-VOA 30 hari, tapi banyak yang butuh visa lebih panjang (C1, KITAS, retiree).\" })] }),\n\n                spacer(100),\n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"4.4  Targeting Detail: BELANDA (NETHERLANDS) \\uD83C\\uDDF3\\uD83C\\uDDF1\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n                makeTableFull(\n                    [\"Parameter\", \"Setting\"],\n                    [\n                        [\"Lokasi\", \"Netherlands (semua provinsi)\"],\n                        [\"Kota Prioritas\", \"Amsterdam, Rotterdam, Den Haag, Utrecht, Eindhoven, Groningen\"],\n                        [\"Umur\", \"25-65 tahun\"],\n                        [\"Bahasa\", \"Dutch (Nederlands) + English\"],\n                        [\"Minat (Interests)\", \"Bali, Indonesi\\xEB reizen, Zuidoost-Azi\\xEB reizen, Digital nomad, Expat/Pensioen in buitenland, Surfen, Yoga, Investering in vastgoed\"],\n                        [\"Behavior\", \"International travelers, Frequent flyers, Travel planners\"],\n                        [\"Lookalike\", \"1-3% Lookalike dari data klien existing (kalau ada)\"],\n                        [\"Exclude\", \"Yang sudah like/follow, yang sudah konversi\"],\n                    ],\n                    [2200, 7160],\n                    (r, w, fill) => [bc(r[0], w[0], 19), c(r[1], w[1], false, fill, 19)]\n                ),\n                spacer(40),\n                new Paragraph({ children: [new TextRun({ text: \"Market insight:\", bold: true }), new TextRun({ text: \" Belanda punya hubungan historis kuat dengan Indonesia. Banyak warga Belanda yang pensiun atau berbisnis di Bali. Target utama: pensiunan (retiree visa), digital nomad/remote worker, dan wisatawan long-stay. Bahasa Belanda jarang dipakai oleh kompetitor — ini adalah BLUE OCEAN untuk Rolina. Kampanye bilingual (NL+EN) bisa jadi pembeda kuat.\" })] }),\n            ]\n        },\n\n        // ═══════ SECTION 5 — AD SCRIPTS ═══════\n        {\n            properties: { page: { size: { width: 12240, height: 15840 }, margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } },\n                headers: { default: new Header({ children: [new Paragraph({ alignment: AlignmentType.RIGHT, children: [new TextRun({ text: \"Rolina Visa Services — Proposal Meta Ads\", font: \"Arial\", size: 16, color: \"999999\", italics: true })] })] }) },\n                footers: { default: new Footer({ children: [new Paragraph({ alignment: AlignmentType.CENTER, children: [new TextRun({ text: \"Page \", font: \"Arial\", size: 16, color: \"999999\" }), new TextRun({ children: [PageNumber.CURRENT], font: \"Arial\", size: 16, color: \"999999\" })] })] }) },\n            },\n            children: [\n                new Paragraph({ heading: HeadingLevel.HEADING_1, children: [new TextRun({ text: \"5. KREATIF IKLAN — SCRIPT & FORMAT\", bold: true, font: \"Arial\", size: 36, color: \"1F4E79\" })] }),\n                new Paragraph({ children: [new TextRun({ text: \"Berikut adalah script iklan detail untuk setiap tahap funnel, dipisahkan per negara target. Setiap script mencakup audience, copy, CTA, dan format visual yang direkomendasikan.\", bold: true })] }),\n\n                new Paragraph({ heading: HeadingLevel.HEADING_2, children: [new TextRun({ text: \"5.1  Kampanye Australia \\uD83C\\uDDE6\\uD83C\\uDDFA (9 Script)\", bold: true, font: \"Arial\", size: 28, color: \"2E75B6\" })] }),\n\n                // ── AU TOFU ──\n                new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun({ text: \"TOFU — Awareness (3 ads)\", bold: true, font: \"Arial\", size: 24, color: \"333333\" })] }),\n                \n                ...countryAd(\"Australia\", \"\\uD83C\\uDDE6\\uD83C\\uDDFA\", \"TOFU-1: Destination Hype\", \n                    \"Australians 25-55, interested in Bali/Indonesia travel, belum pernah engage dengan Rolina\",\n                    \"\\uD83C\\uDF34 Dreaming of Bali?\\n\\nFrom the beaches of Seminyak to the rice terraces of Ubud — your tropical escape is just a visa away. \\n\\nAnd getting that visa? It's easier than you think. \\n\\nAt Rolina Visa Services, we've been helping Australians explore Bali for over 20 years. Let us handle the paperwork while you plan your tan. \\u2600\\uFE0F\",\n                    \"Learn More \\u2192\",\n                    \"Video 15-20s: Drone shots Bali (pantai, sawah, pura) + text overlay + logo Rolina\"\n                ),\n                ...countryAd(\"Australia\", \"\\uD83C\\uDDE6\\uD83C\\uDDFA\", \"TOFU-2: Educational — \\\"Which Visa?\\\"\", \n                    \"Australians searching about Bali travel requirements, visa info\",\n                    \"\\uD83E\\uDD14 Planning a Bali trip but confused about visas?\\n\\nHere's a quick guide for Australians:\\n\\n\\u2705 Short trip (<30 days): eVOA (apply online, $35)\\n\\u2705 Long stay (60-180 days): Tourist C1 Visa\\n\\u2705 Digital nomad / remote worker: Nomad KITAS\\n\\u2705 Retiring in Bali: Retirement KITAS\\n\\nNeed help figuring out which one you need? Rolina's specialists have 20+ years experience helping Aussies get the right visa.\",\n                    \"Get Free Visa Guide \\u2192\",\n                    \"Carousel 4 slides: 1 visa type per slide + icon + singkat deskripsi\"\n                ),\n                ...countryAd(\"Australia\", \"\\uD83C\\uDDE6\\uD83C\\uDDFA\", \"TOFU-3: Retiree Angle\", \n                    \"Australians 50-65, interested in retirement abroad, Bali property, expat life\",\n                    \"\\uD83C\\uDFF4\\u200D\\u2620\\uFE0F Aussie, thinking about retiring in Bali?\\n\\n\\u2600\\uFE0F Year-round tropical climate\\n\\uD83D\\uDCB0 Cost of living 60-70% lower than Australia\\n\\uD83C\\uDF5C Incredible food, culture, and community\\n\\uD83C\\uDFE5 Property options for foreigners\\n\\nBut first — you'll need a Retirement KITAS. Rolina Visa Services has been helping Australian retirees settle in Bali for 20+ years. \\n\\nStart your Bali retirement journey today.\",\n                    \"Learn About Retiree Visa \\u2192\",\n                    \"Video 15-20s: Australian retiree enjoying Bali (villa, beach, cafe) + text overlay\"\n                ),\n\n                // ── AU MOFU ──\n                new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun({ text: \"MOFU — Consideration (3 ads)\", bold: true, font: \"Arial\", size: 24, color: \"333333\" })] }),\n                \n                ...countryAd(\"Australia\", \"\\uD83C\\uDDE6\\uD83C\\uDDFA\", \"MOFU-1: Trust & Credibility\", \n                    \"Retargeting: orang yang sudah nonton TOFU video atau visit website\",\n                    \"\\uD83C\\uDF1F 20+ Years. Thousands of Happy Clients. One Trusted Name.\\n\\nRolina Visa Services is one of Bali's most established visa agencies, with specialist immigration consultants handling your application from start to finish.\\n\\n\\u2705 Licensed & official\\n\\u2705 Real-time status updates\\n\\u2705 Transparent process — no surprises\\n\\u2705 Office in Bali — we're here when you arrive!\\n\\nDon't trust your visa to just anyone. Trust experience.\",\n                    \"Chat With Us on WhatsApp \\u2192\",\n                    \"Video 20s: Tim Rolina di kantor, proses dokumen, brief interview singkat founder/staff\"\n                ),\n                ...countryAd(\"Australia\", \"\\uD83C\\uDDE6\\uD83C\\uDDFA\", \"MOFU-2: Process Breakdown\", \n                    \"Australians yang sudah lihat konten TOFU, tertarik tapi belum yakin\",\n                    \"\\uD83D\\uDCCB Getting a Bali Visa — Here's How Simple It Is:\\n\\n\\u2460 Step 1: Tell us which visa you need (free consultation!)\\n\\u2461 Step 2: Send us your documents (we'll check everything)\\n\\u2462 Step 3: We submit to immigration\\n\\u2463 Step 4: Visa approved — you're Bali-bound! \\u2708\\uFE0F\\n\\nNo stress. No confusion. Just 20 years of expertise doing the heavy lifting for you.\\n\\nReady to get started?\",\n                    \"Start My Application \\u2192\",\n                    \"Infographic-style static image: 4 steps with icons + Rolina branding\"\n                ),\n                ...countryAd(\"Australia\", \"\\uD83C\\uDDE6\\uD83C\\uDDFA\", \"MOFU-3: Testimonial/Comparison\", \n                    \"Australians comparing visa agencies, searching reviews\",\n                    \"\\\"I was overwhelmed by the visa options for Bali. Rolina made it so easy — they explained everything, handled the paperwork, and my visa was approved in 8 days!\\\" — Sarah M., Melbourne \\u2B50\\u2B50\\u2B50\\u2B50\\u2B50\\n\\n\\uD83D\\uDCB0 Competitive pricing\\n\\uD83D\\uDCC5 Fast processing\\n\\uD83D\\uDCDE Real people on WhatsApp — not bots\\n\\nJoin thousands of Australians who trust Rolina for their Bali visa.\",\n                    \"Chat on WhatsApp \\u2192\",\n                    \"Carousel: 3x testimonial quotes + foto (stock or real client) + star ratings\"\n                ),\n\n                // ── AU BOFU ──\n                new Paragraph({ heading: HeadingLevel.HEADING_3, children: [new TextRun({ text: \"BOFU — Conversion (3 ads)\", bold: true, font: \"Arial\", size: 24, color: \"333333\" })]


system

Wrote 30943 bytes to /app/working/workspaces/default/build_final_part2.js.