TwitchAdsRequests

Inherits: TwitchRequestBase < RefCounted < Object

Twitch Ads API for managing commercials and ad schedules.

Description

TwitchAdsRequests provides methods for starting commercials, getting ad schedules, and managing ad breaks on Twitch channels. Requires appropriate OAuth scopes (channel:edit:commercial for starting commercials). Access through TwitchAPI.get_ads().

Tutorials

Methods

void

get_ad_schedule(broadcaster_id: String)

void

snooze_next_ad(broadcaster_id: String)

void

start_commercial(broadcaster_id: String, length: int)


Method Descriptions

void get_ad_schedule(broadcaster_id: String) 🔗

Gets the broadcaster's ad schedule information including snooze count, next ad time, and preroll-free time. Results are returned via the TwitchAPI.request_completed signal with signal_name "ad_schedule_received".

Response includes: snooze_count, snooze_refresh_at, next_ad_at, duration, last_ad_at, preroll_free_time.

TwitchAPI.get_ads().get_ad_schedule("broadcaster_id")
# Response: {"data": [{"snooze_count": 1, "snooze_refresh_at": "2025-10-16T12:00:00Z", "next_ad_at": "2025-10-16T13:00:00Z", "duration": 90, "last_ad_at": "2025-10-16T11:00:00Z", "preroll_free_time": 300}]}

void snooze_next_ad(broadcaster_id: String) 🔗

Snoozes the next scheduled ad by 5 minutes. Results are returned via the TwitchAPI.request_completed signal with signal_name "ad_snoozed".

Response includes: snooze_count, snooze_refresh_at, next_ad_at.

TwitchAPI.get_ads().snooze_next_ad("broadcaster_id")
# Response: {"data": [{"snooze_count": 0, "snooze_refresh_at": "2025-10-17T00:00:00Z", "next_ad_at": "2025-10-16T13:05:00Z"}]}

void start_commercial(broadcaster_id: String, length: int) 🔗

Starts a commercial break on the broadcaster's channel. length must be 30, 60, 90, 120, 150, or 180 seconds. Requires channel:edit:commercial scope. Results are returned via the TwitchAPI.request_completed signal with signal_name "commercial_started".

Response includes: length (commercial duration), message (status message), retry_after (seconds until next commercial can be run).

TwitchAPI.get_ads().start_commercial("broadcaster_id", 30)
# Response: {"data": [{"length": 30, "message": "Commercial started", "retry_after": 480}]}