Skip to content
Book a demoStart free
Connectors

YouTube Analytics connector

Set up the YouTube Analytics connector in Kaivo: authentication, configuration, the 18 BigQuery tables it syncs, and answers to common questions.

YouTube Analytics connector pricing, tier and credits on kaivo.io

Kaivo is a fully managed data platform that syncs your YouTube Analytics data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your marketing and sales data instead of moving it.

Sync your YouTube Analytics channel and playlist reports into BigQuery with Kaivo to track views, traffic sources, and audience retention.

CategoryMarketing & Sales
AuthenticationOAuth
SetupOn request, contact us to enable it

Getting started with the YouTube Analytics connector

Section titled “Getting started with the YouTube Analytics connector”
  1. Sign up for Kaivo and create a workspace.
  2. Ask us to enable the YouTube Analytics connector for your workspace. You can reach our team from the chat in the app.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Connect by signing in to your Google account. Kaivo runs the connection for you, so you never share a password.

Configuring the YouTube Analytics connector

Section titled “Configuring the YouTube Analytics connector”

When you set up the connector, you provide:

Field Description
Content Owner ID
If you manage multiple YouTube channels, you can use your Content Owner ID to get the data from all of them.

|

Tables and columns synced from YouTube Analytics

Section titled “Tables and columns synced from YouTube Analytics”

Kaivo syncs 18 tables from YouTube Analytics into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

channel_annotations_a1 (17 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
annotation_click_through_rate STRING
annotation_clickable_impressions STRING
annotation_clicks STRING
annotation_closable_impressions STRING
annotation_close_rate STRING
annotation_closes STRING
annotation_id STRING
annotation_impressions STRING
annotation_type STRING
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
subscribed_status STRING
video_id STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_basic_a3 (36 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
annotation_click_through_rate FLOAT64
annotation_clickable_impressions INT64
annotation_clicks INT64
annotation_closable_impressions INT64
annotation_close_rate FLOAT64
annotation_closes INT64
annotation_impressions INT64
average_view_duration_percentage FLOAT64
average_view_duration_seconds FLOAT64
card_click_rate FLOAT64
card_clicks INT64
card_impressions INT64
card_teaser_click_rate FLOAT64
card_teaser_clicks INT64
card_teaser_impressions INT64
channel_id STRING
comments INT64
country_code STRING
date INT64
dislikes INT64
likes INT64
live_or_on_demand STRING
red_views INT64
red_watch_time_minutes FLOAT64
shares INT64
subscribed_status STRING
subscribers_gained INT64
subscribers_lost INT64
video_id STRING
videos_added_to_playlists INT64
videos_removed_from_playlists INT64
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_cards_a1 (16 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
card_click_rate STRING
card_clicks STRING
card_id STRING
card_impressions STRING
card_teaser_click_rate STRING
card_teaser_clicks STRING
card_teaser_impressions STRING
card_type STRING
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
subscribed_status STRING
video_id STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_combined_a3 (19 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentage FLOAT64
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
device_type INT64
live_or_on_demand STRING
operating_system INT64
playback_location_type INT64
red_views INT64
red_watch_time_minutes FLOAT64
subscribed_status STRING
traffic_source_type INT64
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_demographics_a1 (11 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
age_group STRING
channel_id STRING
country_code STRING
date INT64
gender STRING
live_or_on_demand STRING
subscribed_status STRING
video_id STRING
views_percentage STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_device_os_a3 (17 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentage FLOAT64
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
device_type INT64
live_or_on_demand STRING
operating_system INT64
red_views INT64
red_watch_time_minutes FLOAT64
subscribed_status STRING
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_end_screens_a1 (13 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
channel_id STRING
country_code STRING
date INT64
end_screen_element_click_rate STRING
end_screen_element_clicks STRING
end_screen_element_id STRING
end_screen_element_impressions STRING
end_screen_element_type STRING
live_or_on_demand STRING
subscribed_status STRING
video_id STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_playback_location_a3 (17 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentage FLOAT64
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
playback_location_detail STRING
playback_location_type INT64
red_views INT64
red_watch_time_minutes FLOAT64
subscribed_status STRING
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_province_a3 (29 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
annotation_click_through_rate INT64
annotation_clickable_impressions INT64
annotation_clicks INT64
annotation_closable_impressions INT64
annotation_close_rate INT64
annotation_closes INT64
annotation_impressions INT64
average_view_duration_percentage FLOAT64
average_view_duration_seconds FLOAT64
card_click_rate INT64
card_clicks INT64
card_impressions INT64
card_teaser_click_rate INT64
card_teaser_clicks INT64
card_teaser_impressions INT64
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
province_code STRING
red_views INT64
red_watch_time_minutes FLOAT64
subscribed_status STRING
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_sharing_service_a1 (10 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
shares STRING
sharing_service STRING
subscribed_status STRING
video_id STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_subtitles_a3 (17 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentage FLOAT64
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
red_views INT64
red_watch_time_minutes FLOAT64
subscribed_status STRING
subtitle_language STRING
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
subtitle_language_autotranslated STRING
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
channel_traffic_source_a3 (17 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_percentage FLOAT64
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
red_views INT64
red_watch_time_minutes FLOAT64
subscribed_status STRING
traffic_source_detail STRING
traffic_source_type INT64
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
playlist_basic_a2 (16 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
playlist_id STRING
playlist_saves_added INT64
playlist_saves_removed INT64
playlist_starts INT64
subscribed_status STRING
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
playlist_combined_a2 (20 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
device_type INT64
live_or_on_demand STRING
operating_system INT64
playback_location_type INT64
playlist_id STRING
playlist_saves_added INT64
playlist_saves_removed INT64
playlist_starts INT64
subscribed_status STRING
traffic_source_type INT64
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
playlist_device_os_a2 (18 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
device_type INT64
live_or_on_demand STRING
operating_system INT64
playlist_id STRING
playlist_saves_added INT64
playlist_saves_removed INT64
playlist_starts INT64
subscribed_status STRING
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
playlist_playback_location_a2 (18 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
playback_location_detail STRING
playback_location_type INT64
playlist_id STRING
playlist_saves_added INT64
playlist_saves_removed INT64
playlist_starts INT64
subscribed_status STRING
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
playlist_province_a2 (17 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
playlist_id STRING
playlist_saves_added STRING
playlist_saves_removed STRING
playlist_starts STRING
province_code STRING
subscribed_status STRING
video_id STRING
views STRING
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.
playlist_traffic_source_a2 (18 columns)
Column Type Description
_kaivo_id STRING Primary key that uniquely identifies the row. Auto-generated by Kaivo.
average_view_duration_seconds FLOAT64
channel_id STRING
country_code STRING
date INT64
live_or_on_demand STRING
playlist_id STRING
playlist_saves_added INT64
playlist_saves_removed INT64
playlist_starts INT64
subscribed_status STRING
traffic_source_detail STRING
traffic_source_type INT64
video_id STRING
views INT64
watch_time_minutes FLOAT64
engaged_views INT64
_kaivo_extracted_at TIMESTAMP Timestamp that shows when the row was extracted. Auto-generated by Kaivo.

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where YouTube Analytics supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won’t get duplicate rows.

How long does the initial sync take for YouTube Analytics?

Section titled “How long does the initial sync take for YouTube Analytics?”

It depends on how much history is in your YouTube Analytics account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they’re much faster.

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don’t select are never copied to your warehouse.

What happens when YouTube Analytics’s schema changes?

Section titled “What happens when YouTube Analytics’s schema changes?”

New fields are never added automatically. You choose which fields to sync, so data you haven’t selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table’s sync mode: full-refresh tables always match what’s currently in YouTube Analytics, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Section titled “How do I handle GDPR or data deletion requests?”

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in YouTube Analytics instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the YouTube Analytics connector in Kaivo and all of its synced data is deleted with it.

Common use cases for YouTube Analytics data

Section titled “Common use cases for YouTube Analytics data”

Use channel_basic_a3 and channel_combined_a3 to track views, watch time, and subscribers.

Use channel_traffic_source_a3 and channel_playback_location_a3 to see where views come from.

Use channel_demographics_a1 and channel_device_os_a3 to see who watches and on what.

Use playlist_basic_a2 and playlist_combined_a2 to compare how playlists hold attention.

Use YouTube Analytics data in your AI and BI tools

Section titled “Use YouTube Analytics data in your AI and BI tools”

Once YouTube Analytics data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here’s how the most common destinations work with YouTube Analytics data.

Use Kaivo’s MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Microsoft’s BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

The premium analytics standard, with native BigQuery integration. Setup guide →

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Connect via Power Query’s BigQuery connector. Setup guide →

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for YouTube Analytics connector pricing and plan details.