Add Claude API key in Settings → AI Content to enable AI-written articles.
📡 Stream Aggregator
prog.txt: —
Enable in Settings → Stream Aggregator.
Quick Thumbnail — Paste any match title
VS✓ Parsed
Live Events
0 selected
Click "Fetch All" to load today's events.
Match Analytics
Total Views (range)
—
Unique Visitors (range)
—
Tracked Match Pages
—
Organic Search Share
—
🔥 Most Viewed
—
📈 Fastest Growing
—
Per-Match PerformanceClick a header to sort
Match
Views
Uniques
Organic %
Avg. Time
7d Growth
Page
Click "📊 Analytics" to load, or hit Refresh.
Data source: Firebase RTDB pageStats/ + uniqueVisitors/, written client-side by analytics-tracker.js on each published match page. This is first-party view/engagement data — not Google Search Console data (impressions/clicks/CTR require a separate, authorized GSC connection).
SEO Audit
Per-Match SEO Opportunity
Match
Opportunity
Search (GSC)
Evidence
Recommended Action
Apply
Click "▶️ Run Audit" to scan your published match pages via the Blogger API.
Scores are computed deterministically from real on-page facts (title length, meta description presence, word count, alt text, internal links) plus Phase 1 analytics — never fabricated. Gemini only drafts the meta-description text shown for your review; nothing is written to the live post until you click "Apply", and every applied change is logged to Firebase (seoChangeLog/) for review or manual rollback.
Fix Sandbox / Player URL
Posts Using Old Sandbox / Player Domain
Match
Issue(s) Found
Fix
Click "▶️ Scan Posts" to check your published match pages for the old sandbox attribute or player domain.
Scans posts in your Post Log for the removed sandbox="allow-forms allow-pointer-lock allow-same-origin allow-scripts allow-top-navigation" attribute and the old eclecticstreams.github.io/player/ domain — both baked into post content at publish time, so already-live posts weren't updated when the generator template was fixed. Fixing only rewrites the matched iframe attribute/domain — nothing else in the post is touched. Every applied change is logged to Firebase (sandboxFixLog/) with the full before/after content for manual rollback.
Compose Post
✏️Editing existing post — saving will update the live article, not create a new one.ID: View live post ↗
Claude AI is writing your article…
Post Details
VS⚡ Auto-generating…
SEO Meter
Title Length
0 ch
Word Count
0
Labels
0
⚠ Blogger publishes at this UTC time. Make sure your blog timezone matches.
📡 Multi-Source Stream Aggregator
—
Open an event with "✍️ Gen" to auto-load streams.
🎥 Stream Links
Add a stream URL above…
🎬 Highlights Player
Add a highlights URL above…
⚡ Content Blocks
🖼️ Auto-Thumbnail Studio
AUTO
Enter a title to auto-generate…
🎨 Customise Thumbnail
?
?
Full Race Replays
Ready. Click "Scrape FullRaces.com" or paste a race URL above…
No races loaded yet.
Thumbnail Builder
Quick Parse
VS
Teams / Event
?
?
Style & Output
imgbb URL
Preview
Click Build or start typing…
Channel Library
🔄 Connecting to Firebase…
Logo
Channel
Sports / League Tags
Stream URL
Region
Actions
Ads & Monetization
🔄 Connecting to Firebase…
Add ad codes from AdSense, Adsterra, Monetag, or paste your own custom HTML/JS snippet (popunders, native ads, banners, etc). Each slot can be placed in a specific spot on your blog and toggled on/off without editing the theme. Premium subscribers never see slots placed in Live TV or Match Cards — those automatically respect your ad-free subscription benefit.
Name
Network
Placement
Status
Actions
Add Ad Slot
Auto Scheduler
⚡ SCHEDULER FIX v7: Posts now use Blogger's published date field to schedule exact go-live times. Select "Schedule as LIVE" mode — the post will be created as LIVE at the exact kickoff-minus-offset time. No more posts sitting as drafts.
Settings
LIVE mode: Creates post with exact publish date so Blogger goes live at your chosen time. DRAFT mode: Saves to drafts for manual review — you publish manually.
Scheduler Log
Scheduled Queue
Fetch events first.
Post Log
Title
League
Thumb
Status
HL
Posted
Link
Settings
Blogger / Google OAuth
Active client:Primary
🤖 Claude AI Content Engine
NOT CONFIGURED
Why Claude? Anthropic Claude API · Writes detailed match previews & highlights · Excellent SEO · Context-aware articles using team names, league, score, and kickoff time.
🔎 Gemini SEO Intelligence
NOT CONFIGURED
What this does Powers the 🔍 SEO Audit page. Drafts meta descriptions from your real match data (teams, league, kickoff time) — never invents stats or claims. Nothing is written to your live posts without you clicking Apply.
🤖 Auto-Generate Content at Publish Time
When ON, every time you publish a match (Compose, Quick Post, or Bulk Publish), Gemini automatically researches and appends an SEO content section to that post in the background — no separate trip to SEO Audit. It appends only, never replaces your thumbnail/stream embed, and every change is still logged to seoChangeLog/ for review. This runs unattended per-post, so double-check a few results before relying on it for bulk publishing.
📈 Google Search Console
NOT CONFIGURED
What this does Pulls real impressions/clicks/CTR/position from Search Console for the SEO Audit page — on-demand only, no automatic sync. Uses the same sign-in as Blogger (you may need to Sign out / Sign in once after this update to grant the new read-only scope).
🔴 Multi-Source Stream Aggregator
Not loaded
Active Leagues
0 active
Logo Overrides (one per line: Team Name = URL)
Data Management
Post Preview
Bulk Post Preview (0 events)
Review generated titles + thumbnails before anything goes live. Remove any you don't want, then confirm.
AI Draft Article
This appends a new, clearly-marked section to the end of the existing post — it never removes or replaces your current content, thumbnail, or stream embed. Every applied change is logged to Firebase seoChangeLog/ for review or manual rollback.
Edit Match Card
Overrides how this match's card is written to Firebase (esconfig/todaysMatches) — same as index.html's Match Card Generator. Leave blank to keep auto-detected values.