---
name: instagram-weekly-analytics-report
description: "Every Tuesday: last week's Instagram views, reach, engagement and follower change, with the three posts or reels that did the most. Use when the user asks for this, or when it runs on a schedule."
---

# Instagram weekly analytics report

Every Tuesday: last week's Instagram views, reach, engagement and follower change, with the three posts or reels that did the most.

Instagram's own insights screen is built for scrolling on a phone, one post at a time, with a date range that resets. Creators and social managers who report weekly end up screenshotting it into a doc or copying numbers into a sheet.

This skill reads the same numbers through the Instagram API: account views, reach and interactions for last week, the follower count against the week before, and every post and reel published that week ranked by views. It runs on Tuesday because Instagram can take up to two days to finish a day's figures.

## Two ways to get the data

Use the API or MCP route when you have an MCP server, a CLI or an API token for the app. Otherwise, if you can drive a browser the user is signed in to (Claude in Chrome, a Playwright or Chrome DevTools MCP server), use the browser route. Say which one you used.

## Route A: API or MCP server

### What you need

- An Instagram professional account (Business or Creator); personal accounts have no insights API.
- A Meta app with Instagram Login (`instagram_business_basic`, `instagram_business_manage_insights`) or Facebook Login (`instagram_basic`, `instagram_manage_insights`, `pages_read_engagement`); its long-lived token in `INSTAGRAM_ACCESS_TOKEN` and the account ID in `INSTAGRAM_USER_ID`.

If something is missing, say what and stop; do not invent numbers.

### Steps

1. **Read account totals for the week** (Instagram): `GET /<ig-user-id>/insights?metric=views,reach,accounts_engaged,total_interactions,profile_links_taps&period=day&metric_type=total_value&since=<Monday>&until=<Sunday>` (Unix timestamps). Run it again for the week before. `impressions` is deprecated; `views` replaced it in 2025.
2. **Get the follower count** (Instagram): `GET /<ig-user-id>?fields=followers_count,media_count`, and compare with the count the skill saved last week. On the first run, use the `follows_and_unfollows` metric for the week instead.
3. **Score last week's posts and reels** (Instagram): List `GET /<ig-user-id>/media?fields=id,caption,media_product_type,timestamp,permalink` until `timestamp` is older than last Monday. For each, `GET /<media-id>/insights?metric=views,reach,saved,shares,total_interactions` (add `profile_visits` for feed posts).
4. **Rank and compare**: Each account metric with its change on the week before, the top 3 posts by views with reach, saves and shares, and the share of views that came from reels. Name what the top post had in common with last week's best, if anything.

## Route B: the browser

### What you need

- Signed in to Facebook with a user that has access to the Business portfolio and the Instagram professional account in Meta Business Suite (an Instagram account connected to a Facebook Page).

If something is missing, say what and stop; do not invent numbers.

### Steps

Start at https://business.facebook.com/latest/insights/overview. The user is signed in already; never type passwords or codes, and ask if a sign-in page appears.

1. **Open Insights in Meta Business Suite**: Instagram's own insights live in the phone app, so the desktop route is Meta Business Suite. Open **Insights**, pick the Business portfolio and the Instagram account at the top left, and on **Overview** set the date range to last Monday through Sunday with the comparison to the previous period on. Read `Views`, `Reach` and `Content interactions` with their changes.
2. **Read followers**: Open the **Audience** tab (Instagram) for the follower count and the change over the same 7 days, or read the `Follows` card on **Results**.
3. **Rank the week's posts**: Open the **Content** tab, filter to **Instagram** and **Published: last 7 days**, and sort by `Views`. Read the top 3 with reach, saves and shares, and note which are reels. If the list is long, use **Export** and read the file.
4. **Compare and write**: Each account metric with its change on the week before, the follower change, the top 3 posts with links, and the share of views from reels, plus one line on what the best post did differently.

Note: Business Suite shows the same insights as the API, with the same delay of up to 48 hours, so run it on Tuesday. Accounts without a connected Facebook Page see insights only in the Instagram app; the Instagram website shows a Professional dashboard with totals but no post table.

## The report

- **Views, reach, accounts engaged and interactions** for last week, each against the week before.
- **Followers**: the count and the change.
- **Top 3 posts or reels** by views, with reach, saves, shares and a link.
- **Reels share** of the week's views.
- One line on what the best post did differently.

## Post it to Briefkin

When `BRIEFKIN_TOKEN` is set, or `~/.config/briefkin/env` exists (the installer from https://briefkin.dev/docs writes it), also send the result to the user's Briefkin board as one card. Keep the `item_key` the same on every run so the card updates in place, use a new `event_id` per run, and put today's real numbers in place of the example ones. If the request fails, say so once and carry on.

```bash
[ -n "${BRIEFKIN_TOKEN:-}" ] || . ~/.config/briefkin/env
curl -sS -X POST "${BRIEFKIN_URL:-https://briefkin.dev}/v1/events" \
  -H "authorization: Bearer $BRIEFKIN_TOKEN" \
  -H "content-type: application/json" \
  -d @- <<'JSON'
{
  "v": 1,
  "event_id": "instagram-weekly-analytics-report/<date of this run, e.g. 2026-10-16>",
  "item_key": "instagram-weekly-analytics-report",
  "project": "Acme",
  "source": "Instagram weekly analytics report skill",
  "kind": "update",
  "title": "Views up 18%, three reels carried the week",
  "summary": "**182,400 views** (+18%) and **64,300** accounts reached. Followers grew by **212** to 12,840. Reels made 71% of the week's views.",
  "widget": [
    {
      "type": "Grid",
      "props": {
        "columns": 4
      },
      "children": [
        {
          "type": "Stat",
          "props": {
            "label": "Views",
            "value": "182.4k",
            "delta": 18
          }
        },
        {
          "type": "Stat",
          "props": {
            "label": "Reach",
            "value": "64.3k",
            "delta": 9
          }
        },
        {
          "type": "Stat",
          "props": {
            "label": "Interactions",
            "value": 5930,
            "delta": 12
          }
        },
        {
          "type": "Stat",
          "props": {
            "label": "Followers",
            "value": 12840,
            "delta": 1.7
          }
        }
      ]
    },
    {
      "type": "Table",
      "props": {
        "columns": [
          "Post",
          "Type",
          "Views",
          "Reach",
          "Shares"
        ],
        "align": [
          "left",
          "left",
          "right",
          "right",
          "right"
        ],
        "rows": [
          [
            "3 mistakes on your first invoice",
            "Reel",
            48200,
            31600,
            412
          ],
          [
            "Behind the scenes: packing day",
            "Reel",
            39700,
            25100,
            188
          ],
          [
            "Client asked for net 60, here is what I said",
            "Reel",
            22800,
            15900,
            301
          ]
        ]
      }
    }
  ]
}
JSON
```

Widgets come from the Briefkin catalog (https://briefkin.dev/v1/catalog). Without a token, just give the user the report.

## Run it on a schedule

Suggested: Tuesdays at 9:00 (`0 9 * * 2`). From cron, with the agent signed in on that machine:

```bash
0 9 * * 2 claude -p "Run the instagram-weekly-analytics-report skill"
# Codex: codex exec, Gemini CLI: gemini -p, Copilot CLI: copilot -p, OpenCode: opencode run
```

Or use the agent's own scheduler (Claude Code routines, Codex automations, Claude or ChatGPT scheduled tasks): https://briefkin.dev/skills/instagram-weekly-analytics-report#schedule

Source: https://briefkin.dev/skills/instagram-weekly-analytics-report
