GA4
Usa esta habilidad para informes de Google Analytics 4 a través de la API de Datos de Google Analytics: sesiones, eventos clave, ingresos, desgloses por fuente de tráfico, desgloses por página de aterrizaje, consultas de series temporales, lecturas de analista ad-hoc, dashboards, informes programados, ETL y monitoreo.
Alcance
- ejecutar solicitudes
runReportde GA4 para una propiedad configurada - traducir solicitudes comunes de analista en inglés a payloads de la API de Datos revisables
- revisar el JSON de la solicitud GA4 antes de la ejecución
- construir informes de fuente de tráfico, grupo de canales, página de aterrizaje, tendencia diaria, ingresos, sesiones, usuarios y eventos clave
- soportar OAuth de usuario delegado y autenticación de cuenta de servicio a través del mismo contrato de manejador bearer del gateway
- mantener la selección del modo de autenticación en la configuración del inquilino/tiempo de ejecución, no en la lógica del prompt
- medir el costo de ejecución de la habilidad a través de los
UsageTotalsnormales de HybridClaw
Flujo de Trabajo por Defecto
- Comienza con
report-planpara solicitudes en lenguaje natural a menos que el usuario ya haya proporcionado un JSON de solicitud de la API de Datos de GA4. - Revisa el JSON de solicitud generado o proporcionado por el usuario con
review-requestantes de una llamada en vivo. - Para llamadas en vivo a la API de GA4 dentro de HybridClaw, usa
http_requestdirectamente cuando esté disponible. Pasa el objetohttpRequestemitido por el helper a la herramienta. - Usa el helper para planificación/revisión offline y para ejecución proxyada por el gateway cuando
http_requestno esté disponible:python3 skills/ga4/scripts/ga4.py ... - Trata todas las operaciones de GA4 en esta habilidad como de solo lectura. No intentes mutaciones de la API de Admin, cambios de acceso a propiedades, cambios de eventos clave o cambios de etiquetas.
Contrato de Autenticación
La habilidad soporta dos modos de autenticación sin exponer tokens o claves privadas al modelo:
- OAuth de usuario delegado a través de un manejador secreto bearer
- Intercambio JWT bearer de cuenta de servicio de Google a través del gateway
La configuración del inquilino decide qué modo usar.
Manejador OAuth de usuario delegado por defecto:
hybridclaw auth login google \
--client-id "<google-oauth-client-id>" \
--client-secret "<google-oauth-client-secret>" \
--account [email protected] \
--scopes "https://www.googleapis.com/auth/analytics.readonly"
hybridclaw auth status google
Para OAuth delegado, usa el bearerSecretName por defecto: "GOOGLE_WORKSPACE_CLI_TOKEN" o una ruta de autenticación URL google-oauth.
Para automatización con cuenta de servicio, almacena el client_email de la cuenta de servicio y la private_key PEM como secretos cifrados en tiempo de ejecución. El gateway lee esos secretos nombrados, firma la aserción JWT del lado del servidor, la intercambia por un token de acceso de Google de corta duración e inyecta ese token en la solicitud GA4.
Establece o actualiza esos secretos en este orden:
- Admin del navegador: abre la URL de admin activa de HybridClaw que termina en
/admin/secrets. /chatdel navegador o fallback TUI:/secret set GA4_SERVICE_ACCOUNT_EMAIL "<client-email>"y/secret set GA4_SERVICE_ACCOUNT_PRIVATE_KEY "<pem-private-key>".- Fallback de consola local:
hybridclaw secret set GA4_SERVICE_ACCOUNT_EMAIL "<client-email>"
hybridclaw secret set GA4_SERVICE_ACCOUNT_PRIVATE_KEY '<pem-private-key>'
No pegues tokens de acceso OAuth, tokens de actualización, claves privadas de cuenta de servicio o archivos JSON de clave descargados en el prompt. Las credenciales reales permanecen en el tiempo de ejecución de secretos de HybridClaw y son usadas del lado del servidor por el gateway.
Los valores predeterminados almacenados opcionales usan el mismo orden de configuración: admin del navegador en /admin/secrets, luego /secret set en /chat del navegador o TUI, luego fallback de consola local.
hybridclaw secret set GA4_PROPERTY_ID "<numeric-property-id>"
hybridclaw secret set GA4_BEARER_SECRET_NAME "GOOGLE_WORKSPACE_CLI_TOKEN"
Para trabajos de cuenta de servicio sin supervisión, establece los valores predeterminados de entorno en el tiempo de ejecución del inquilino:
GA4_SERVICE_ACCOUNT_EMAIL_SECRET=GA4_SERVICE_ACCOUNT_EMAIL
GA4_SERVICE_ACCOUNT_PRIVATE_KEY_SECRET=GA4_SERVICE_ACCOUNT_PRIVATE_KEY
Contrato de Comandos
Planificar un informe a partir de lenguaje natural:
python3 skills/ga4/scripts/ga4.py --format json report-plan \
"Muéstrame las conversiones orgánicas de la semana pasada en comparación con la semana anterior"
Construir un payload http_request para una solicitud planificada o escrita a mano:
python3 skills/ga4/scripts/ga4.py --format json http-request 123456789 \
--request-json '{"dateRanges":[{"startDate":"7daysAgo","endDate":"yesterday"}],"dimensions":[{"name":"date"}],"metrics":[{"name":"sessions"}],"limit":25}'
Ejecutar un informe a través de la ruta del helper del gateway:
python3 skills/ga4/scripts/ga4.py --format json run-report 123456789 \
--request-json '{"dateRanges":[{"startDate":"7daysAgo","endDate":"yesterday"}],"metrics":[{"name":"sessions"}]}'
Usar autenticación de cuenta de servicio eligiendo los nombres de secretos de cuenta de servicio almacenados:
python3 skills/ga4/scripts/ga4.py --format json http-request 123456789 \
--google-service-account-email-secret GA4_SERVICE_ACCOUNT_EMAIL \
--google-service-account-private-key-secret GA4_SERVICE_ACCOUNT_PRIVATE_KEY \
--request-json '{"dateRanges":[{"startDate":"7daysAgo","endDate":"yesterday"}],"metrics":[{"name":"sessions"}]}'
Revisar el JSON de solicitud offline:
python3 skills/ga4/scripts/ga4.py --format json review-request \
'{"dateRanges":[{"startDate":"30daysAgo","endDate":"yesterday"}],"dimensions":[{"name":"landingPagePlusQueryString"}],"metrics":[{"name":"sessions"},{"name":"totalRevenue"}],"limit":25}'
Emitir el payload de plantilla de prompt para consulta de analista:
python3 skills/ga4/scripts/ga4.py --format json prompt-template \
"Sesiones diarias e ingresos de los últimos 30 días"
Ejecutar el conjunto de evaluación incluido:
python3 skills/ga4/scripts/ga4.py --format json eval-scenarios
Reglas de Trabajo
- Usa identificadores de propiedad GA4 numéricos. Acepta entrada
properties/<id>, pero normalízala antes de las llamadas a la API. - Usa
keyEventspara informes de tipo conversión a menos que el usuario solicite explícitamente una métrica de evento personalizada. - Usa
sessionDefaultChannelGroup,sessionSourceMedium,landingPagePlusQueryStringydatepara los desgloses de producción comunes antes de recurrir a dimensiones personalizadas. - Incluye un límite de filas. Por defecto, 25 para informes ad-hoc y aumenta solo cuando el usuario solicite un resultado de exportación o de tamaño ETL.
- Pide aclaración cuando la solicitud mencione un trimestre sin año.
- No agregues escrituras de la API de Admin a esta habilidad. Una habilidad de administración separada necesitaría niveles de aprobación explícitos y pruebas de límites.
Conjunto de Evaluación
Los escenarios incluidos cubren 25 solicitudes de analista representativas en sesiones, eventos clave, ingresos, fuente de tráfico, página de aterrizaje, series temporales, comparaciones, comercio electrónico, geográfico, dispositivo y casos de seguridad/aclaración.