← SearchFitCONTENT HISTORY

Update to SearchFit

Snapshot Sep 30, 2026 · 23:00 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "google-analytics-report",
  "description": "Report Google Analytics 4 data for a brand. Use for sessions, users, engagement, traffic sources and channels, GA4 events, conversions, or audience breakdowns. Do not use for Google search impressions, clicks or ranking position, which belong to google-search-console-report.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 1250
    }
  ],
  "skill_md_contents": "---\nname: google-analytics-report\ndescription: Report Google Analytics 4 data for a brand. Use for sessions, users, engagement, traffic sources and channels, GA4 events, conversions, or audience breakdowns. Do not use for Google search impressions, clicks or ranking position, which belong to google-search-console-report.\n---\n\n# Google Analytics 4 report\n\nReport what people did once they arrived: where they came from, how many, and what they did.\n\nEvery tool here is scoped to one brand and takes `brand_id`.\n\n## Step 1: resolve the brand\n\nCall `list_brands`. If more than one, ask which. Keep `brand_id` for every later call.\n\n## Step 2: confirm the property\n\n1. `list_connectors` to check Google is connected. If not, say so and stop.\n2. `list_ga4_properties` to see the available properties.\n3. If several exist, ask which one. Reporting the wrong property is worse than reporting nothing, because the numbers look plausible and are simply about a different site.\n4. `set_ga4_property` selects it. This changes what every later report measures, so confirm before calling it.\n\n## Step 3: refresh only if asked\n\n`sync_ga4` pulls fresh data and takes time. Otherwise report what is stored and say when it was last synced.\n\n## Step 4: pull the numbers\n\n- `get_ga4_metrics` for the headline: users, sessions, engagement.\n- `get_ga4_traffic_breakdown` for channels and sources.\n- `get_ga4_events` for tracked events and conversions.\n- `get_audience_breakdown` for who they were.\n\n## Step 5: report\n\nState the property and the date range for every number.\n\nRules that keep the report honest:\n\n- **Segment before concluding.** A rise in sessions driven by one referral is a different story from a rise in organic search. Give the channel breakdown alongside the total, never the total alone.\n- **Sessions are not people.** Report users and sessions distinctly and do not use them interchangeably.\n- **Check the window is complete.** GA4 data for the current day is partial. Exclude today, or say it is partial.\n- **Compare equal windows,** and prefer like for like periods. Month against month is cleaner than an arbitrary range against another.\n- **An event is only a conversion if it is configured as one.** Do not promote an ordinary event into a conversion in the write up.\n- Never estimate a missing figure. If it returned nothing, say so.\n\n## Step 6: connect it to the work\n\nThe useful question is not how many sessions there were, but whether the work moved them:\n\n- Organic sessions rising while search impressions are flat suggests better CTR rather than better reach. Confirm with the google-search-console-report skill before claiming either.\n- A traffic rise concentrated on a small number of pages is worth naming. Say which pages.\n- If a channel collapsed, check whether tracking changed before treating it as a real loss. A tag change and a traffic drop look identical in the data.\n\n## Boundaries\n\n- GA4 measures people on the site. It cannot tell you what someone searched to get there, which is Search Console's job.\n- For visibility inside AI assistant answers, use the ai-visibility-report skill.\n- For a combined client or monthly report, use the performance-report skill.\n"
}

SHA-256: 85e2498fd21c0a375afa1907b1f15d223bc36d93814f072bbb440e12936c8642