GEMINI LABJP
NANOLITE — Nano Banana 2 Lite is here: Google's fastest and most cost-efficient Gemini Image model, made for running lightweight image generation cheaplyOMNIFLASH — Gemini Omni Flash is in public preview, a natively multimodal model that lets enterprises and developers build custom, dynamic video workflowsAGENTS — Managed Agents expand with background: true for async server-side runs and polling, remote MCP server integration, and refreshing credentials across interactionsMEMORY — The Memory Bank IngestEvents API is generally available, decoupling event ingestion from memory generation so you can stream content continuouslyTHROUGHPUT — Provisioned Throughput now lets you submit up to seven pending orders for the same model and regionDEPRECATE — Image generation models shut down on August 17, and the Grok 4.1 family on the Gemini Enterprise Agent Platform on August 20NANOLITE — Nano Banana 2 Lite is here: Google's fastest and most cost-efficient Gemini Image model, made for running lightweight image generation cheaplyOMNIFLASH — Gemini Omni Flash is in public preview, a natively multimodal model that lets enterprises and developers build custom, dynamic video workflowsAGENTS — Managed Agents expand with background: true for async server-side runs and polling, remote MCP server integration, and refreshing credentials across interactionsMEMORY — The Memory Bank IngestEvents API is generally available, decoupling event ingestion from memory generation so you can stream content continuouslyTHROUGHPUT — Provisioned Throughput now lets you submit up to seven pending orders for the same model and regionDEPRECATE — Image generation models shut down on August 17, and the Grok 4.1 family on the Gemini Enterprise Agent Platform on August 20
Articles/API / SDK
API / SDK/2026-05-25Intermediate

Implementation Notes: Building a Personal Blog Operations Dashboard with Streamlit and the Gemini API

Notes from building a single-pane operations dashboard that unifies Google Search Console and GA4 data with Gemini 2.5 Flash-powered quality scoring, after burning out on switching between 12 browser tabs across six sites every morning. Includes the full Streamlit implementation and weekly low-quality detection job.

gemini-api277streamlitdata-analysis5gscga4blog-opsindie-developer4

Premium Article

For roughly six months, my morning routine was: open Google Search Console, click through four Lab sites and two blog sites, then repeat the whole tour in GA4. An hour would vanish before I had written a single sentence of new content or made a single piece of art. Eventually it became obvious that this had to be solved with software, not discipline.

I am Masaki Hirokawa. Alongside an art practice, I have been a solo iOS and Android developer since 2014 with roughly 50 million cumulative downloads. I currently run four Lab sites (Claude/Gemini/Antigravity/Rork) and two blog sites (Lacrima/Mystery) by myself. Lacrima drew 29,300 clicks over six months and Mystery drew 7,049 in the same window, both monetized via memberships and affiliate links.

These are implementation notes for the Streamlit-plus-Gemini-API dashboard that unifies GSC and GA4 onto one screen. The audience is indie publishers running multiple sites who are losing too much morning energy to dashboard hopping, and developers looking for a concrete, useful project to build with the Gemini API.

Why Watching GSC and GA4 Separately Drains You

GSC and GA4 both come from Google but give complementary views of the same reality. GSC shows "your site as seen from Google Search" (queries, impressions, clicks, position). GA4 shows "your site as seen by users in it" (users, sessions, engagement, conversion). Without both you cannot spot articles that rank well but engage poorly, or articles that rank poorly but earn through direct traffic.

Switching between tabs to compare them does not scale. One site is fine. Six sites means twelve tabs and re-setting the date range in every single one. In practice you stop doing it and only glance at today's numbers. Compound signals like "position dropped but engagement rose" become invisible, and decisions revert to vibes — which is roughly where I was six months ago.

Streamlit is a good fit because Python data-analysis skills translate directly into a web UI. A pandas frame becomes st.dataframe and st.line_chart, and a working dashboard lands in around 100 lines of code. The deployment story is just streamlit run app.py, which matches the indie operational budget.

Architecture

The final shape:

┌──────────────────────────────────────────────┐
│  Streamlit (app.py)                          │
│  ┌──────────────────────────────────────┐    │
│  │  Sidebar: site selector, date range   │   │
│  ├──────────────────────────────────────┤    │
│  │  KPI cards: clicks / imp / CTR / pos  │   │
│  ├──────────────────────────────────────┤    │
│  │  Time series: 28-day trend            │   │
│  ├──────────────────────────────────────┤    │
│  │  Top queries: rank + clicks + scoring │   │
│  ├──────────────────────────────────────┤    │
│  │  Low-quality candidates (Gemini < 60) │   │
│  └──────────────────────────────────────┘    │
└──────────────────────────────────────────────┘
            │            │            │
            ▼            ▼            ▼
       GSC API     GA4 Data API   Gemini API
       (search    (engagement,   (article
        analytics  conversion)    quality
        + sites)                 scoring)

Three points matter. (1) Join GSC and GA4 on page URL so the two views sit in the same dataframe. (2) Use Gemini 2.5 Flash for article-quality scoring — cheap enough for weekly site-wide scans, accurate enough for the Helpful Content axis. (3) Use Streamlit's caching to stay under GSC's daily rate limit — without it, switching between sites a few times a day will exhaust the quota.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Complete Streamlit dashboard code that unifies the Google Search Console API and the GA4 Data API into a single pane for indie publishers running multiple sites.
An article-quality scoring pipeline using Gemini 2.5 Flash, costing about $0.50/month for weekly full-site scans, with Helpful Content System-aligned deletion-candidate detection.
The KPI design and weekly auto-report patterns actually used to operate six sites in parallel — CTR, average position, engagement time, and premium conversion rate.
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Gemini Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

API / SDK2026-05-23
Six Weeks of Running an App Store vs. Google Play Review Diff with Gemini
A six-week record of using the Gemini API to classify App Store and Google Play reviews in parallel and surface platform-specific priority items. Notes from running this on an indie wallpaper app with 50M+ cumulative downloads, including the three platform gaps that actually showed up and the monthly cost.
API / SDK2026-03-20
Build an AI Data Analysis Agent with Gemini API — Combining Code Execution, Function Calling, and Structured Output
Learn how to build a production-ready AI data analysis agent in Python that combines Gemini API's Code Execution, Function Calling, and Structured Output to automatically analyze CSV/Excel data, generate visualizations, and produce structured reports.
API / SDK2026-07-18
The Same gemini-flash-latest Pointed to Different Models in Different Regions
Alias resolution rolls out region by region. Send the same gemini-flash-latest to Tokyo and us-central1 and, for a few days, different models answer. Here is why that quietly invalidates your comparisons, and how a one-shot probe catches it.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →