#!/usr/bin/env python3
"""TSC: tandai kejadian 'click' (klik keluar, mayoritas WhatsApp) sebagai kejadian kunci di GA4."""
import json, os, urllib.request, urllib.error
from google.oauth2 import service_account
from googleapiclient.discovery import build

KEY = os.path.expanduser("~/.hermes/gsc_service_account.json")
PROP = "properties/490140645"
adm = build("analyticsadmin", "v1beta",
            credentials=service_account.Credentials.from_service_account_file(
                KEY, scopes=["https://www.googleapis.com/auth/analytics.edit"]), cache_discovery=False)

print("=== sebelum ===")
for k in adm.properties().keyEvents().list(parent=PROP).execute().get("keyEvents", []):
    print(f"   {k.get('eventName')} | {k.get('countingMethod')}")

print("\n=== membuat kejadian kunci 'click' ===")
try:
    hasil = adm.properties().keyEvents().create(parent=PROP, body={
        "eventName": "click", "countingMethod": "ONCE_PER_EVENT"}).execute()
    print(f"   berhasil: {hasil.get('eventName')} | {hasil.get('countingMethod')} | {hasil.get('name')}")
except urllib.error.HTTPError as e:
    print(f"   gagal: HTTP {e.code} — {e.read().decode()[:200]}")
except Exception as e:
    print(f"   gagal: {str(e)[:200]}")

print("\n=== sesudah ===")
for k in adm.properties().keyEvents().list(parent=PROP).execute().get("keyEvents", []):
    print(f"   {k.get('eventName')} | {k.get('countingMethod')}")
