Ad Platforms Release Notes
Release notes for digital advertising and other marketing/ads APIs
Products (12)
Latest Ad Platforms Updates
- Nov 5, 2026
- Date parsed from source:Nov 5, 2026
- First seen by Releasebot:Nov 7, 2026
X Developer by X
Nov 5, 2026
X Developer updates its Livestream API with new source and broadcast routes, safer one-call live publishing, and clearer source IDs. The release also deprecates user-scoped routes and stream-key identifiers, with removal scheduled for January 1, 2027.
Livestream API: new /2/sources and /2/broadcasts routes; /2/users/:user_id routes deprecated
You can now take a stream source live in one call with POST /2/broadcasts. It creates and publishes the broadcast together and returns it already RUNNING (201), or returns the source’s live broadcast unchanged with 200 if there already is one, so it’s safe to retry. Broadcasts are ended with PUT /2/broadcasts/:id/state, deleted with DELETE /2/broadcasts/:id, and read with GET /2/broadcasts and GET /2/broadcasts/:id.
Stream sources are managed with the new /2/sources routes. Each source now has a non-secret 19-digit source id, separate from its stream key. Use the source id in /2/sources/:id and as source_id when going live or scheduling a broadcast. The stream key is returned only when you create a source and by the new GET /2/sources/:id/stream_key. Broadcasts and scheduled broadcasts now return source_id as the source id.
The new routes take the owner from the access token, wrap responses in data, and return errors in the standard X API problem format.
The original routes under /2/users/:user_id/sources and /2/users/:user_id/broadcasts are deprecated and will be removed on January 1, 2027, after which they return 404. Passing a stream key as source_id to the scheduled broadcast routes is also deprecated and stops working on that date.
See the migration guide for the route mapping and the differences in identifiers, request bodies, responses, and errors.
Original source - Oct 29, 2026
- Date parsed from source:Oct 29, 2026
- First seen by Releasebot:Nov 2, 2026
X Developer by X
Oct 29, 2026
X Developer adds a Conversion API for App Events, letting advertisers send app installs and in-app events directly to X without a mobile measurement partner, with up to 500 events per request. The existing website endpoint is now titled Conversion API for Web.
Conversion API for App Events
Advertisers can send app installs and in-app events to X without a mobile measurement partner. Create the app event in Events Manager, generate an access token, and post events to POST /12/accounts/:account_id/measurement/app_conversions. Pass the token in the X-App-Conversion-Token header. Each event needs an app ID, OS type, event name, timestamp, and at least one identifier (device_id, hashed email, hashed phone number, or IP address with user agent). A request can include up to 500 events.
See Conversion API for App Events. The website endpoint is unchanged and is now titled Conversion API for Web.
Original source All of your release notes in one feed
Join Releasebot and get updates from X and hundreds of other software products.
- Oct 28, 2026
- Date parsed from source:Oct 28, 2026
- First seen by Releasebot:Oct 29, 2026
v26.1 (2026-10-28)
Google Ads API releases v26.1 with campaign budget controls for prioritizing network channels, expanded Local Services eligibility tools, new customer acquisition recommendations, richer reach reporting, and household income exclusions for Performance Max campaigns.
The following new features and updates were added in Google Ads API v26.1. Minor versions like v26.1 don't contain breaking changes.
Assets
External promotion redemption tracking
New messages, fields, enums, and error
Added the immutable
PromotionAsset.external_redeem_infofield of typeExternalRedeemInfoto specify external redemption tracking details for a promotion:ExternalRedeemInfo.partner_promotion_id: An immutableExternalPartnerIdmessage that holds either an integer (int_value) or a string (string_value) ID of the promotion in the partner's system. Required when thecode_sourcefield is set toGOOGLE_GENERATED.ExternalRedeemInfo.code_type: Required and immutable. The offline promotion code type (OfflinePromotionCodeType: SINGLE_USE_PROMOTION_CODE or MULTI_USE_PROMOTION_CODE).ExternalRedeemInfo.code_source: Required and immutable. The offline promotion code source (OfflinePromotionCodeSource: CUSTOMER_UPLOADED or GOOGLE_GENERATED).
Also added the
AssetError.PARTNER_PROMOTION_ID_TYPE_INCOMPATIBLEerror code, which the API returns when thepartner_promotion_idfield uses a format that the account's promotion integration does not accept.Campaigns
Waterfall channel prioritization and budget caps for campaign budgets
New features, resource, service, fields, and enums
Added support for waterfall channel prioritization and budget caps on campaign budgets, which let you control how you allocate a budget across network channels (Google Owned and Operated properties, the Search Partner Network, and the Google Display Network). For more information, see the channel prioritization and budget allocation blog post.
Added the
CampaignBudget.budget_network_settingsfield of typeBudgetNetworkSettings, which holds at most oneBudgetNetworkSettingmessage per advertising channel type (advertising_channel_type) in theBudgetNetworkSettings.settingsfield. Each setting assigns network channels (NetworkChannelType: OWNED_AND_OPERATED, SEARCH_PARTNER, and GOOGLE_DISPLAY) to priority tiers (ChannelPriorityTier: TIER1 and TIER2) in theBudgetNetworkSetting.channel_prioritiesfield (of typeChannelPriorityConfig). A setting can also cap the share of the budget that secondary-tier network channels spend in theBudgetNetworkSetting.budget_capsfield (of typeBudgetCapConfig). TheBudgetCapConfig.cap_percent_millisfield specifies the cap in milli-percent units (1,000 = 1%, 100,000 = 100%, and 0 = 0% opt-out). When unset, the customer-level defaults in theCustomerBudgetNetworkSettingresource apply.Added the read-only
CampaignBudget.budget_network_eligibilityfield of typeBudgetNetworkEligibility, which indicates whether a budget is eligible (eligible) for waterfall prioritization and budget caps and, if not, the ineligibility reasons (ineligible_reasonsof typeBudgetNetworkIneligibleReason).Added the
CustomerBudgetNetworkSettingresource, a singleton per customer with the resource namecustomers/{customer_id}/customerBudgetNetworkSettings. Itsbudget_network_settingsfield of typeBudgetNetworkSettingsholds the defaults that apply to every campaign budget whoseCampaignBudget.budget_network_settingsfield is unset.Added the
CustomerBudgetNetworkSettingServiceservice with theCustomerBudgetNetworkSettingService.MutateCustomerBudgetNetworkSettingmethod to create or update the setting. You can also mutate the resource through theGoogleAdsService.Mutatemethod and query it through theGoogleAdsService.SearchandGoogleAdsService.SearchStreammethods.Added the
BudgetNetworkSettingErrorenum, which the API returns when budget network settings are invalid.Migrated Demand Gen campaign activation error
New enum and error
Added the
DemandGenCampaignErrorenum with theDemandGenCampaignError.CANNOT_ACTIVATE_MIGRATED_CAMPAIGNerror code. The API returns this error if you try to activate a migrated Demand Gen campaign before removing the original campaign, or while another migrated campaign for the same original campaign is active.General
Local Services eligibility service and category details
New service, messages, and fields
Added the
LocalServicesEligibilityServiceservice with theLocalServicesEligibilityService.CheckLocalServicesEligibilitymethod to check Local Services eligibility for a customer and Google Business Profile listing ID (CheckLocalServicesEligibilityRequest). TheCheckLocalServicesEligibilityResponsemessage returns:eligible: Indicates whether the customer is eligible for Local Services.eligible_goals(of typeEligibleGoal): Maps each eligible lead type (EligibleGoal.lead_type) to its eligible service categories (EligibleGoal.categoriesof typeEligibleCategory), including each category's ID (category_id), display name (display_name), available job type IDs (job_types), and business callout IDs (callouts).suggestion_reasons(of typeSuggestionReason): Provides short and detailed text reasons (short_textandlong_text) explaining eligibility issues (such as licensing issues).
Local Services external redemption provider settings
Updated field, new messages, and new fields
Updated the
Customer.local_services_settingsfield fromOUTPUT_ONLYto mutable. Also added theLocalServicesSettings.redemption_provider_infofield of typeRedemptionProviderInfoto configure the external redemption provider for a Local Services account. This message contains the requiredRedemptionProviderInfo.external_merchant_idfield of typeExternalPartnerMerchantId, which holds either an integer (numeric_id) or a 1–50 character string (alphanumeric_id) merchant ID.Recommendations
Optimize for new customers recommendation
New recommendation
Added the
RecommendationType.OPTIMIZE_FOR_NEW_CUSTOMERSenum value and the following fields to support optimizing campaigns for new customer acquisition (with incremental conversion values expressed in standard units of the account's local currency, not in micros):Recommendation.optimize_for_new_customers_recommendation(of typeOptimizeForNewCustomersRecommendation): Exposes therecommended_incremental_conversion_valuefield.ApplyRecommendationOperation.optimize_for_new_customers(of typeOptimizeForNewCustomersParameters): Accepts theaccount_default_incremental_conversion_valueandcampaign_override_incremental_conversion_valuefields when you apply the recommendation.
Reports
Reach reporting frequency buckets and metric state information
New metrics, message, and enum
Added the following metrics to the
Metricsmessage, completing the set of N+ frequency buckets (1+ through 10+) for reach reporting:Metrics.unique_users_six_plusMetrics.unique_users_seven_plusMetrics.unique_users_eight_plusMetrics.unique_users_nine_plus
Also added the following
ReachMetricInfometrics to theMetricsmessage to provide additional state information (theReachMetricInfo.reach_metric_statesfield of typeReachMetricState, such as when a value is suppressed for privacy or quality reasons) for each unique-users metric:Metrics.unique_users_infoMetrics.unique_users_two_plus_infoMetrics.unique_users_three_plus_infoMetrics.unique_users_four_plus_infoMetrics.unique_users_five_plus_infoMetrics.unique_users_six_plus_infoMetrics.unique_users_seven_plus_infoMetrics.unique_users_eight_plus_infoMetrics.unique_users_nine_plus_infoMetrics.unique_users_ten_plus_info
Search top impression share and search click share support for hotel booking itinerary and vertical ads segments
Updated metrics and segments
Expanded support for the
Metrics.search_top_impression_shareandMetrics.search_click_sharemetrics so that you can select them with the following hotel booking itinerary and vertical ads segments:Segments.advance_booking_windowSegments.length_of_bookingSegments.start_dateSegments.start_day_of_weekSegments.user_set_datesSegments.vertical_ads_event_participant_display_namesSegments.vertical_ads_hotel_classSegments.vertical_ads_listingSegments.vertical_ads_listing_brandSegments.vertical_ads_listing_citySegments.vertical_ads_listing_countrySegments.vertical_ads_listing_regionSegments.vertical_ads_listing_user_ratingSegments.vertical_ads_listing_venueSegments.vertical_ads_partner_accountSegments.vertical_ads_price_tierSegments.vertical_ads_rate_rule_idSegments.vertical_ads_rate_typeSegments.vertical_ads_vertical
Targeting
Household income exclusions in Performance Max campaigns
Expanded support
Added support for household income exclusions in Performance Max campaigns. Exclude household income ranges by creating a negative
Original sourceCampaignCriterionresource with theincome_rangefield set. - Oct 28, 2026
- Date parsed from source:Oct 28, 2026
- First seen by Releasebot:Oct 29, 2026
October 28, 2026
Instagram Platform updates webhook guidance for Meta Business Agent handoffs, including admin text and optional handoff reasons.
Instagram API, Webhooks
Updated the Instagram webhook notification examples and webhook fields reference to describe Meta Business Agent handoff notifications for Instagram Login and Facebook Login integrations. The messages notification can contain message.admin_text and, when enabled, message.handoff_reason. A handoff notice can omit mid and text; receiving it does not itself transfer conversation ownership.
Original source - Oct 28, 2026
- Date parsed from source:Oct 28, 2026
- First seen by Releasebot:Oct 29, 2026
Google Ads by Google
Ads in AI Mode expand to new markets.
Google Ads expands AI Mode ads to 10 new countries, including Canada and India.
Google is expanding AI Mode ads to 10 new countries, including Canada and India. See how these relevant sponsored results improve your search experience.
Original source - Oct 26, 2026
- Date parsed from source:Oct 26, 2026
- First seen by Releasebot:Oct 27, 2026
X Developer by X
Oct 26, 2026
X Developer improves Direct Message refusal errors with clearer problem types and safe cause details, while preserving HTTP 403 responses and protecting recipient privacy. The updated types are included in the public OpenAPI specification and generated SDKs.
Improved Direct Message refusal error details
Create Direct Message requests (POST /2/dm_conversations, POST /2/dm_conversations/:id/messages, and POST /2/dm_conversations/with/:participant_id/messages) still return HTTP 403 when a message is refused. The problem type now identifies the refusal (https://api.x.com/2/problems/dm-...). detail names the cause when that was already specific, or when the new wording does not reveal a private fact about the recipient. Refusals we cannot explain safely stay about:blank with “This operation is not permitted.” Clients that only check the status code are unaffected. The new types are part of the public OpenAPI Problem union and of generated SDKs.
Original source - Oct 20, 2026
- Date parsed from source:Oct 20, 2026
- First seen by Releasebot:Oct 21, 2026
Google Ads by Google
Expanding our defenses against financial scam ads
Google Ads plans new safeguards for early 2027 to help protect people in the U.S. and Canada from financial scams.
We’re introducing new safeguards in early 2027 to help protect people in the U.S. and Canada from financial scams.
Original source - Oct 20, 2026
- Date parsed from source:Oct 20, 2026
- First seen by Releasebot:Oct 20, 2026
October 20, 2026
Instagram Platform adds ordered ad comments and displays app-set captions on stories published through the Content Publishing API.
Ordered comments for Instagram ad media
Applies to all versions.
Added the /ordered_comments edge (GET //ordered_comments). It returns comments in Instagram display order, and the response can include comments from all of an ad’s Instagram media. The /ordered_comments edge is available for the Instagram API with Facebook Login only.
Captions on stories published through the Content Publishing API
Applies to all versions.
A caption set when creating a story container now appears on the published story as a caption from your app user’s account.
Original source - Oct 15, 2026
- Date parsed from source:Oct 15, 2026
- First seen by Releasebot:Oct 16, 2026
Google Ads by Google
An intelligent new shopping cart
Google Ads expands Universal Cart availability across U.S. Search and the Gemini app to make holiday shopping easier.
Universal Cart helps make holiday shopping easier. It’s now available in the U.S. across Search and the Gemini app.
Original source - Oct 14, 2026
- Date parsed from source:Oct 14, 2026
- First seen by Releasebot:Oct 15, 2026
- Modified by Releasebot:Oct 17, 2026
v26 (2026-10-14)
Google Ads API releases v26 with expanded Local Services Performance Max campaign support, Search Lift reporting, LINE and SMS business messaging, and new Demand Gen and conversion capabilities. The major update also changes campaign setup requirements and several targeting and EU political advertising rules.
The following new features, updates, and breaking changes were added in Google Ads API v26, which is a major release.
See Upgrade to the latest version for guidance.
Breaking changes
Campaigns
Optional country_code field in LocalServicesPmaxCampaignSettings
Required field during Local Services Performance Max campaign creation (LocalServicesPmaxCampaignSettings.country_code)
Behavioral shift
Ensure you specify country_code (along with the newly required listing_id) when creating Local Services Performance Max campaigns.
Conversions
The enhanced_conversions_for_leads_enabled field in ConversionTrackingSetting (Customer.conversion_tracking_setting)
None
Removal
Use ConversionTrackingSetting.enablement_setting on Customer.conversion_tracking_setting instead to inspect the account-level Enhanced Conversions setting.
Targeting
Hotel-specific criterion fields in AdGroupBidModifier: hotel_date_selection_type hotel_advance_booking_window hotel_length_of_stay (min_nights and max_nights) hotel_check_in_day hotel_check_in_date_range
Vertical-agnostic criterion fields in AdGroupBidModifier: user_set_dates of type UserSetDatesInfo advance_booking_window of type AdvanceBookingWindowInfo length_of_booking of type LengthOfBookingInfo (min_days and max_days) start_day_of_week of type StartDayOfWeekInfo start_date_range of type StartDateRangeInfo
Rename / removal
Update references to use the vertical-agnostic criterion fields, which support targeting across travel verticals beyond hotels (such as Things to do). Criterion IDs, targeting behavior, and existing bid modifiers stay the same. Values for min_nights and max_nights carry over to min_days and max_days as they are.
HotelDateSelectionType and type of segments.user_set_dates
DateSelectionType
Rename / type change
Use DateSelectionType instead of HotelDateSelectionType.
Hotel-specific error reasons in CriterionError: HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE HOTEL_CHECK_IN_DATE_RANGE_REVERSED
Vertical-agnostic error reasons in CriterionError: LENGTH_OF_BOOKING_OVERLAPS_WITH_EXISTING_CRITERION ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION START_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION START_DATE_RANGE_START_DATE_TOO_EARLY START_DATE_RANGE_END_DATE_TOO_LATE START_DATE_RANGE_REVERSED
Rename
Update error handling to check for the new vertical-agnostic error reasons.
Features and updates (non-breaking)
Assets
LINE and SMS business message providers
New fields and enum values
Added support for LINE and SMS as message providers in BusinessMessageAsset, including new fields BusinessMessageAsset.line_info and BusinessMessageAsset.sms_info along with BusinessMessageProvider.LINE and BusinessMessageProvider.SMS.
AssetGroupError.UNSUPPORTED_LOCAL_SERVICES_CATEGORY
New enum value / error
Added to AssetGroupError to indicate when a category specified in GoogleLocalServicesInfo (AssetGroup.google_local_services_info) is not supported for Local Services Performance Max campaigns.
Campaigns
Local Services Performance Max campaign creation
New features, fields, and error
Updated PmaxCampaignSettings.local_services_enabled from OUTPUT_ONLY to IMMUTABLE, allowing external API clients to specify local_services_enabled = true when creating new Local Services Performance Max campaigns. Also added LocalServicesPmaxCampaignSettings.listing_id to expose the Google Business Profile listing ID linked to the Local Services Performance Max campaign (marked as REQUIRED during Local Services Performance Max campaign creation), and added the CampaignError.INVALID_LOCAL_SERVICES_PERFORMANCE_MAX_LISTING_ID error code.
Local Services campaign validation errors
New enum values and errors
Added new validation errors for Local Services campaigns: CampaignError: LOCAL_SERVICES_MULTIPLE_PERFORMANCE_MAX_CAMPAIGNS_NOT_ALLOWED LOCAL_SERVICES_AGREEMENT_REQUIRED AssetSetLinkError: LOCATION_ASSET_DOES_NOT_MATCH_CAMPAIGN_LISTING_ID CampaignConversionGoalError and CampaignGoalConfigError: CANNOT_UNLINK_LOCAL_SERVICES_GOAL_FROM_LOCAL_SERVICES_CAMPAIGN GOAL_NOT_ALLOWED_FOR_LOCAL_SERVICES_CAMPAIGN LOCAL_SERVICES_GOAL_NOT_ALLOWED_FOR_NON_LOCAL_SERVICES_CAMPAIGN ConversionGoalCampaignConfigError: CANNOT_DISABLE_CAMPAIGN_OVERRIDE_GOALS_FOR_LOCAL_SERVICES_CAMPAIGN
Hotel Center account link validation
New enum value / error
Added the CampaignError.HOTEL_PROPERTY_ASSET_SET_HOTEL_CENTER_LINK_REQUIRED error code to CampaignError to indicate that linking a hotel property asset set (Campaign.hotel_property_asset_set) to a Performance Max for travel goals campaign requires an active Hotel Center account link.
Demand Gen minimum budget per day
New field
Added the field demand_gen_info.minimum_budget_per_day_micros to CurrencyConstant, which specifies the minimum required budget per day for Demand Gen campaigns in that currency. This field's value updates when the minimum budget enforced by the API changes.
Lift measurement config for campaigns
New field
Added Campaign.lift_measurement_config to expose the resource name of the lift measurement configuration linked to the campaign.
AI Max experiment validation
New enum value / error
Added the ExperimentArmError.ADOPT_AI_MAX_CAMPAIGN_ALREADY_ENABLED error code to ExperimentArmError when attempting to create an ADOPT_AI_MAX experiment for a campaign that already has AI Max enabled (or is enabled within the same request prior to experiment arm creation).
Shopping campaign listing type
Expanded support
Expanded support of Campaign.listing_type to Shopping campaigns.
EU political advertising self-declaration updates
Updated behavior and new fields
Campaign.contains_eu_political_advertising is now optional for some campaigns that don't positively target the European Union. Except as noted for DEMAND_GEN campaigns with upgraded targeting, the field is optional if a campaign satisfies all of the following conditions after the request is executed:
- Contains no positive location campaign criterion that is inside the EU
- Contains no positive proximity or location group campaign criterion
- Contains at least one positive location campaign criterion that is outside of the EU
For DEMAND_GEN campaigns with upgraded_targeting, the field is optional if every active ad group within the campaign satisfies all of the following conditions after the request is executed:
- Contains no positive location ad group criterion that is inside the EU
- Contains no positive proximity or location group ad group criterion
- Contains at least one positive location ad group criterion that is outside of the EU
The field is also optional for campaigns with no active ad groups. If a request creates an ad group that does not meet these conditions, AdGroupError.MISSING_EU_POLITICAL_ADVERTISING_SELF_DECLARATION is returned. These changes apply to both new and existing campaigns. In some cases a new campaign can only be created if criteria are added in the same request — use GoogleAdsService.Mutate to group mutates.
Updated Campaign.missing_eu_political_advertising_declaration to match the changes to Campaign.contains_eu_political_advertising. Added GeoTargetConstant.require_eu_political_advertising_declaration to indicate if a location is within or outside of the EU. Added CampaignCriterion.require_eu_political_advertising_declaration and AdGroupCriterion.require_eu_political_advertising_declaration.
Campaign.contains_eu_political_advertising is required if this field is true for any campaign-level criterion within the campaign (or for any active ad-group-level criterion in DEMAND_GEN campaigns with upgraded targeting). The fields return true if the criterion's negative field is false and the criterion is a location within the EU, a proximity (regardless of whether it overlaps with EU territory), or a location group (regardless of whether it overlaps with EU territory).
Conversions
Unified Enhanced Conversions configuration
New fields and enum
Added ConversionTrackingSetting.enablement_setting and ConversionTrackingSetting.effective_enablement_setting (on Customer.conversion_tracking_setting) to expose the unified Enhanced Conversions configuration for the account, represented using the new EnhancedConversionsConfig enum.
ConversionActionCategory.MESSAGE_LEAD
New enum value
Added to ConversionActionCategory to support message or chat interactions indicating interest in an advertiser's offering.
ConversionAttributionEventType.CLICK
New enum value
Added to ConversionAttributionEventType to represent conversions attributed to an ad click, which were previously included in the UNKNOWN enum value.
General
Local Services leads updates
New field and enum value
Added the LocalServicesLead.campaign field to the LocalServicesLead resource to link a lead to its associated campaign. Added COUPON to LocalServicesLeadType to support coupon lead types for Local Services.
Recommendations
Raise budget recommendation for Search
New recommendation
Added RecommendationType.RAISE_BUDGET_PERFORMANCE_TOO_LOW, Recommendation.raise_budget_performance_too_low_recommendation, and ApplyRecommendationOperation.raise_budget_performance_too_low to support raising budgets when daily budgets are too low for Search campaigns.
Reports
Search Lift measurements
New features, resource, segments, and metrics
Added support for Search Lift measurements: Added a new read-only resource SearchLiftKeywordBundle representing a keyword bundle in a Search Lift study. Added new selectable segments (segments.search_lift_keyword_bundle and segments.search_property) and 15 new Search Lift metrics (such as relative_search_lift, normalized_incremental_searches, search_lift_cost_micros, and search_lift_impressions) to support Search Lift analysis with LiftMeasurementConfig (linked to campaigns using Campaign.lift_measurement_config). Added the SearchLiftKeywordBundleStatus, SearchLiftMatchingInfoSource, and SearchLiftSearchProperty enums.
Final URL expansion asset view for Shopping campaigns
Expanded support
Expanded final_url_expansion_asset_view to support Shopping campaigns (with ad_group selectable as an attributed resource alongside final_url_expansion_asset_view.ad_group).
Videos
YouTube generative content disclosures
New fields and enum
Added support for generative content disclosures for YouTube uploads. The new field YouTubeVideoUpload.video_content_metadata of type VideoContentMetadata has been added to YouTubeVideoUpload, containing disclosure settings under VideoContentMetadata.generative_content_disclosure of type YouTubeVideoUploadGenerativeContentDisclosure.
Original source