country-device

Installation
SKILL.md

Country and Device Performance

Build a markets table and a device table for one property, find the gaps (markets where the position is fine but the CTR is low, declines that only mobile shows), and recommend fixes. The user's request may contain a property (a GSC site URL or a recognizable name), a date range, a country (a name or an ISO 3166-1 alpha-3 code), a device, or a URL path to narrow the winners and losers step.

Workflow

  1. Resolve the property. If the user's request or the conversation names a property, use it. Site URLs use GSC formats: sc-domain:example.com or https://www.example.com/. Otherwise call list_sites and pick the obvious match. If several plausible properties exist, ask the user which one before continuing.

  2. Anchor and windows. Call get_site_summary with days: 28, or with startDate/endDate when the user gave dates (a date you pass always wins and days only sizes an edge you leave out). Use the last 28 days compared with the previous period unless the user specifies dates.

    • Read current and previous (clicks, impressions, ctr, avgPosition) and deltas (clicks, impressions, ctrPoints, positionDelta).
    • Keep range.startDate/range.endDate and comparison.startDate/comparison.endDate from the response and pass those exact dates to every later call, so all sections line up.
    • GSC data lags about 2 to 3 days: never treat the most recent 2 days as complete, and if a dip appears at the very edge of the range, say it is likely reporting lag, not a real drop.
  3. Markets. query_countries takes a single date range and no comparison argument, so call it twice: once with the current window and once with the comparison window, with limit: 25 (raise it, or page with offset set to pagination.nextOffset, when the user wants more markets).

    • Rows are countries[] with country, clicks, impressions, ctr (0-100) and position, sorted by clicks. Country codes are lowercase ISO 3166-1 alpha-3 as the tools return them (for example usa, gbr, deu); print the country name next to the code and keep the code, in that case, for filters, since an equals match is case-sensitive on both data paths.
    • Join the two calls by country and derive the click, impression, CTR-point and position deltas; say they are derived. Quote property totals from coverage.siteTotals, not from summed rows, and give each top market's share of total clicks as a derived figure.
Installs
2
First Seen
2 days ago