---
title: "Personal Channel Analytics"
description: "Analyze your own YouTube channel with real data from the YouTube Analytics API — actual views, revenue, audience demographics, traffic sources, and retention curves from the channels you've connected via OAuth."
source: "https://dashboard.nexlev.io/docs/mcp/personal-channel-analytics"
---

# Personal Channel Analytics

Analyze your **own** YouTube channel with real data from the YouTube Analytics API — actual views, revenue, audience demographics, traffic sources, and retention curves from the channels you've connected via OAuth.

## Prerequisites

- **Connected AI assistant** — Claude or ChatGPT with NexLev MCP connected
- **YouTube channel connected via OAuth** — Link your channel at [dashboard.nexlev.io/analytics](https://dashboard.nexlev.io/analytics)
- **Lite, Pro, or Premium plan** — Free plans do not have access. [Upgrade your plan](?required_nexlev_lite_pro_access=true) to get started.

> **Warning**
>
> **OAuth login required.** These tools access your private YouTube Analytics
> data. API-key connections are blocked — you must connect via OAuth. Link your
> YouTube channel at
> [dashboard.nexlev.io/analytics](https://dashboard.nexlev.io/analytics).

## How to Start

Make sure your YouTube channel is connected at [dashboard.nexlev.io/analytics](https://dashboard.nexlev.io/analytics), then mention your channel name in the prompt — Claude or ChatGPT will handle the rest:

```
Analyse my YouTube channel "your_channel_name"
```

```
Show me the last 28 days of stats for my channel "your_channel_name"
```

```
Give me a full health check of my YouTube channel "your_channel_name"
```

> **Tip**
>
> **Mention your channel name in the prompt.** Your AI assistant will match it
> to your connected channels and run the right tools automatically. If you have
> multiple channels connected, it will confirm which one you mean before running
> the analysis.

## Tools

### Channel Tools

#### My Channels

##### `list_my_youtube_channels`

List all YouTube channels connected to your NexLev account. Call this first — it returns the `channel_id` values needed by every other tool on this page.

**Example prompts:**

```
List my connected YouTube channels
```

```
Which YouTube channels do I have linked to NexLev?
```

```
Show my channels, then run a full analytics report on the first one
```

**Parameters:** None. Returns all channels linked to your authenticated account.

**What it returns:**

| Field             | Description                             |
| ----------------- | --------------------------------------- |
| `channelId`       | The `UC…` ID to pass to all other tools |
| `title`           | Channel display name                    |
| `thumbnail`       | Channel avatar URL                      |
| `subscriberCount` | Current subscriber count                |
| `totalViewCount`  | Lifetime total views                    |
| `videoCount`      | Number of public videos                 |

#### Overview

##### `get_my_channel_overview`

Fetch a snapshot of your channel profile — subscriber count, total views, video count, channel keywords, and creation date. Uses the YouTube Data API (not Analytics), so it reflects your current public channel state.

**Example prompts:**

```
Show my channel overview for [channel_id]
```

```
What are the current stats for my channel?
```

```
List my connected channels, then show an overview of each one
```

**Parameters:**

| Parameter    | Required | Description                                             |
| ------------ | -------- | ------------------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID (from `list_my_youtube_channels`) |

**What it returns:**

| Field                  | Description                 |
| ---------------------- | --------------------------- |
| `title`, `description` | Channel name and about text |
| `subscriberCount`      | Current subscriber count    |
| `totalViewCount`       | Lifetime total views        |
| `videoCount`           | Number of public uploads    |
| `keywords`             | Channel topic keywords      |
| `publishedAt`          | Channel creation date       |
| `country`              | Channel country (if set)    |

#### Analytics

##### `get_my_channel_analytics`

Retrieve day-by-day performance metrics for your channel — views, watch time, subscribers gained/lost, likes, comments, and shares.

**Example prompts:**

```
Show my channel analytics for the last 28 days
```

```
What was my watch time and subscriber growth last month?
```

```
Get my channel analytics from 2025-01-01 to 2025-01-31
```

```
Compare my channel performance this week vs last week
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns** (daily rows):

| Field                     | Description                      |
| ------------------------- | -------------------------------- |
| `date`                    | Date (`YYYY-MM-DD`)              |
| `views`                   | Total views                      |
| `estimatedMinutesWatched` | Total watch time in minutes      |
| `averageViewDuration`     | Average view duration in seconds |
| `subscribersGained`       | New subscribers                  |
| `subscribersLost`         | Unsubscribes                     |
| `likes`                   | Likes received                   |
| `comments`                | Comments received                |
| `shares`                  | Shares                           |

> **Note**
>
> If the `engagedViews` metric is unavailable for your channel, the tool
> automatically falls back to base metrics — no action needed.

#### Revenue

##### `get_my_revenue_report`

Fetch daily revenue data for your channel — total revenue, ad revenue, CPM, and monetized playbacks. Requires a monetized channel; returns a friendly message instead of an error for non-monetized channels.

**Example prompts:**

```
Show my revenue report for the last 28 days
```

```
What was my channel CPM and ad revenue last month?
```

```
Get my revenue data from 2025-01-01 to 2025-03-31
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns** (daily rows):

| Field                | Description                         |
| -------------------- | ----------------------------------- |
| `date`               | Date (`YYYY-MM-DD`)                 |
| `estimatedRevenue`   | Total estimated revenue (USD)       |
| `estimatedAdRevenue` | Ad revenue portion (USD)            |
| `cpm`                | Cost per thousand impressions (USD) |
| `monetizedPlaybacks` | Playbacks that showed an ad         |

> **Note**
>
> If your channel is not monetized, this tool returns `{ monetized: false,
> message: "..." }` instead of throwing an error.

#### Top Videos

##### `get_my_top_videos`

Rank your videos by views over a date range and enrich results with titles, thumbnails, and lifetime stats.

**Example prompts:**

```
Show my top 10 videos from the last 28 days
```

```
What are my 5 best-performing videos this year?
```

```
Get my top 20 videos from 2025-01-01 to today and show their thumbnails
```

**Parameters:**

| Parameter     | Required | Description                                    |
| ------------- | -------- | ---------------------------------------------- |
| `channel_id`  | Yes      | Your `UC…` channel ID                          |
| `start_date`  | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`    | No       | End date `YYYY-MM-DD` (default: today)         |
| `max_results` | No       | Number of videos to return (1–50, default: 10) |

**What it returns** (per video):

| Field                     | Description                        |
| ------------------------- | ---------------------------------- |
| `videoId`                 | YouTube video ID                   |
| `title`                   | Video title                        |
| `thumbnail`               | Thumbnail URL                      |
| `views`                   | Views in the selected date range   |
| `estimatedMinutesWatched` | Watch time in the date range       |
| `averageViewDuration`     | Average view duration in the range |
| `lifetimeViews`           | Total lifetime views               |
| `lifetimeLikes`           | Total lifetime likes               |
| `publishedAt`             | Video publish date                 |

### Audience Tools

#### Demographics

##### `get_my_audience_demographics`

Break down your audience by age group and gender. Runs two Analytics queries in parallel (age and gender) and returns percentage distributions for each.

**Example prompts:**

```
Show my audience demographics for the last 28 days
```

```
What age groups watch my channel most?
```

```
Get my audience gender breakdown for Q1 2025
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns:**

| Field       | Description                                                              |
| ----------- | ------------------------------------------------------------------------ |
| `ageGroups` | Array of `{ ageGroup, viewerPercentage }` (e.g., `age13-17`, `age18-24`) |
| `genders`   | Array of `{ gender, viewerPercentage }` (`male`, `female`)               |

#### Traffic Sources

##### `get_my_traffic_sources`

See how viewers find your content — YouTube search, suggested videos, browse features, external sites, direct/unknown, and more.

**Example prompts:**

```
Show my traffic sources for the last 28 days
```

```
How much of my watch time comes from YouTube search vs suggested videos?
```

```
Get my traffic source breakdown for last month
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns** (per source):

| Field                      | Description                                                     |
| -------------------------- | --------------------------------------------------------------- |
| `insightTrafficSourceType` | Traffic source label (e.g., `YT_SEARCH`, `SUGGESTED`, `BROWSE`) |
| `views`                    | Views from this source                                          |
| `estimatedMinutesWatched`  | Watch time from this source                                     |

#### Devices

##### `get_my_device_report`

Understand which devices and operating systems your audience uses. Runs two Analytics queries in parallel (device type and OS) and returns separate breakdowns.

**Example prompts:**

```
Show my device breakdown for the last 28 days
```

```
What percentage of my viewers watch on mobile vs desktop?
```

```
Get my device and OS report for last month
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns:**

| Field              | Description                                                    |
| ------------------ | -------------------------------------------------------------- |
| `deviceTypes`      | Array of `{ deviceType, views, estimatedMinutesWatched }`      |
| `operatingSystems` | Array of `{ operatingSystem, views, estimatedMinutesWatched }` |

#### Geography

##### `get_my_geography_report`

Identify your top countries by views, watch time, and new subscribers.

**Example prompts:**

```
Show my geographic audience breakdown for the last 28 days
```

```
Which countries give me the most watch time?
```

```
Get my top 10 countries by subscribers gained last quarter
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns** (per country):

| Field                     | Description                                        |
| ------------------------- | -------------------------------------------------- |
| `country`                 | ISO 3166-1 alpha-2 country code (e.g., `US`, `GB`) |
| `views`                   | Views from this country                            |
| `estimatedMinutesWatched` | Watch time from this country                       |
| `subscribersGained`       | New subscribers from this country                  |

#### Playback

##### `get_my_playback_locations`

See where your videos are actually being watched — YouTube watch page, embedded players, mobile apps, and more.

**Example prompts:**

```
Show my playback location breakdown for the last 28 days
```

```
How many views come from embedded players vs the YouTube app?
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns** (per location):

| Field                         | Description                                            |
| ----------------------------- | ------------------------------------------------------ |
| `insightPlaybackLocationType` | Location label (e.g., `WATCH`, `EMBEDDED`, `YT_OTHER`) |
| `views`                       | Views from this location                               |
| `estimatedMinutesWatched`     | Watch time from this location                          |

#### Sharing

##### `get_my_content_sharing`

Track where your content gets shared — WhatsApp, Twitter/X, Facebook, email, copy link, and other services.

**Example prompts:**

```
Show my content sharing breakdown for the last month
```

```
Which social platforms are people sharing my videos to?
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns** (per service):

| Field            | Description                                                                 |
| ---------------- | --------------------------------------------------------------------------- |
| `sharingService` | Platform label (e.g., `WHATS_APP`, `TWITTER`, `FACEBOOK`, `COPY_AND_PASTE`) |
| `shares`         | Number of share actions                                                     |

#### Subscribers

##### `get_my_subscriber_status`

Compare engagement between your subscribers and non-subscribers. Runs two parallel Analytics queries (one for each group) and returns side-by-side metrics.

**Example prompts:**

```
Compare subscriber vs non-subscriber engagement on my channel
```

```
Do my subscribers watch more of my videos than non-subscribers?
```

```
Show subscriber vs non-subscriber metrics for the last 90 days
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns:**

| Field          | Description                                                               |
| -------------- | ------------------------------------------------------------------------- |
| `subscribed`   | `{ views, estimatedMinutesWatched, averageViewDuration }` for subscribers |
| `unsubscribed` | Same metrics for non-subscribers                                          |

### Video Tools

#### Video Analytics

##### `get_my_video_analytics`

Fetch day-by-day metrics for a single video — views, watch time, likes, comments, and revenue (if your channel is monetized).

**Example prompts:**

```
Show analytics for video [video_id] on channel [channel_id] for the last 28 days
```

```
Get daily views and watch time for my top video this month
```

```
Show revenue data for video [video_id] from 2025-01-01 to 2025-01-31
```

**Parameters:**

| Parameter    | Required | Description                                    |
| ------------ | -------- | ---------------------------------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID                          |
| `video_id`   | Yes      | YouTube video ID (e.g., `dQw4w9WgXcQ`)         |
| `start_date` | No       | Start date `YYYY-MM-DD` (default: 28 days ago) |
| `end_date`   | No       | End date `YYYY-MM-DD` (default: today)         |

**What it returns** (daily rows):

| Field                     | Description                            |
| ------------------------- | -------------------------------------- |
| `date`                    | Date (`YYYY-MM-DD`)                    |
| `views`                   | Views on this date                     |
| `estimatedMinutesWatched` | Watch time in minutes                  |
| `averageViewDuration`     | Average view duration in seconds       |
| `likes`                   | Likes received                         |
| `comments`                | Comments received                      |
| `shares`                  | Shares                                 |
| `estimatedRevenue`        | Revenue (monetized channels only, USD) |
| `title`                   | Video title                            |
| `thumbnail`               | Thumbnail URL                          |

> **Note**
>
> If your channel is not monetized, `estimatedRevenue` is omitted automatically.
> The tool retries without revenue metrics on a 403 error — no action needed.

#### Retention Curve

##### `get_my_audience_retention`

Get the full audience retention curve for a video — 100 data points showing the percentage of viewers still watching at each 1% interval of the video. Uses lifetime data (no date range).

**Example prompts:**

```
Show the audience retention curve for video [video_id] on channel [channel_id]
```

```
Where do most viewers drop off in my top video?
```

```
Get the retention curve for my latest video and identify the biggest drop-off points
```

**Parameters:**

| Parameter    | Required | Description           |
| ------------ | -------- | --------------------- |
| `channel_id` | Yes      | Your `UC…` channel ID |
| `video_id`   | Yes      | YouTube video ID      |

**What it returns:**

| Field           | Description                                                          |
| --------------- | -------------------------------------------------------------------- |
| `retentionData` | Array of 100 points: `{ elapsedVideoTimeRatio, audienceWatchRatio }` |
| `title`         | Video title                                                          |
| `duration`      | Video duration in seconds                                            |
| `thumbnail`     | Thumbnail URL                                                        |

> **Tip**
>
> `elapsedVideoTimeRatio` is a value from `0.00` to `1.00` (0% to 100% through
> the video). Multiply by the video duration to get the timestamp in seconds.
> Ask your AI assistant to identify sharp drop-off points and suggest edits.

> **Note**
>
> Retention uses **lifetime data** — date range parameters are not supported for
> this tool.

## Full Channel Health Check

Paste this into your AI assistant to run a complete analysis:

```
I want a full health check of my YouTube channel.

1. List my connected channels, then pick the first one.
2. Get the channel overview.
3. Get channel analytics for the last 28 days.
4. Get the revenue report (if monetized).
5. Get my top 10 videos.
6. Get audience demographics.
7. Get traffic sources.
8. Get device and OS breakdown.
9. Get geographic audience data.
10. Get playback locations.
11. Get content sharing breakdown.
12. Get subscriber vs non-subscriber engagement.

Then pick my #1 video and run:
- Detailed video analytics for the last 28 days
- Audience retention curve

Finally, give me a channel health report with overall performance, strongest content, audience insights, retention analysis, and 5 actionable recommendations.
```

## Troubleshooting

**`ACCESS DENIED` on every tool**

- Personal Channel Analytics requires an **Lite, Pro, or Premium** plan. [Upgrade your plan](?required_nexlev_lite_pro_access=true) to unlock access.
- API key connections are blocked — these tools are OAuth-only. Connect via the AI assistant's connector settings (see [Quickstart](/docs/mcp/quickstart)).

**`AUTH_REQUIRED` error**

- Your OAuth session has expired. Re-authenticate by reconnecting in your AI assistant's connector settings or re-authorising at [dashboard.nexlev.io/analytics](https://dashboard.nexlev.io/analytics).

**`Channel ... is not connected to your account`**

- The `channel_id` you passed is not linked to your NexLev account. Call `list_my_youtube_channels` to see your connected channels and use one of those IDs.

**No channels returned by `list_my_youtube_channels`**

- You haven't linked a YouTube channel yet. Go to [dashboard.nexlev.io/analytics](https://dashboard.nexlev.io/analytics) and connect your channel via OAuth.

**Revenue report returns `"not monetized"` message**

- Your channel is not in the YouTube Partner Program. This is expected behaviour — the tool returns a friendly message rather than an error.

**Video analytics returns data without revenue**

- If your channel is not monetized, revenue metrics are automatically excluded. This is expected.

**Empty data arrays for a valid channel**

- The channel may have no activity in the requested date range. Try widening the date range or use the default (last 28 days).

## Rate Limits

> **Note**
>
> Personal Channel Analytics tools is available on **Lite, Pro, and Premium**
> plans only — Free plan users do not have access.

### Channel Tools

| Tool | Free | Lite | Pro |
| --- | --- | --- | --- |
| List my YouTube channels (`list_my_youtube_channels`) | 0 | 100 | 200 |
| Channel overview (`get_my_channel_overview`) | 0 | 20 | 50 |
| Channel analytics (`get_my_channel_analytics`) | 0 | 20 | 50 |
| Revenue report (`get_my_revenue_report`) | 0 | 15 | 40 |
| Top videos (`get_my_top_videos`) | 0 | 15 | 40 |

### Audience Tools

| Tool | Free | Lite | Pro |
| --- | --- | --- | --- |
| Audience demographics (`get_my_audience_demographics`) | 0 | 15 | 40 |
| Traffic sources (`get_my_traffic_sources`) | 0 | 15 | 40 |
| Device & OS report (`get_my_device_report`) | 0 | 15 | 40 |
| Geography report (`get_my_geography_report`) | 0 | 15 | 40 |
| Playback locations (`get_my_playback_locations`) | 0 | 15 | 40 |
| Content sharing (`get_my_content_sharing`) | 0 | 15 | 40 |
| Subscriber status (`get_my_subscriber_status`) | 0 | 15 | 40 |

### Video Tools

| Tool | Free | Lite | Pro |
| --- | --- | --- | --- |
| Video analytics (`get_my_video_analytics`) | 0 | 20 | 50 |
| Audience retention (`get_my_audience_retention`) | 0 | 15 | 40 |

## What's Next?

- **[Channel Analytics](/docs/mcp/channel-analytics)** — Analyze any public channel's estimated metrics
- **[Daily Analytics](/docs/mcp/daily-analytics)** — Day-by-day growth tracking for public channels
- **[Geography & Revenue](/docs/mcp/geography-revenue)** — Revenue and geography for public channels
- **[Top Videos](/docs/mcp/channel-analytics)** — Discover top-performing content across any niche
- **[Swipefile](/docs/mcp/swipefile)** — Save your best-performing video insights for future reference
