import React, { useMemo, useState } from "react"; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs"; import { RefreshCw, TrendingUp, Calculator } from "lucide-react"; export default function ROIMonetizer() { const presets = { infoProduct: { name: "Инфопродукт: Tripwire $29 → Core $499", adBudgetDay: 200, cpm: 8, ctrPct: 1.8, landCvrPct: 28, lead2TripPct: 9, tripPrice: 29, tripRefundPct: 4, upsellTakePct: 15, upsellPrice: 79, coreViewPct: 35, coreBuyPct: 2.2, corePrice: 499, planSharePct: 40, planDefaultPct: 7, ltvAddon: 35, }, aiFunnels: { name: "AI‑воронки: Tripwire $49 → Core $990", adBudgetDay: 300, cpm: 10, ctrPct: 2.2, landCvrPct: 30, lead2TripPct: 12, tripPrice: 49, tripRefundPct: 3, upsellTakePct: 18, upsellPrice: 149, coreViewPct: 40, coreBuyPct: 3, corePrice: 990, planSharePct: 50, planDefaultPct: 6, ltvAddon: 55, }, chinaBuyers: { name: "Байєрство з Китаю: Tripwire $19 → Core $699", adBudgetDay: 150, cpm: 6, ctrPct: 2.5, landCvrPct: 32, lead2TripPct: 10, tripPrice: 19, tripRefundPct: 5, upsellTakePct: 20, upsellPrice: 59, coreViewPct: 30, coreBuyPct: 2.5, corePrice: 699, planSharePct: 35, planDefaultPct: 8, ltvAddon: 25, }, investments: { name: "Инвестиции: Tripwire $9 → Core $199", adBudgetDay: 100, cpm: 7, ctrPct: 2.8, landCvrPct: 35, lead2TripPct: 11, tripPrice: 9, tripRefundPct: 2, upsellTakePct: 12, upsellPrice: 39, coreViewPct: 45, coreBuyPct: 3.5, corePrice: 199, planSharePct: 25, planDefaultPct: 5, ltvAddon: 15, }, }; const [selectedPreset, setSelectedPreset] = useState("infoProduct"); const preset = presets[selectedPreset]; const revenue = useMemo(() => { const leads = (preset.adBudgetDay / preset.cpm) * 1000 * (preset.ctrPct / 100) * (preset.landCvrPct / 100); const tripSales = leads * (preset.lead2TripPct / 100); const tripRevenue = tripSales * preset.tripPrice * (1 - preset.tripRefundPct / 100); const upsellRevenue = tripSales * (preset.upsellTakePct / 100) * preset.upsellPrice; const coreRevenue = tripSales * (preset.coreViewPct / 100) * (preset.coreBuyPct / 100) * preset.corePrice; return (tripRevenue + upsellRevenue + coreRevenue + preset.ltvAddon * tripSales).toFixed(0); }, [preset]); return (

Монетизатор воронок: прогноз прибыли (пресеты)

Выберите тип воронки — система подставит оптимальные параметры и рассчитает прогноз прибыли.

{Object.keys(presets).map((key) => ( {presets[key].name} ))}
Прогноз выручки в день
${revenue}
Параметры из шаблона «{preset.name}» основаны на реальных показателях американских direct‑response воронок.
); }