Website analytics

Count a website's visits

analytics_add_site · Changes data · Markdown

Starts counting visits to a website, without cookies, and returns the snippet for its pages.

$3.00 a call

From your agent’s balance. A call that fails costs nothing.

An example

Set up visitor stats for our website and tell me what to paste where.

Your agent callsanalytics_add_site$3.00 a call

The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.

With these arguments
{
  "domain": "halversoncycle.example",
  "name": "Halverson Cycle & Repair",
  "time_zone": "America/Los_Angeles"
}
What comes back
{
  "site": {
    "site_id": "5fb4a89a-035a-4e59-a550-d9760f2c092d",
    "domain": "halversoncycle.example",
    "name": "Halverson Cycle & Repair",
    "time_zone": "America/Los_Angeles",
    "snippet": "<script defer src=\"https://cncto.co/a.js\" data-site=\"5fb4a89a-035a-4e59-a550-d9760f2c092d\"></script>",
    "events_this_month": 0,
    "clicks_this_month": 0,
    "allowance_per_month": 100000,
    "extra_blocks": 0,
    "monthly_usd": "$3.00",
    "goals": [],
    "events": [],
    "spike_alert_visitors": null,
    "weekly_summary": false,
    "track_errors": false,
    "keep_sources": true,
    "created_at": "2026-10-14T08:00:00+00:00"
  },
  "rent": {
    "rental_id": 4101,
    "kind": "site",
    "label": "Analytics: halversoncycle.example",
    "status": "active",
    "monthly_usd": "$3.00",
    "renews_at": "2026-11-14T08:00:00+00:00",
    "grace_until": null
  },
  "install": "Put the snippet in the <head> of every page. Visits show up in analytics_stats within seconds. analytics_install has the steps for Shopify (with a pixel for carts and purchases), WordPress, Webflow and Google Tag Manager."
}

Use it when

The business wants visitor numbers for a website it runs.

What it does

Start counting visits to a website, like Plausible or Umami: add the returned snippet to every page, before </head>. It uses no cookies and keeps no IP addresses. When a visitor becomes a contact through Conecto's chat, a booking, a form or a newsletter signup, the visit that brought them is kept with their contact. Custom events: conecto("Signup", {"plan": "pro"}) in the page, with revenue as a third argument ({revenue: 49.9, currency: "USD"}), or define them without touching the site (analytics_define_events). It also counts on its own clicks on links to other sites, phone and email links, file downloads, form submissions, searches on the site, pages that answer an error, elements with data-conecto-event="Name", and Conecto's own chats, bookings, forms and signups that start on the site; and keeps clicks and scrolling for heatmaps and the pages' Core Web Vitals. analytics_install has the steps for Shopify, WordPress and others. $3 a month with 100,000 events, renewed from the balance; the first month is this call.

What comes back

The site with its site_id and the snippet for every page's <head>, this month's events, its allowance and monthly price, the rental that renews it each month, and how to install it. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
domainRequiredstringThe site, e.g. halversoncycle.example (www. and other subdomains count too). 4 to 253 characters.
namestringUp to 120 characters.
time_zonestringThe days of the stats; the business calendar's time zone if left out. Up to 64 characters.

The call

Over MCP, call analytics_add_site on https://api.conecto.chat/mcp/analytics. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/analytics_add_site \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"halversoncycle.example","name":"Halverson Cycle & Repair","time_zone":"America/Los_Angeles"}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
invalid_input400The domain is not a site address, or time_zone is not a zone name.Send the domain alone, like halversoncycle.example, and a zone like America/Los_Angeles.
conflict409The business already counts this domain.Use the site you have: analytics_list_sites shows its snippet.
limit_reached409The business counts as many sites as it may.Stop counting a site it no longer needs with analytics_remove_site, then add the new one.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md