import React, { useState } from 'react'; import { AppView, AnalysisResult } from './types'; import { analyzeTrafficStrategy } from './services/geminiService'; import StrategyResults from './components/StrategyResults'; import { Rocket, Shield, Activity, Search, AlertOctagon } from 'lucide-react'; const App: React.FC = () => { const [view, setView] = useState(AppView.INPUT); const [url, setUrl] = useState(''); const [niche, setNiche] = useState(''); const [selectedNetworks, setSelectedNetworks] = useState(['AdSense']); const [result, setResult] = useState(null); const [error, setError] = useState(null); const toggleNetwork = (net: string) => { setSelectedNetworks(prev => prev.includes(net) ? prev.filter(n => n !== net) : [...prev, net] ); }; const handleAnalyze = async (e: React.FormEvent) => { e.preventDefault(); if (!url || !niche || selectedNetworks.length === 0) { setError("Please fill in all fields and select at least one network."); return; } setError(null); setView(AppView.ANALYZING); try { const data = await analyzeTrafficStrategy(url, niche, selectedNetworks); setResult(data); setView(AppView.RESULTS); } catch (err) { setError("Analysis failed. Please try again."); setView(AppView.INPUT); } }; return (
{/* Navbar */} {/* Main Content */}
{view === AppView.INPUT && (

Boost Revenue Safely

The only AI traffic analyzer designed to comply with AdSense, Adsterra, and Monetag policies. Grow organic traffic without risking your account.

setUrl(e.target.value)} className="w-full bg-slate-900/80 border border-slate-600 rounded-lg py-2.5 pl-10 pr-4 text-white focus:ring-2 focus:ring-emerald-500 focus:border-transparent outline-none transition-all placeholder:text-slate-600" required />
setNiche(e.target.value)} className="w-full bg-slate-900/80 border border-slate-600 rounded-lg py-2.5 pl-10 pr-4 text-white focus:ring-2 focus:ring-emerald-500 focus:border-transparent outline-none transition-all placeholder:text-slate-600" required />
{['AdSense', 'Adsterra', 'Monetag'].map(net => ( ))}
{error && (
{error}
)}

We strictly adhere to anti-fraud policies. No bots, no click-farms.

)} {view === AppView.ANALYZING && (

Analyzing Potential...

Checking safe keyword opportunities for {selectedNetworks.join(', ')}

)} {view === AppView.RESULTS && result && ( { setResult(null); setView(AppView.INPUT); }} /> )}
); }; export default App;