← Windsor.aiCONTENT HISTORY

Update to Windsor.ai

Snapshot Nov 10, 2026 · 06:07 UTC · version 4.1.0

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save Windsor.ai and check future changes in Following.

Up to 3 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Analyze Google Analytics 4 (GA4) data through Windsor.ai. Use when the user asks about their GA4 website or app analytics: sessions, users, new users, engagement, conversions/key events, bounce/engagement rate, pageviews, or breakdowns by channel, source/medium, campaign, landing page, device, country, or date. For spend and ROAS as reported by each ad platform, use the ad-platform connectors (GA4 only has cost for linked Google Ads accounts and imported cost data). Do not use for other analytics products, or changing GA4 settings. Also use when the user asks how to connect Google Analytics 4 (GA4) to ChatGPT.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 380
    }
  ],
  "name": "google-analytics-4",
  "skill_md_contents": "---\nname: google-analytics-4\ndescription: \"Analyze Google Analytics 4 (GA4) data through Windsor.ai. Use when the user asks about their GA4 website or app analytics: sessions, users, new users, engagement, conversions/key events, bounce/engagement rate, pageviews, or breakdowns by channel, source/medium, campaign, landing page, device, country, or date. For spend and ROAS as reported by each ad platform, use the ad-platform connectors (GA4 only has cost for linked Google Ads accounts and imported cost data). Do not use for other analytics products, or changing GA4 settings. Also use when the user asks how to connect Google Analytics 4 (GA4) to ChatGPT.\"\n---\n\nExplicit instructions from the user take priority over this skill.\n\n# Google Analytics 4 (GA4) via Windsor.ai\n\nWindsor.ai pulls live **read-only** GA4 report data through the Google Analytics\nData API. The connector id is `googleanalytics4`. Pass `googleanalytics4` as the connector on every tool call; the Windsor.ai server\nserves all connectors, so it is never implied.\n\nThis connector is **read-only analytics**: it reports GA4 metrics and dimensions.\nAd cost is only available for linked Google Ads accounts and imported cost\ndata (`advertiser_ad_cost`, `advertiser_ad_cost_per_key_event`,\n`return_on_ad_spend`); spend from other platforms lives in their ad\nconnectors. It does **not** change any GA4 setting; there are no write\nactions. If asked to create a conversion event, change settings, or\nspend data, say that's out of scope here.\n\nGolden rules:\n\n- **Never guess field, property, or option names**; get them from `get_fields`,\n  `get_connectors`, and `get_options`. Call those first; GA4 has many\n  dimensions and metrics with exact API ids.\n- Read-only connector; there are no live write actions to run.\n- Report what the user asked for, concisely.\n\n## 1. Check what is connected\n\nCall `get_connectors` to see which GA4 properties are connected (each has an id\nand usually a name). If none is connected, help the user connect:\n`get_connector_authorization_url` (or `get_connector_connect_info` for the auth\ntype and steps) and give them the setup link; don't describe manual dashboard\nnavigation. If several properties are connected and the request is ambiguous,\nask which one.\n\n## 2. Reading GA4 data\n\n1. Call `get_fields` for `googleanalytics4` to get valid field ids. GA4 splits\n   into **dimensions** (e.g. date, `session_default_channel_group`, source/medium,\n   campaign, landing page, devicecategory, country) and **metrics** (e.g.\n   sessions, active users, `conversions` (key events), engagement\n   rate, bounce rate, pageviews, average session duration, event count,\n   revenue). Use the exact ids returned, not these examples.\n2. If the analysis needs specific controls, call `get_options` for the\n   connector's options and valid values.\n3. Call `get_data` with the `fields` you need (a mix of dimensions and metrics),\n   the target property/account id(s) in `accounts`, and a date range; `date_from`/`date_to`\n   (`\"2026-02-01\"`) or a `date_preset` like `last_7d`, `last_30d`, `this_month`,\n   `last_year` (append `T` to include today). Add `filters` for conditions.\n\nCommon requests → recipe:\n\n- **Traffic overview / trend:** `date` + sessions/users over a preset range.\n- **By channel:** `session_default_channel_group` + sessions/conversions; rank in\n  your answer.\n- **Top source or campaign:** the source/medium or campaign dimension + the\n  metric, then rank; return only what the user asked for (e.g. just the channel\n  name) if they constrained the output.\n- **Conversions:** GA4 \"conversions\" are key events. Cost-per-conversion or ROAS\n  use `advertiser_ad_cost` for linked Google Ads and imported cost; for other\n  platforms, join spend from their ad connector and say the numbers come from\n  two sources.\n\nWatch out: GA4 sampling/thresholding and property timezone can shift numbers;\nmetric availability depends on the property. If a field the user wants isn't in\n`get_fields`, say so rather than substituting a different metric.\n\n## 3. Reference real data, don't fabricate\n\nOn an error (unknown field/connector/property), call the relevant discovery tool\nand retry with correct ids, or report the specific error. Never invent session\ncounts, conversion numbers, channel names, or property ids.\n"
}

SHA-256 of public snapshot: 702fa9c42e73ce0f6edd913f840de14b95e5432f24c765609d557b312c6d461c