#!/usr/bin/env python3
"""Peta keyword bernilai tinggi → halaman mana yang menempati (dan apakah berbagi halaman)."""
import json, os
from google.oauth2 import service_account
from googleapiclient.discovery import build

creds = service_account.Credentials.from_service_account_file(
    os.path.expanduser("~/.hermes/gsc_service_account.json"),
    scopes=["https://www.googleapis.com/auth/webmasters.readonly"])
sc = build("searchconsole", "v1", credentials=creds, cache_discovery=False)
SITE = "https://studiosoft.id/"

TOPIK = ["jasa seo surabaya", "digital agency indonesia", "digital agency surabaya", "digital marketing agency surabaya",
         "digital marketing surabaya", "seo surabaya", "branding agency surabaya", "jasa strategi branding campaign surabaya",
         "agency surabaya", "seo agency surabaya", "jasa digital marketing surabaya", "jasa seo sidoarjo", "pakar seo surabaya",
         "jasa seo lokal", "branding visual surabaya", "creative agency surabaya", "jasa seo malang", "marketing agency surabaya"]

body = {"startDate": "2026-06-25", "endDate": "2026-09-23", "dimensions": ["query", "page"],
        "rowLimit": 5000, "dataState": "all"}
rows = sc.searchanalytics().query(siteUrl=SITE, body=body).execute().get("rows", [])

peta = {}
for r in rows:
    q, pg = r["keys"]
    if q in TOPIK:
        peta.setdefault(q, []).append((r["impressions"], r["clicks"], round(r["position"], 1), pg.replace("https://www.studiosoft.id", "").replace("https://studiosoft.id", "")))
for q in TOPIK:
    baris = sorted(peta.get(q, []), reverse=True)
    print(f"\n{q}")
    if not baris:
        print("   (tidak ada data halaman)")
    total_imp = sum(b[0] for b in baris)
    for imp, klik, pos, pg in baris[:4]:
        porsi = round(imp / total_imp * 100) if total_imp else 0
        print(f"   imp {imp:>4} ({porsi:>2}%) | klik {klik} | pos {pos:>5} | {pg[:70]}")
    if len(baris) > 1:
        print(f"   → {len(baris)} halaman bersaing untuk keyword ini (sinyal pecah)")
