{
  "schemaVersion": "1.0",
  "item": {
    "slug": "ga4-analytics",
    "name": "GA4 Analytics",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/adamkristopher/ga4-analytics",
    "canonicalUrl": "https://clawhub.ai/adamkristopher/ga4-analytics",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/ga4-analytics",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=ga4-analytics",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/api-reference.md",
      "scripts/package-lock.json",
      "scripts/package.json",
      "scripts/setup.sh",
      "scripts/src/api/bulk-lookup.ts"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/ga4-analytics"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/ga4-analytics",
    "agentPageUrl": "https://openagent3.xyz/skills/ga4-analytics/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ga4-analytics/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ga4-analytics/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Setup",
        "body": "Install dependencies:\n\ncd scripts && npm install\n\nConfigure credentials by creating a .env file in the project root:\n\nGA4_PROPERTY_ID=123456789\nGA4_CLIENT_EMAIL=service-account@project.iam.gserviceaccount.com\nGA4_PRIVATE_KEY=\"-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----\\n\"\nSEARCH_CONSOLE_SITE_URL=https://your-domain.com\nGA4_DEFAULT_DATE_RANGE=30d\n\nPrerequisites: A Google Cloud project with the Analytics Data API, Search Console API, and Indexing API enabled. A service account with access to your GA4 property and Search Console."
      },
      {
        "title": "Quick Start",
        "body": "User saysFunction to call\"Show me site traffic for the last 30 days\"siteOverview(\"30d\")\"What are my top search queries?\"searchConsoleOverview(\"30d\")\"Who's on the site right now?\"liveSnapshot()\"Reindex these URLs\"reindexUrls([\"https://example.com/page1\", ...])\"Compare this month vs last month\"compareDateRanges({startDate: \"30daysAgo\", endDate: \"today\"}, {startDate: \"60daysAgo\", endDate: \"31daysAgo\"})\"What pages get the most traffic?\"contentPerformance(\"30d\")\n\nExecute functions by importing from scripts/src/index.ts:\n\nimport { siteOverview, searchConsoleOverview } from './scripts/src/index.js';\n\nconst overview = await siteOverview('30d');\n\nOr run directly with tsx:\n\nnpx tsx scripts/src/index.ts"
      },
      {
        "title": "Workflow Pattern",
        "body": "Every analysis follows three phases:"
      },
      {
        "title": "1. Analyze",
        "body": "Run API functions. Each call hits the Google APIs and returns structured data."
      },
      {
        "title": "2. Auto-Save",
        "body": "All results automatically save as timestamped JSON files to results/{category}/. File naming pattern: YYYYMMDD_HHMMSS__operation__extra_info.json"
      },
      {
        "title": "3. Summarize",
        "body": "After analysis, read the saved JSON files and create a markdown summary in results/summaries/ with data tables, trends, and recommendations."
      },
      {
        "title": "GA4 Analytics",
        "body": "FunctionPurposeWhat it gatherssiteOverview(dateRange?)Comprehensive site snapshotPage views, traffic sources, demographics, eventstrafficAnalysis(dateRange?)Traffic deep-diveSources, sessions by source/medium, new vs returningcontentPerformance(dateRange?)Top pages analysisPage views, landing pages, exit pagesuserBehavior(dateRange?)Engagement patternsDemographics, events, daily engagement metricscompareDateRanges(range1, range2)Period comparisonSide-by-side metrics for two date rangesliveSnapshot()Real-time dataActive users, current pages, current events"
      },
      {
        "title": "Search Console",
        "body": "FunctionPurposeWhat it gatherssearchConsoleOverview(dateRange?)SEO snapshotTop queries, pages, device, country breakdownkeywordAnalysis(dateRange?)Keyword deep-diveQueries with device breakdownseoPagePerformance(dateRange?)Page SEO metricsTop pages by clicks, country breakdown"
      },
      {
        "title": "Indexing",
        "body": "FunctionPurposereindexUrls(urls)Request re-indexing for multiple URLscheckIndexStatus(urls)Check if URLs are indexed"
      },
      {
        "title": "Utility",
        "body": "FunctionPurposegetAvailableFields()List all available GA4 dimensions and metrics"
      },
      {
        "title": "Individual API Functions",
        "body": "For granular control, import specific functions from the API modules. See references/api-reference.md for the complete list of 30+ API functions with parameters, types, and examples."
      },
      {
        "title": "Date Ranges",
        "body": "All functions accept flexible date range formats:\n\nFormatExampleDescriptionShorthand\"7d\", \"30d\", \"90d\"Days ago to todayExplicit{startDate: \"2024-01-01\", endDate: \"2024-01-31\"}Specific datesGA4 relative{startDate: \"30daysAgo\", endDate: \"today\"}GA4 relative format\n\nDefault is \"30d\" (configurable via GA4_DEFAULT_DATE_RANGE in .env)."
      },
      {
        "title": "Results Storage",
        "body": "Results auto-save to results/ with this structure:\n\nresults/\n├── reports/          # GA4 standard reports\n├── realtime/         # Real-time snapshots\n├── searchconsole/    # Search Console data\n├── indexing/         # Indexing API results\n└── summaries/        # Human-readable markdown summaries"
      },
      {
        "title": "Managing Results",
        "body": "import { listResults, loadResult, getLatestResult } from './scripts/src/index.js';\n\n// List recent results\nconst files = listResults('reports', 10);\n\n// Load a specific result\nconst data = loadResult(files[0]);\n\n// Get most recent result for an operation\nconst latest = getLatestResult('reports', 'site_overview');"
      },
      {
        "title": "Dimensions",
        "body": "pagePath, pageTitle, sessionSource, sessionMedium, country, deviceCategory, browser, date, eventName, landingPage, newVsReturning"
      },
      {
        "title": "Metrics",
        "body": "screenPageViews, activeUsers, sessions, newUsers, bounceRate, averageSessionDuration, engagementRate, conversions, totalRevenue, eventCount"
      },
      {
        "title": "Tips",
        "body": "Specify date ranges — \"last 7 days\" or \"last 90 days\" gives different insights than the default 30 days\nRequest summaries — After pulling data, ask for a markdown summary with tables and insights\nCompare periods — Use compareDateRanges() to spot trends (this month vs last month)\nCheck real-time data — liveSnapshot() shows who's on the site right now\nCombine GA4 + Search Console — Traffic data plus search query data gives the full picture"
      }
    ],
    "body": "GA4 Analytics Toolkit\nSetup\n\nInstall dependencies:\n\ncd scripts && npm install\n\n\nConfigure credentials by creating a .env file in the project root:\n\nGA4_PROPERTY_ID=123456789\nGA4_CLIENT_EMAIL=service-account@project.iam.gserviceaccount.com\nGA4_PRIVATE_KEY=\"-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----\\n\"\nSEARCH_CONSOLE_SITE_URL=https://your-domain.com\nGA4_DEFAULT_DATE_RANGE=30d\n\n\nPrerequisites: A Google Cloud project with the Analytics Data API, Search Console API, and Indexing API enabled. A service account with access to your GA4 property and Search Console.\n\nQuick Start\nUser says\tFunction to call\n\"Show me site traffic for the last 30 days\"\tsiteOverview(\"30d\")\n\"What are my top search queries?\"\tsearchConsoleOverview(\"30d\")\n\"Who's on the site right now?\"\tliveSnapshot()\n\"Reindex these URLs\"\treindexUrls([\"https://example.com/page1\", ...])\n\"Compare this month vs last month\"\tcompareDateRanges({startDate: \"30daysAgo\", endDate: \"today\"}, {startDate: \"60daysAgo\", endDate: \"31daysAgo\"})\n\"What pages get the most traffic?\"\tcontentPerformance(\"30d\")\n\nExecute functions by importing from scripts/src/index.ts:\n\nimport { siteOverview, searchConsoleOverview } from './scripts/src/index.js';\n\nconst overview = await siteOverview('30d');\n\n\nOr run directly with tsx:\n\nnpx tsx scripts/src/index.ts\n\nWorkflow Pattern\n\nEvery analysis follows three phases:\n\n1. Analyze\n\nRun API functions. Each call hits the Google APIs and returns structured data.\n\n2. Auto-Save\n\nAll results automatically save as timestamped JSON files to results/{category}/. File naming pattern: YYYYMMDD_HHMMSS__operation__extra_info.json\n\n3. Summarize\n\nAfter analysis, read the saved JSON files and create a markdown summary in results/summaries/ with data tables, trends, and recommendations.\n\nHigh-Level Functions\nGA4 Analytics\nFunction\tPurpose\tWhat it gathers\nsiteOverview(dateRange?)\tComprehensive site snapshot\tPage views, traffic sources, demographics, events\ntrafficAnalysis(dateRange?)\tTraffic deep-dive\tSources, sessions by source/medium, new vs returning\ncontentPerformance(dateRange?)\tTop pages analysis\tPage views, landing pages, exit pages\nuserBehavior(dateRange?)\tEngagement patterns\tDemographics, events, daily engagement metrics\ncompareDateRanges(range1, range2)\tPeriod comparison\tSide-by-side metrics for two date ranges\nliveSnapshot()\tReal-time data\tActive users, current pages, current events\nSearch Console\nFunction\tPurpose\tWhat it gathers\nsearchConsoleOverview(dateRange?)\tSEO snapshot\tTop queries, pages, device, country breakdown\nkeywordAnalysis(dateRange?)\tKeyword deep-dive\tQueries with device breakdown\nseoPagePerformance(dateRange?)\tPage SEO metrics\tTop pages by clicks, country breakdown\nIndexing\nFunction\tPurpose\nreindexUrls(urls)\tRequest re-indexing for multiple URLs\ncheckIndexStatus(urls)\tCheck if URLs are indexed\nUtility\nFunction\tPurpose\ngetAvailableFields()\tList all available GA4 dimensions and metrics\nIndividual API Functions\n\nFor granular control, import specific functions from the API modules. See references/api-reference.md for the complete list of 30+ API functions with parameters, types, and examples.\n\nDate Ranges\n\nAll functions accept flexible date range formats:\n\nFormat\tExample\tDescription\nShorthand\t\"7d\", \"30d\", \"90d\"\tDays ago to today\nExplicit\t{startDate: \"2024-01-01\", endDate: \"2024-01-31\"}\tSpecific dates\nGA4 relative\t{startDate: \"30daysAgo\", endDate: \"today\"}\tGA4 relative format\n\nDefault is \"30d\" (configurable via GA4_DEFAULT_DATE_RANGE in .env).\n\nResults Storage\n\nResults auto-save to results/ with this structure:\n\nresults/\n├── reports/          # GA4 standard reports\n├── realtime/         # Real-time snapshots\n├── searchconsole/    # Search Console data\n├── indexing/         # Indexing API results\n└── summaries/        # Human-readable markdown summaries\n\nManaging Results\nimport { listResults, loadResult, getLatestResult } from './scripts/src/index.js';\n\n// List recent results\nconst files = listResults('reports', 10);\n\n// Load a specific result\nconst data = loadResult(files[0]);\n\n// Get most recent result for an operation\nconst latest = getLatestResult('reports', 'site_overview');\n\nCommon Dimensions and Metrics\nDimensions\n\npagePath, pageTitle, sessionSource, sessionMedium, country, deviceCategory, browser, date, eventName, landingPage, newVsReturning\n\nMetrics\n\nscreenPageViews, activeUsers, sessions, newUsers, bounceRate, averageSessionDuration, engagementRate, conversions, totalRevenue, eventCount\n\nTips\nSpecify date ranges — \"last 7 days\" or \"last 90 days\" gives different insights than the default 30 days\nRequest summaries — After pulling data, ask for a markdown summary with tables and insights\nCompare periods — Use compareDateRanges() to spot trends (this month vs last month)\nCheck real-time data — liveSnapshot() shows who's on the site right now\nCombine GA4 + Search Console — Traffic data plus search query data gives the full picture"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/adamkristopher/ga4-analytics",
    "publisherUrl": "https://clawhub.ai/adamkristopher/ga4-analytics",
    "owner": "adamkristopher",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/ga4-analytics",
    "downloadUrl": "https://openagent3.xyz/downloads/ga4-analytics",
    "agentUrl": "https://openagent3.xyz/skills/ga4-analytics/agent",
    "manifestUrl": "https://openagent3.xyz/skills/ga4-analytics/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/ga4-analytics/agent.md"
  }
}