diff --git a/api_names_out.yaml b/api_names_out.yaml index b834803060a..c047c4bb7b6 100644 --- a/api_names_out.yaml +++ b/api_names_out.yaml @@ -256065,6 +256065,23 @@ "/displayvideo:v4/Adloox/spamHarmfulContent": spam_harmful_content "/displayvideo:v4/Adloox/terrorismContent": terrorism_content "/displayvideo:v4/Adloox/videoIabViewability": video_iab_viewability +"/displayvideo:v4/AdvancedProductTargeting": advanced_product_targeting +"/displayvideo:v4/AdvancedProductTargeting/ageRange": age_range +"/displayvideo:v4/AdvancedProductTargeting/dateRange": date_range +"/displayvideo:v4/AdvancedProductTargeting/devices": devices +"/displayvideo:v4/AdvancedProductTargeting/devices/device": device +"/displayvideo:v4/AdvancedProductTargeting/frequencyCap": frequency_cap +"/displayvideo:v4/AdvancedProductTargeting/genders": genders +"/displayvideo:v4/AdvancedProductTargeting/genders/gender": gender +"/displayvideo:v4/AdvancedProductTargeting/plannableLocationIds": plannable_location_ids +"/displayvideo:v4/AdvancedProductTargeting/plannableLocationIds/plannable_location_id": plannable_location_id +"/displayvideo:v4/AdvancedProductTargeting/surfaceTargetingSettings": surface_targeting_settings +"/displayvideo:v4/AdvancedProductTargeting/targetFrequency": target_frequency +"/displayvideo:v4/AdvancedProductTargeting/userInterestIds": user_interest_ids +"/displayvideo:v4/AdvancedProductTargeting/userInterestIds/user_interest_id": user_interest_id +"/displayvideo:v4/AdvancedProductTargeting/userListIds": user_list_ids +"/displayvideo:v4/AdvancedProductTargeting/userListIds/user_list_id": user_list_id +"/displayvideo:v4/AdvancedProductTargeting/youtubeSelectSettings": youtube_select_settings "/displayvideo:v4/Advertiser": advertiser "/displayvideo:v4/Advertiser/adServerConfig": ad_server_config "/displayvideo:v4/Advertiser/advertiserId": advertiser_id @@ -256460,6 +256477,9 @@ "/displayvideo:v4/CampaignBudget/externalBudgetSource": external_budget_source "/displayvideo:v4/CampaignBudget/invoiceGroupingId": invoice_grouping_id "/displayvideo:v4/CampaignBudget/prismaConfig": prisma_config +"/displayvideo:v4/CampaignDuration": campaign_duration +"/displayvideo:v4/CampaignDuration/dateRange": date_range +"/displayvideo:v4/CampaignDuration/durationDays": duration_days "/displayvideo:v4/CampaignFlight": campaign_flight "/displayvideo:v4/CampaignFlight/plannedDates": planned_dates "/displayvideo:v4/CampaignFlight/plannedSpendAmountMicros": planned_spend_amount_micros @@ -256905,6 +256925,12 @@ "/displayvideo:v4/EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate/addedAdvertisers/added_advertiser": added_advertiser "/displayvideo:v4/EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate/removedAdvertisers": removed_advertisers "/displayvideo:v4/EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate/removedAdvertisers/removed_advertiser": removed_advertiser +"/displayvideo:v4/EffectiveFrequencyBreakdown": effective_frequency_breakdown +"/displayvideo:v4/EffectiveFrequencyBreakdown/effectiveCoviewReach": effective_coview_reach +"/displayvideo:v4/EffectiveFrequencyBreakdown/effectiveFrequency": effective_frequency +"/displayvideo:v4/EffectiveFrequencyBreakdown/onTargetEffectiveCoviewReach": on_target_effective_coview_reach +"/displayvideo:v4/EffectiveFrequencyBreakdown/onTargetReach": on_target_reach +"/displayvideo:v4/EffectiveFrequencyBreakdown/totalReach": total_reach "/displayvideo:v4/Empty": empty "/displayvideo:v4/EnvironmentAssignedTargetingOptionDetails": environment_assigned_targeting_option_details "/displayvideo:v4/EnvironmentAssignedTargetingOptionDetails/environment": environment @@ -256993,6 +257019,17 @@ "/displayvideo:v4/GenerateDefaultLineItemRequest/insertionOrderId": insertion_order_id "/displayvideo:v4/GenerateDefaultLineItemRequest/lineItemType": line_item_type "/displayvideo:v4/GenerateDefaultLineItemRequest/mobileApp": mobile_app +"/displayvideo:v4/GenerateReachForecastRequest": generate_reach_forecast_request +"/displayvideo:v4/GenerateReachForecastRequest/campaignDuration": campaign_duration +"/displayvideo:v4/GenerateReachForecastRequest/currencyCode": currency_code +"/displayvideo:v4/GenerateReachForecastRequest/effectiveFrequencyBreakdownLimit": effective_frequency_breakdown_limit +"/displayvideo:v4/GenerateReachForecastRequest/minEffectiveFrequency": min_effective_frequency +"/displayvideo:v4/GenerateReachForecastRequest/plannedProducts": planned_products +"/displayvideo:v4/GenerateReachForecastRequest/plannedProducts/planned_product": planned_product +"/displayvideo:v4/GenerateReachForecastRequest/targeting": targeting +"/displayvideo:v4/GenerateReachForecastResponse": generate_reach_forecast_response +"/displayvideo:v4/GenerateReachForecastResponse/onTargetAudienceMetrics": on_target_audience_metrics +"/displayvideo:v4/GenerateReachForecastResponse/reachCurve": reach_curve "/displayvideo:v4/GeoRegionAssignedTargetingOptionDetails": geo_region_assigned_targeting_option_details "/displayvideo:v4/GeoRegionAssignedTargetingOptionDetails/displayName": display_name "/displayvideo:v4/GeoRegionAssignedTargetingOptionDetails/geoRegionType": geo_region_type @@ -257480,6 +257517,9 @@ "/displayvideo:v4/OnScreenPositionAssignedTargetingOptionDetails/targetingOptionId": targeting_option_id "/displayvideo:v4/OnScreenPositionTargetingOptionDetails": on_screen_position_targeting_option_details "/displayvideo:v4/OnScreenPositionTargetingOptionDetails/onScreenPosition": on_screen_position +"/displayvideo:v4/OnTargetAudienceMetrics": on_target_audience_metrics +"/displayvideo:v4/OnTargetAudienceMetrics/censusAudienceSize": census_audience_size +"/displayvideo:v4/OnTargetAudienceMetrics/youtubeAudienceSize": youtube_audience_size "/displayvideo:v4/OperatingSystemAssignedTargetingOptionDetails": operating_system_assigned_targeting_option_details "/displayvideo:v4/OperatingSystemAssignedTargetingOptionDetails/displayName": display_name "/displayvideo:v4/OperatingSystemAssignedTargetingOptionDetails/negative": negative @@ -257548,6 +257588,51 @@ "/displayvideo:v4/PerformanceGoalBidStrategy/maxAverageCpmBidAmountMicros": max_average_cpm_bid_amount_micros "/displayvideo:v4/PerformanceGoalBidStrategy/performanceGoalAmountMicros": performance_goal_amount_micros "/displayvideo:v4/PerformanceGoalBidStrategy/performanceGoalType": performance_goal_type +"/displayvideo:v4/PlannableLocation": plannable_location +"/displayvideo:v4/PlannableLocation/displayName": display_name +"/displayvideo:v4/PlannableLocation/geoRegionType": geo_region_type +"/displayvideo:v4/PlannableLocation/name": name +"/displayvideo:v4/PlannableLocation/plannableLocationId": plannable_location_id +"/displayvideo:v4/PlannableLocation/regionCode": region_code +"/displayvideo:v4/PlannableTargeting": plannable_targeting +"/displayvideo:v4/PlannableTargeting/ageRanges": age_ranges +"/displayvideo:v4/PlannableTargeting/ageRanges/age_range": age_range +"/displayvideo:v4/PlannableTargeting/devices": devices +"/displayvideo:v4/PlannableTargeting/devices/device": device +"/displayvideo:v4/PlannableTargeting/genders": genders +"/displayvideo:v4/PlannableTargeting/genders/gender": gender +"/displayvideo:v4/PlannableTargeting/networks": networks +"/displayvideo:v4/PlannableTargeting/networks/network": network +"/displayvideo:v4/PlannableTargeting/surfaceTargetingCombinations": surface_targeting_combinations +"/displayvideo:v4/PlannableTargeting/youtubeSelectLineups": youtube_select_lineups +"/displayvideo:v4/PlannableTargeting/youtubeSelectLineups/youtube_select_lineup": youtube_select_lineup +"/displayvideo:v4/PlannableUserInterest": plannable_user_interest +"/displayvideo:v4/PlannableUserInterest/userInterest": user_interest +"/displayvideo:v4/PlannableUserInterest/userInterestDisplayName": user_interest_display_name +"/displayvideo:v4/PlannableUserInterest/userInterestPath": user_interest_path +"/displayvideo:v4/PlannableUserInterest/userInterestType": user_interest_type +"/displayvideo:v4/PlannableUserList": plannable_user_list +"/displayvideo:v4/PlannableUserList/displayName": display_name +"/displayvideo:v4/PlannableUserList/name": name +"/displayvideo:v4/PlannableUserList/plannableStatus": plannable_status +"/displayvideo:v4/PlannableUserList/userListType": user_list_type +"/displayvideo:v4/PlannedProduct": planned_product +"/displayvideo:v4/PlannedProduct/advancedProductTargeting": advanced_product_targeting +"/displayvideo:v4/PlannedProduct/budgetMicros": budget_micros +"/displayvideo:v4/PlannedProduct/plannableProductCode": plannable_product_code +"/displayvideo:v4/PlannedProductForecast": planned_product_forecast +"/displayvideo:v4/PlannedProductForecast/effectiveFrequencyBreakdowns": effective_frequency_breakdowns +"/displayvideo:v4/PlannedProductForecast/effectiveFrequencyBreakdowns/effective_frequency_breakdown": effective_frequency_breakdown +"/displayvideo:v4/PlannedProductForecast/onTargetImpressions": on_target_impressions +"/displayvideo:v4/PlannedProductForecast/onTargetReach": on_target_reach +"/displayvideo:v4/PlannedProductForecast/totalImpressions": total_impressions +"/displayvideo:v4/PlannedProductForecast/totalReach": total_reach +"/displayvideo:v4/PlannedProductForecast/trueviewViews": trueview_views +"/displayvideo:v4/PlannedProductForecast/viewableImpressions": viewable_impressions +"/displayvideo:v4/PlannedProductReachForecast": planned_product_reach_forecast +"/displayvideo:v4/PlannedProductReachForecast/costMicros": cost_micros +"/displayvideo:v4/PlannedProductReachForecast/plannableProductCode": plannable_product_code +"/displayvideo:v4/PlannedProductReachForecast/plannedProductForecast": planned_product_forecast "/displayvideo:v4/PoiAssignedTargetingOptionDetails": poi_assigned_targeting_option_details "/displayvideo:v4/PoiAssignedTargetingOptionDetails/displayName": display_name "/displayvideo:v4/PoiAssignedTargetingOptionDetails/latitude": latitude @@ -257577,6 +257662,11 @@ "/displayvideo:v4/ProductMatchDimension": product_match_dimension "/displayvideo:v4/ProductMatchDimension/customLabel": custom_label "/displayvideo:v4/ProductMatchDimension/productOfferId": product_offer_id +"/displayvideo:v4/ProductMetadata": product_metadata +"/displayvideo:v4/ProductMetadata/displayName": display_name +"/displayvideo:v4/ProductMetadata/plannableProductCode": plannable_product_code +"/displayvideo:v4/ProductMetadata/plannableProductDescription": plannable_product_description +"/displayvideo:v4/ProductMetadata/plannableTargeting": plannable_targeting "/displayvideo:v4/ProximityLocationListAssignedTargetingOptionDetails": proximity_location_list_assigned_targeting_option_details "/displayvideo:v4/ProximityLocationListAssignedTargetingOptionDetails/proximityLocationListId": proximity_location_list_id "/displayvideo:v4/ProximityLocationListAssignedTargetingOptionDetails/proximityRadius": proximity_radius @@ -257586,6 +257676,14 @@ "/displayvideo:v4/RateDetails/minimumSpend": minimum_spend "/displayvideo:v4/RateDetails/rate": rate "/displayvideo:v4/RateDetails/unitsPurchased": units_purchased +"/displayvideo:v4/ReachCurve": reach_curve +"/displayvideo:v4/ReachCurve/reachForecasts": reach_forecasts +"/displayvideo:v4/ReachCurve/reachForecasts/reach_forecast": reach_forecast +"/displayvideo:v4/ReachForecast": reach_forecast +"/displayvideo:v4/ReachForecast/costMicros": cost_micros +"/displayvideo:v4/ReachForecast/forecast": forecast +"/displayvideo:v4/ReachForecast/plannedProductReachForecasts": planned_product_reach_forecasts +"/displayvideo:v4/ReachForecast/plannedProductReachForecasts/planned_product_reach_forecast": planned_product_reach_forecast "/displayvideo:v4/RegionalLocationListAssignedTargetingOptionDetails": regional_location_list_assigned_targeting_option_details "/displayvideo:v4/RegionalLocationListAssignedTargetingOptionDetails/negative": negative "/displayvideo:v4/RegionalLocationListAssignedTargetingOptionDetails/regionalLocationListId": regional_location_list_id @@ -257606,6 +257704,19 @@ "/displayvideo:v4/ReplaceSitesResponse": replace_sites_response "/displayvideo:v4/ReplaceSitesResponse/sites": sites "/displayvideo:v4/ReplaceSitesResponse/sites/site": site +"/displayvideo:v4/RetrievePlannableLocationsResponse": retrieve_plannable_locations_response +"/displayvideo:v4/RetrievePlannableLocationsResponse/plannableLocations": plannable_locations +"/displayvideo:v4/RetrievePlannableLocationsResponse/plannableLocations/plannable_location": plannable_location +"/displayvideo:v4/RetrievePlannableProductsResponse": retrieve_plannable_products_response +"/displayvideo:v4/RetrievePlannableProductsResponse/productMetadata": product_metadata +"/displayvideo:v4/RetrievePlannableProductsResponse/productMetadata/product_metadatum": product_metadatum +"/displayvideo:v4/RetrievePlannableUserInterestsResponse": retrieve_plannable_user_interests_response +"/displayvideo:v4/RetrievePlannableUserInterestsResponse/plannableUserInterests": plannable_user_interests +"/displayvideo:v4/RetrievePlannableUserInterestsResponse/plannableUserInterests/plannable_user_interest": plannable_user_interest +"/displayvideo:v4/RetrievePlannableUserListsResponse": retrieve_plannable_user_lists_response +"/displayvideo:v4/RetrievePlannableUserListsResponse/nextPageToken": next_page_token +"/displayvideo:v4/RetrievePlannableUserListsResponse/plannableUserLists": plannable_user_lists +"/displayvideo:v4/RetrievePlannableUserListsResponse/plannableUserLists/plannable_user_list": plannable_user_list "/displayvideo:v4/ReviewStatusInfo": review_status_info "/displayvideo:v4/ReviewStatusInfo/approvalStatus": approval_status "/displayvideo:v4/ReviewStatusInfo/contentAndPolicyReviewStatus": content_and_policy_review_status @@ -257663,10 +257774,29 @@ "/displayvideo:v4/SubExchangeAssignedTargetingOptionDetails/targetingOptionId": targeting_option_id "/displayvideo:v4/SubExchangeTargetingOptionDetails": sub_exchange_targeting_option_details "/displayvideo:v4/SubExchangeTargetingOptionDetails/displayName": display_name +"/displayvideo:v4/SurfaceTargetingCombination": surface_targeting_combination +"/displayvideo:v4/SurfaceTargetingCombination/choices": choices +"/displayvideo:v4/SurfaceTargetingCombination/choices/choice": choice +"/displayvideo:v4/SurfaceTargetingCombinations": surface_targeting_combinations +"/displayvideo:v4/SurfaceTargetingCombinations/availableSurfaceTypes": available_surface_types +"/displayvideo:v4/SurfaceTargetingCombinations/availableSurfaceTypes/available_surface_type": available_surface_type +"/displayvideo:v4/SurfaceTargetingCombinations/validSurfaceCombinations": valid_surface_combinations +"/displayvideo:v4/SurfaceTargetingCombinations/validSurfaceCombinations/valid_surface_combination": valid_surface_combination +"/displayvideo:v4/SurfaceTargetingSettings": surface_targeting_settings +"/displayvideo:v4/SurfaceTargetingSettings/surfaces": surfaces +"/displayvideo:v4/SurfaceTargetingSettings/surfaces/surface": surface "/displayvideo:v4/TargetFrequency": target_frequency "/displayvideo:v4/TargetFrequency/targetCount": target_count "/displayvideo:v4/TargetFrequency/timeUnit": time_unit "/displayvideo:v4/TargetFrequency/timeUnitCount": time_unit_count +"/displayvideo:v4/Targeting": targeting +"/displayvideo:v4/Targeting/ageRange": age_range +"/displayvideo:v4/Targeting/devices": devices +"/displayvideo:v4/Targeting/devices/device": device +"/displayvideo:v4/Targeting/genders": genders +"/displayvideo:v4/Targeting/genders/gender": gender +"/displayvideo:v4/Targeting/plannableLocationIds": plannable_location_ids +"/displayvideo:v4/Targeting/plannableLocationIds/plannable_location_id": plannable_location_id "/displayvideo:v4/TargetingExpansionConfig": targeting_expansion_config "/displayvideo:v4/TargetingExpansionConfig/audienceExpansionLevel": audience_expansion_level "/displayvideo:v4/TargetingExpansionConfig/audienceExpansionSeedListExcluded": audience_expansion_seed_list_excluded @@ -257770,6 +257900,9 @@ "/displayvideo:v4/User/lastLoginTime": last_login_time "/displayvideo:v4/User/name": name "/displayvideo:v4/User/userId": user_id +"/displayvideo:v4/UserInterest": user_interest +"/displayvideo:v4/UserInterest/userInterestCategory": user_interest_category +"/displayvideo:v4/UserInterest/userInterestUserList": user_interest_user_list "/displayvideo:v4/UserRewardedContentAssignedTargetingOptionDetails": user_rewarded_content_assigned_targeting_option_details "/displayvideo:v4/UserRewardedContentAssignedTargetingOptionDetails/targetingOptionId": targeting_option_id "/displayvideo:v4/UserRewardedContentAssignedTargetingOptionDetails/userRewardedContent": user_rewarded_content @@ -257823,6 +257956,11 @@ "/displayvideo:v4/ViewabilityAssignedTargetingOptionDetails/viewability": viewability "/displayvideo:v4/ViewabilityTargetingOptionDetails": viewability_targeting_option_details "/displayvideo:v4/ViewabilityTargetingOptionDetails/viewability": viewability +"/displayvideo:v4/YouTubeSelectLineUp": you_tube_select_line_up +"/displayvideo:v4/YouTubeSelectLineUp/displayName": display_name +"/displayvideo:v4/YouTubeSelectLineUp/lineupId": lineup_id +"/displayvideo:v4/YouTubeSelectSettings": you_tube_select_settings +"/displayvideo:v4/YouTubeSelectSettings/lineupId": lineup_id "/displayvideo:v4/YoutubeAndPartnersBiddingStrategy": youtube_and_partners_bidding_strategy "/displayvideo:v4/YoutubeAndPartnersBiddingStrategy/adGroupEffectiveTargetCpaSource": ad_group_effective_target_cpa_source "/displayvideo:v4/YoutubeAndPartnersBiddingStrategy/adGroupEffectiveTargetCpaValue": ad_group_effective_target_cpa_value @@ -258315,6 +258453,21 @@ "/displayvideo:v4/displayvideo.advertisers.patch": patch_advertiser "/displayvideo:v4/displayvideo.advertisers.patch/advertiserId": advertiser_id "/displayvideo:v4/displayvideo.advertisers.patch/updateMask": update_mask +"/displayvideo:v4/displayvideo.advertisers.reachForecast.generateReachForecast": generate_reach_forecast +"/displayvideo:v4/displayvideo.advertisers.reachForecast.generateReachForecast/advertiserId": advertiser_id +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableLocations": retrieve_advertiser_reach_forecast_plannable_locations +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableLocations/advertiserId": advertiser_id +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableProducts": retrieve_advertiser_reach_forecast_plannable_products +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableProducts/advertiserId": advertiser_id +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableProducts/plannableLocationId": plannable_location_id +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableUserInterests": retrieve_advertiser_reach_forecast_plannable_user_interests +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableUserInterests/advertiserId": advertiser_id +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableUserInterests/productCategory": product_category +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableUserLists": retrieve_advertiser_reach_forecast_plannable_user_lists +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableUserLists/advertiserId": advertiser_id +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableUserLists/filter": filter +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableUserLists/pageSize": page_size +"/displayvideo:v4/displayvideo.advertisers.reachForecast.retrievePlannableUserLists/pageToken": page_token "/displayvideo:v4/displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create": create_advertiser_targeting_type_assigned_targeting_option "/displayvideo:v4/displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create/advertiserId": advertiser_id "/displayvideo:v4/displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create/targetingType": targeting_type diff --git a/generated/google-apis-displayvideo_v4/CHANGELOG.md b/generated/google-apis-displayvideo_v4/CHANGELOG.md index db030068c5d..e469af66d9b 100644 --- a/generated/google-apis-displayvideo_v4/CHANGELOG.md +++ b/generated/google-apis-displayvideo_v4/CHANGELOG.md @@ -1,8 +1,8 @@ # Release history for google-apis-displayvideo_v4 -### v0.22.0 (2026-06-21) +### v0.22.0 (2026-06-28) -* Regenerated from discovery document revision 20260617 +* Regenerated from discovery document revision 20260623 ### v0.21.0 (2026-06-14) diff --git a/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/classes.rb b/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/classes.rb index f22905304c1..b2b0331e7d4 100644 --- a/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/classes.rb +++ b/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/classes.rb @@ -1198,6 +1198,89 @@ def update!(**args) end end + # Product-specific targeting overrides. + class AdvancedProductTargeting + include Google::Apis::Core::Hashable + + # Optional. The age range to target. + # Corresponds to the JSON property `ageRange` + # @return [String] + attr_accessor :age_range + + # A date range. + # Corresponds to the JSON property `dateRange` + # @return [Google::Apis::DisplayvideoV4::DateRange] + attr_accessor :date_range + + # Optional. The devices to target. + # Corresponds to the JSON property `devices` + # @return [Array] + attr_accessor :devices + + # Settings that control the number of times a user may be shown with the same ad + # during a given time period. + # Corresponds to the JSON property `frequencyCap` + # @return [Google::Apis::DisplayvideoV4::FrequencyCap] + attr_accessor :frequency_cap + + # Optional. The gender options to target. + # Corresponds to the JSON property `genders` + # @return [Array] + attr_accessor :genders + + # Optional. Plannable location IDs to target. + # Corresponds to the JSON property `plannableLocationIds` + # @return [Array] + attr_accessor :plannable_location_ids + + # Surface targeting selection. + # Corresponds to the JSON property `surfaceTargetingSettings` + # @return [Google::Apis::DisplayvideoV4::SurfaceTargetingSettings] + attr_accessor :surface_targeting_settings + + # Setting that controls the average number of times the ads will show to the + # same person over a certain period of time. + # Corresponds to the JSON property `targetFrequency` + # @return [Google::Apis::DisplayvideoV4::TargetFrequency] + attr_accessor :target_frequency + + # Optional. The user interest IDs to target. Plannable user interests can be + # retrieved using the `RetrievePlannableUserInterests` method. + # Corresponds to the JSON property `userInterestIds` + # @return [Array] + attr_accessor :user_interest_ids + + # Optional. The user list IDs to target. Plannable user lists can be retrieved + # using the `RetrievePlannableUserInterests` method. + # Corresponds to the JSON property `userListIds` + # @return [Array] + attr_accessor :user_list_ids + + # Settings for YouTube Select Lineups. + # Corresponds to the JSON property `youtubeSelectSettings` + # @return [Google::Apis::DisplayvideoV4::YouTubeSelectSettings] + attr_accessor :youtube_select_settings + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @age_range = args[:age_range] if args.key?(:age_range) + @date_range = args[:date_range] if args.key?(:date_range) + @devices = args[:devices] if args.key?(:devices) + @frequency_cap = args[:frequency_cap] if args.key?(:frequency_cap) + @genders = args[:genders] if args.key?(:genders) + @plannable_location_ids = args[:plannable_location_ids] if args.key?(:plannable_location_ids) + @surface_targeting_settings = args[:surface_targeting_settings] if args.key?(:surface_targeting_settings) + @target_frequency = args[:target_frequency] if args.key?(:target_frequency) + @user_interest_ids = args[:user_interest_ids] if args.key?(:user_interest_ids) + @user_list_ids = args[:user_list_ids] if args.key?(:user_list_ids) + @youtube_select_settings = args[:youtube_select_settings] if args.key?(:youtube_select_settings) + end + end + # A single advertiser in Display & Video 360 (DV360). class Advertiser include Google::Apis::Core::Hashable @@ -4166,6 +4249,31 @@ def update!(**args) end end + # The duration of the reach plan. + class CampaignDuration + include Google::Apis::Core::Hashable + + # A date range. + # Corresponds to the JSON property `dateRange` + # @return [Google::Apis::DisplayvideoV4::DateRange] + attr_accessor :date_range + + # Required. The number of days the plan covers. + # Corresponds to the JSON property `durationDays` + # @return [Fixnum] + attr_accessor :duration_days + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @date_range = args[:date_range] if args.key?(:date_range) + @duration_days = args[:duration_days] if args.key?(:duration_days) + end + end + # Settings that track the planned spend and duration of a campaign. class CampaignFlight include Google::Apis::Core::Hashable @@ -7531,6 +7639,57 @@ def update!(**args) end end + # A breakdown of the number of unique people reached at a given effective + # frequency. + class EffectiveFrequencyBreakdown + include Google::Apis::Core::Hashable + + # The number of unique individuals, including co-viewers, exactly matching the + # targeting that were served the ad at least the number of times dictated by the + # effective_frequency. + # Corresponds to the JSON property `effectiveCoviewReach` + # @return [Fixnum] + attr_accessor :effective_coview_reach + + # The set effective frequency. + # Corresponds to the JSON property `effectiveFrequency` + # @return [Fixnum] + attr_accessor :effective_frequency + + # The total number of unique individuals, including co-viewers that were served + # the ad at least the number of times dictated by the effective_frequency. This + # includes individuals that may fall outside of targeting. + # Corresponds to the JSON property `onTargetEffectiveCoviewReach` + # @return [Fixnum] + attr_accessor :on_target_effective_coview_reach + + # The number of unique individuals exactly matching the targeting that were + # served the ad at least the number of times dictated by the effective_frequency. + # Corresponds to the JSON property `onTargetReach` + # @return [Fixnum] + attr_accessor :on_target_reach + + # The total number of unique individuals that were served the ad at least the + # number of times dictated by the effective_frequency. This includes individuals + # that may fall outside of targeting. + # Corresponds to the JSON property `totalReach` + # @return [Fixnum] + attr_accessor :total_reach + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @effective_coview_reach = args[:effective_coview_reach] if args.key?(:effective_coview_reach) + @effective_frequency = args[:effective_frequency] if args.key?(:effective_frequency) + @on_target_effective_coview_reach = args[:on_target_effective_coview_reach] if args.key?(:on_target_effective_coview_reach) + @on_target_reach = args[:on_target_reach] if args.key?(:on_target_reach) + @total_reach = args[:total_reach] if args.key?(:total_reach) + end + end + # A generic empty message that you can re-use to avoid defining duplicated empty # messages in your APIs. A typical example is to use it as the request or the # response type of an API method. For instance: service Foo ` rpc Bar(google. @@ -8218,6 +8377,89 @@ def update!(**args) end end + # Request message for ReachForecastService.GenerateReachForecast. + class GenerateReachForecastRequest + include Google::Apis::Core::Hashable + + # The duration of the reach plan. + # Corresponds to the JSON property `campaignDuration` + # @return [Google::Apis::DisplayvideoV4::CampaignDuration] + attr_accessor :campaign_duration + + # Required. The currency code for the plan in ISO 4217 format. + # Corresponds to the JSON property `currencyCode` + # @return [String] + attr_accessor :currency_code + + # Optional. The highest minimum effective frequency to include in + # PlannedProductForecast.effective_frequency_breakdowns. Must be between 1 and + # 10, inclusive. If not specified, PlannedProductForecast. + # effective_frequency_breakdowns will not be populated. If set, this value will + # also be used as the minimum effective frequency for reach metrics reporting. + # This field cannot be combined with the min_effective_frequency field. + # Corresponds to the JSON property `effectiveFrequencyBreakdownLimit` + # @return [Fixnum] + attr_accessor :effective_frequency_breakdown_limit + + # Optional. The minimum effective frequency for the reported reach metrics. This + # is the smallest number of times a customer must be exposed to the ad for it to + # be considered effective. This setting only impacts reporting. Must be between + # 1 and 10, inclusive. If not specified, a default of 1 is applied. This field + # cannot be combined with effective_frequency_breakdown_limit. + # Corresponds to the JSON property `minEffectiveFrequency` + # @return [Fixnum] + attr_accessor :min_effective_frequency + + # Required. The list of line items to include in the forecast. + # Corresponds to the JSON property `plannedProducts` + # @return [Array] + attr_accessor :planned_products + + # Targeting settings for a planned campaign. + # Corresponds to the JSON property `targeting` + # @return [Google::Apis::DisplayvideoV4::Targeting] + attr_accessor :targeting + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @campaign_duration = args[:campaign_duration] if args.key?(:campaign_duration) + @currency_code = args[:currency_code] if args.key?(:currency_code) + @effective_frequency_breakdown_limit = args[:effective_frequency_breakdown_limit] if args.key?(:effective_frequency_breakdown_limit) + @min_effective_frequency = args[:min_effective_frequency] if args.key?(:min_effective_frequency) + @planned_products = args[:planned_products] if args.key?(:planned_products) + @targeting = args[:targeting] if args.key?(:targeting) + end + end + + # Response message for ReachForecastService.GenerateReachForecast. + class GenerateReachForecastResponse + include Google::Apis::Core::Hashable + + # Estimated audience sizes for a targeted geography. + # Corresponds to the JSON property `onTargetAudienceMetrics` + # @return [Google::Apis::DisplayvideoV4::OnTargetAudienceMetrics] + attr_accessor :on_target_audience_metrics + + # The generated reach curve. + # Corresponds to the JSON property `reachCurve` + # @return [Google::Apis::DisplayvideoV4::ReachCurve] + attr_accessor :reach_curve + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @on_target_audience_metrics = args[:on_target_audience_metrics] if args.key?(:on_target_audience_metrics) + @reach_curve = args[:reach_curve] if args.key?(:reach_curve) + end + end + # Details for assigned geographic region targeting option. This will be # populated in the details field of an AssignedTargetingOption when # targeting_type is `TARGETING_TYPE_GEO_REGION`. @@ -11750,6 +11992,31 @@ def update!(**args) end end + # Estimated audience sizes for a targeted geography. + class OnTargetAudienceMetrics + include Google::Apis::Core::Hashable + + # Size of the audience based on the census data of the targeted geography. + # Corresponds to the JSON property `censusAudienceSize` + # @return [Fixnum] + attr_accessor :census_audience_size + + # Estimated size of the YouTube audience. + # Corresponds to the JSON property `youtubeAudienceSize` + # @return [Fixnum] + attr_accessor :youtube_audience_size + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @census_audience_size = args[:census_audience_size] if args.key?(:census_audience_size) + @youtube_audience_size = args[:youtube_audience_size] if args.key?(:youtube_audience_size) + end + end + # Assigned operating system targeting option details. This will be populated in # the operating_system_details field when targeting_type is ` # TARGETING_TYPE_OPERATING_SYSTEM`. @@ -12362,6 +12629,292 @@ def update!(**args) end end + # A plannable location used for forecasting. + class PlannableLocation + include Google::Apis::Core::Hashable + + # Output only. The display name of the location, for example "Algeria". + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # Output only. The type of location. + # Corresponds to the JSON property `geoRegionType` + # @return [String] + attr_accessor :geo_region_type + + # Output only. The resource name of the plannable location. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. The plannable location ID. + # Corresponds to the JSON property `plannableLocationId` + # @return [Fixnum] + attr_accessor :plannable_location_id + + # Output only. The region code of the location, for example "DZ" for Algeria. + # Corresponds to the JSON property `regionCode` + # @return [String] + attr_accessor :region_code + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @display_name = args[:display_name] if args.key?(:display_name) + @geo_region_type = args[:geo_region_type] if args.key?(:geo_region_type) + @name = args[:name] if args.key?(:name) + @plannable_location_id = args[:plannable_location_id] if args.key?(:plannable_location_id) + @region_code = args[:region_code] if args.key?(:region_code) + end + end + + # Targeting capabilities for a given product. + class PlannableTargeting + include Google::Apis::Core::Hashable + + # Output only. Allowed plannable age ranges for the product. Actual targeting is + # computed by mapping this age range onto standard Google age targeting. + # Corresponds to the JSON property `ageRanges` + # @return [Array] + attr_accessor :age_ranges + + # Output only. Targetable devices for the ad product. + # Corresponds to the JSON property `devices` + # @return [Array] + attr_accessor :devices + + # Output only. Targetable genders for the ad product. + # Corresponds to the JSON property `genders` + # @return [Array] + attr_accessor :genders + + # Output only. Targetable networks for the ad product. + # Corresponds to the JSON property `networks` + # @return [Array] + attr_accessor :networks + + # Surface targeting rules. + # Corresponds to the JSON property `surfaceTargetingCombinations` + # @return [Google::Apis::DisplayvideoV4::SurfaceTargetingCombinations] + attr_accessor :surface_targeting_combinations + + # Output only. Targetable YouTube Select Lineups for the ad product. + # Corresponds to the JSON property `youtubeSelectLineups` + # @return [Array] + attr_accessor :youtube_select_lineups + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @age_ranges = args[:age_ranges] if args.key?(:age_ranges) + @devices = args[:devices] if args.key?(:devices) + @genders = args[:genders] if args.key?(:genders) + @networks = args[:networks] if args.key?(:networks) + @surface_targeting_combinations = args[:surface_targeting_combinations] if args.key?(:surface_targeting_combinations) + @youtube_select_lineups = args[:youtube_select_lineups] if args.key?(:youtube_select_lineups) + end + end + + # A plannable user interest used for targeting. + class PlannableUserInterest + include Google::Apis::Core::Hashable + + # The identifier for a user interest. + # Corresponds to the JSON property `userInterest` + # @return [Google::Apis::DisplayvideoV4::UserInterest] + attr_accessor :user_interest + + # Output only. The display name of the interest, for example "Outdoor + # Enthusiasts". + # Corresponds to the JSON property `userInterestDisplayName` + # @return [String] + attr_accessor :user_interest_display_name + + # Output only. The category path of the interest. + # Corresponds to the JSON property `userInterestPath` + # @return [String] + attr_accessor :user_interest_path + + # Output only. The type of audience, e.g., "AFFINITY", "IN_MARKET". + # Corresponds to the JSON property `userInterestType` + # @return [String] + attr_accessor :user_interest_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @user_interest = args[:user_interest] if args.key?(:user_interest) + @user_interest_display_name = args[:user_interest_display_name] if args.key?(:user_interest_display_name) + @user_interest_path = args[:user_interest_path] if args.key?(:user_interest_path) + @user_interest_type = args[:user_interest_type] if args.key?(:user_interest_type) + end + end + + # A plannable user list used for reach forecasting. + class PlannableUserList + include Google::Apis::Core::Hashable + + # Output only. The display name of the user list. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # Output only. The resource name identifying the user list. Format: `advertisers/ + # `advertiser_id`/userLists/`user_list_id`` + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Output only. The plannability status of the user list. + # Corresponds to the JSON property `plannableStatus` + # @return [String] + attr_accessor :plannable_status + + # Output only. The type of the user list. + # Corresponds to the JSON property `userListType` + # @return [String] + attr_accessor :user_list_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @display_name = args[:display_name] if args.key?(:display_name) + @name = args[:name] if args.key?(:name) + @plannable_status = args[:plannable_status] if args.key?(:plannable_status) + @user_list_type = args[:user_list_type] if args.key?(:user_list_type) + end + end + + # Configuration for a specific product in the plan. + class PlannedProduct + include Google::Apis::Core::Hashable + + # Product-specific targeting overrides. + # Corresponds to the JSON property `advancedProductTargeting` + # @return [Google::Apis::DisplayvideoV4::AdvancedProductTargeting] + attr_accessor :advanced_product_targeting + + # Required. The budget for this product in micros. + # Corresponds to the JSON property `budgetMicros` + # @return [Fixnum] + attr_accessor :budget_micros + + # Required. The code for the product, e.g. "VIDEO_REACH_CAMPAIGN". + # Corresponds to the JSON property `plannableProductCode` + # @return [String] + attr_accessor :plannable_product_code + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @advanced_product_targeting = args[:advanced_product_targeting] if args.key?(:advanced_product_targeting) + @budget_micros = args[:budget_micros] if args.key?(:budget_micros) + @plannable_product_code = args[:plannable_product_code] if args.key?(:plannable_product_code) + end + end + + # Performance metrics for a forecast point. + class PlannedProductForecast + include Google::Apis::Core::Hashable + + # A list of effective frequency breakdowns. + # Corresponds to the JSON property `effectiveFrequencyBreakdowns` + # @return [Array] + attr_accessor :effective_frequency_breakdowns + + # Number of on-target impressions. + # Corresponds to the JSON property `onTargetImpressions` + # @return [Fixnum] + attr_accessor :on_target_impressions + + # Number of unique people reached that match the on-target definition. + # Corresponds to the JSON property `onTargetReach` + # @return [Fixnum] + attr_accessor :on_target_reach + + # Total number of impressions. + # Corresponds to the JSON property `totalImpressions` + # @return [Fixnum] + attr_accessor :total_impressions + + # Total number of unique people reached. + # Corresponds to the JSON property `totalReach` + # @return [Fixnum] + attr_accessor :total_reach + + # Number of TrueView views. + # Corresponds to the JSON property `trueviewViews` + # @return [Fixnum] + attr_accessor :trueview_views + + # Number of viewable impressions. + # Corresponds to the JSON property `viewableImpressions` + # @return [Fixnum] + attr_accessor :viewable_impressions + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @effective_frequency_breakdowns = args[:effective_frequency_breakdowns] if args.key?(:effective_frequency_breakdowns) + @on_target_impressions = args[:on_target_impressions] if args.key?(:on_target_impressions) + @on_target_reach = args[:on_target_reach] if args.key?(:on_target_reach) + @total_impressions = args[:total_impressions] if args.key?(:total_impressions) + @total_reach = args[:total_reach] if args.key?(:total_reach) + @trueview_views = args[:trueview_views] if args.key?(:trueview_views) + @viewable_impressions = args[:viewable_impressions] if args.key?(:viewable_impressions) + end + end + + # Performance forecast for a specific product. + class PlannedProductReachForecast + include Google::Apis::Core::Hashable + + # The cost in micros for this product. + # Corresponds to the JSON property `costMicros` + # @return [Fixnum] + attr_accessor :cost_micros + + # The code for the product. + # Corresponds to the JSON property `plannableProductCode` + # @return [String] + attr_accessor :plannable_product_code + + # Performance metrics for a forecast point. + # Corresponds to the JSON property `plannedProductForecast` + # @return [Google::Apis::DisplayvideoV4::PlannedProductForecast] + attr_accessor :planned_product_forecast + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cost_micros = args[:cost_micros] if args.key?(:cost_micros) + @plannable_product_code = args[:plannable_product_code] if args.key?(:plannable_product_code) + @planned_product_forecast = args[:planned_product_forecast] if args.key?(:planned_product_forecast) + end + end + # Details for assigned POI targeting option. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_POI`. @@ -12602,6 +13155,44 @@ def update!(**args) end end + # Metadata for a plannable product. + class ProductMetadata + include Google::Apis::Core::Hashable + + # Output only. The name associated with the ad product. For example: "Video View + # Campaign". + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # Output only. The plannable product code (e.g. "YOUTUBE_REACH_MIX"). + # Corresponds to the JSON property `plannableProductCode` + # @return [String] + attr_accessor :plannable_product_code + + # Output only. The plain-text description of the ad product. + # Corresponds to the JSON property `plannableProductDescription` + # @return [String] + attr_accessor :plannable_product_description + + # Targeting capabilities for a given product. + # Corresponds to the JSON property `plannableTargeting` + # @return [Google::Apis::DisplayvideoV4::PlannableTargeting] + attr_accessor :plannable_targeting + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @display_name = args[:display_name] if args.key?(:display_name) + @plannable_product_code = args[:plannable_product_code] if args.key?(:plannable_product_code) + @plannable_product_description = args[:plannable_product_description] if args.key?(:plannable_product_description) + @plannable_targeting = args[:plannable_targeting] if args.key?(:plannable_targeting) + end + end + # Targeting details for proximity location list. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. @@ -12678,6 +13269,56 @@ def update!(**args) end end + # The generated reach curve. + class ReachCurve + include Google::Apis::Core::Hashable + + # Points along the curve, ordered by cost. + # Corresponds to the JSON property `reachForecasts` + # @return [Array] + attr_accessor :reach_forecasts + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @reach_forecasts = args[:reach_forecasts] if args.key?(:reach_forecasts) + end + end + + # A single point in the reach curve. + class ReachForecast + include Google::Apis::Core::Hashable + + # Total cost for this point in micros. + # Corresponds to the JSON property `costMicros` + # @return [Fixnum] + attr_accessor :cost_micros + + # Performance metrics for a forecast point. + # Corresponds to the JSON property `forecast` + # @return [Google::Apis::DisplayvideoV4::PlannedProductForecast] + attr_accessor :forecast + + # Breakdown for individual products at this cost point. + # Corresponds to the JSON property `plannedProductReachForecasts` + # @return [Array] + attr_accessor :planned_product_reach_forecasts + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @cost_micros = args[:cost_micros] if args.key?(:cost_micros) + @forecast = args[:forecast] if args.key?(:forecast) + @planned_product_reach_forecasts = args[:planned_product_reach_forecasts] if args.key?(:planned_product_reach_forecasts) + end + end + # Targeting details for regional location list. This will be populated in the # details field of an AssignedTargetingOption when targeting_type is ` # TARGETING_TYPE_REGIONAL_LOCATION_LIST`. @@ -12826,6 +13467,88 @@ def update!(**args) end end + # Response for RetrievePlannableLocations + class RetrievePlannableLocationsResponse + include Google::Apis::Core::Hashable + + # Output only. The list of plannable locations. + # Corresponds to the JSON property `plannableLocations` + # @return [Array] + attr_accessor :plannable_locations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @plannable_locations = args[:plannable_locations] if args.key?(:plannable_locations) + end + end + + # Response for RetrievePlannableProducts + class RetrievePlannableProductsResponse + include Google::Apis::Core::Hashable + + # Output only. The list of product metadata showing targeting possibilities. + # Corresponds to the JSON property `productMetadata` + # @return [Array] + attr_accessor :product_metadata + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @product_metadata = args[:product_metadata] if args.key?(:product_metadata) + end + end + + # Response for RetrievePlannableUserInterests. + class RetrievePlannableUserInterestsResponse + include Google::Apis::Core::Hashable + + # The list of plannable user interests (Google Audiences). + # Corresponds to the JSON property `plannableUserInterests` + # @return [Array] + attr_accessor :plannable_user_interests + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @plannable_user_interests = args[:plannable_user_interests] if args.key?(:plannable_user_interests) + end + end + + # Response for RetrievePlannableUserLists. + class RetrievePlannableUserListsResponse + include Google::Apis::Core::Hashable + + # Output only. A token to retrieve the next page of results. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # Output only. The list of plannable user lists. + # Corresponds to the JSON property `plannableUserLists` + # @return [Array] + attr_accessor :plannable_user_lists + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @plannable_user_lists = args[:plannable_user_lists] if args.key?(:plannable_user_lists) + end + end + # Review statuses for the creative. class ReviewStatusInfo include Google::Apis::Core::Hashable @@ -13291,6 +14014,69 @@ def update!(**args) end end + # A valid combination of surfaces. + class SurfaceTargetingCombination + include Google::Apis::Core::Hashable + + # Output only. The combination of surfaces. + # Corresponds to the JSON property `choices` + # @return [Array] + attr_accessor :choices + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @choices = args[:choices] if args.key?(:choices) + end + end + + # Surface targeting rules. + class SurfaceTargetingCombinations + include Google::Apis::Core::Hashable + + # Output only. The surface types available. + # Corresponds to the JSON property `availableSurfaceTypes` + # @return [Array] + attr_accessor :available_surface_types + + # Output only. Valid combinations of surfaces that can be selected together. + # Corresponds to the JSON property `validSurfaceCombinations` + # @return [Array] + attr_accessor :valid_surface_combinations + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @available_surface_types = args[:available_surface_types] if args.key?(:available_surface_types) + @valid_surface_combinations = args[:valid_surface_combinations] if args.key?(:valid_surface_combinations) + end + end + + # Surface targeting selection. + class SurfaceTargetingSettings + include Google::Apis::Core::Hashable + + # Optional. The surfaces to target. + # Corresponds to the JSON property `surfaces` + # @return [Array] + attr_accessor :surfaces + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @surfaces = args[:surfaces] if args.key?(:surfaces) + end + end + # Setting that controls the average number of times the ads will show to the # same person over a certain period of time. class TargetFrequency @@ -13327,6 +14113,44 @@ def update!(**args) end end + # Targeting settings for a planned campaign. + class Targeting + include Google::Apis::Core::Hashable + + # Optional. The age range to target. + # Corresponds to the JSON property `ageRange` + # @return [String] + attr_accessor :age_range + + # Optional. The devices to target. + # Corresponds to the JSON property `devices` + # @return [Array] + attr_accessor :devices + + # Optional. The gender options to target. + # Corresponds to the JSON property `genders` + # @return [Array] + attr_accessor :genders + + # Required. IDs of plannable locations to target. Plannable locations can be + # retrieved using the `RetrievePlannableLocations` method. + # Corresponds to the JSON property `plannableLocationIds` + # @return [Array] + attr_accessor :plannable_location_ids + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @age_range = args[:age_range] if args.key?(:age_range) + @devices = args[:devices] if args.key?(:devices) + @genders = args[:genders] if args.key?(:genders) + @plannable_location_ids = args[:plannable_location_ids] if args.key?(:plannable_location_ids) + end + end + # Settings that control the [optimized targeting](//support.google.com/ # displayvideo/answer/12060859) settings of the line item. class TargetingExpansionConfig @@ -14156,6 +14980,35 @@ def update!(**args) end end + # The identifier for a user interest. + class UserInterest + include Google::Apis::Core::Hashable + + # Output only. The resource name of the interest category. Populated when ` + # product_category` is "Youtube". Format: customers/`customer_id`/userInterests/` + # user_interest_id` + # Corresponds to the JSON property `userInterestCategory` + # @return [String] + attr_accessor :user_interest_category + + # Output only. The resource name of the user list. Populated when ` + # product_category` is "Open Auction". Format: customers/`customer_id`/userLists/ + # `user_list_id` + # Corresponds to the JSON property `userInterestUserList` + # @return [String] + attr_accessor :user_interest_user_list + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @user_interest_category = args[:user_interest_category] if args.key?(:user_interest_category) + @user_interest_user_list = args[:user_interest_user_list] if args.key?(:user_interest_user_list) + end + end + # User rewarded content targeting option details. This will be populated in the # user_rewarded_content_details field when targeting_type is ` # TARGETING_TYPE_USER_REWARDED_CONTENT`. @@ -14523,6 +15376,50 @@ def update!(**args) end end + # A Plannable YouTube Select Lineup for product targeting. + class YouTubeSelectLineUp + include Google::Apis::Core::Hashable + + # Output only. The display name of the YouTube Select Lineup. + # Corresponds to the JSON property `displayName` + # @return [String] + attr_accessor :display_name + + # Output only. The ID of the YouTube Select Lineup. + # Corresponds to the JSON property `lineupId` + # @return [Fixnum] + attr_accessor :lineup_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @display_name = args[:display_name] if args.key?(:display_name) + @lineup_id = args[:lineup_id] if args.key?(:lineup_id) + end + end + + # Settings for YouTube Select Lineups. + class YouTubeSelectSettings + include Google::Apis::Core::Hashable + + # Optional. The ID of the YouTube Select Lineup. + # Corresponds to the JSON property `lineupId` + # @return [Fixnum] + attr_accessor :lineup_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @lineup_id = args[:lineup_id] if args.key?(:lineup_id) + end + end + # Settings that control the bid strategy for YouTube and Partners resources. class YoutubeAndPartnersBiddingStrategy include Google::Apis::Core::Hashable diff --git a/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/gem_version.rb b/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/gem_version.rb index 01fcd89ad94..c03d33cc336 100644 --- a/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/gem_version.rb +++ b/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/gem_version.rb @@ -22,7 +22,7 @@ module DisplayvideoV4 GENERATOR_VERSION = "0.19.0" # Revision of the discovery document this client was generated from - REVISION = "20260617" + REVISION = "20260623" end end end diff --git a/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/representations.rb b/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/representations.rb index 32f5a729018..7999d5b4f77 100644 --- a/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/representations.rb +++ b/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/representations.rb @@ -202,6 +202,12 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class AdvancedProductTargeting + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class Advertiser class Representation < Google::Apis::Core::JsonRepresentation; end @@ -628,6 +634,12 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class CampaignDuration + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class CampaignFlight class Representation < Google::Apis::Core::JsonRepresentation; end @@ -1132,6 +1144,12 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class EffectiveFrequencyBreakdown + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class Empty class Representation < Google::Apis::Core::JsonRepresentation; end @@ -1240,6 +1258,18 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class GenerateReachForecastRequest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class GenerateReachForecastResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class GeoRegionAssignedTargetingOptionDetails class Representation < Google::Apis::Core::JsonRepresentation; end @@ -1804,6 +1834,12 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class OnTargetAudienceMetrics + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class OperatingSystemAssignedTargetingOptionDetails class Representation < Google::Apis::Core::JsonRepresentation; end @@ -1900,6 +1936,48 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class PlannableLocation + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PlannableTargeting + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PlannableUserInterest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PlannableUserList + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PlannedProduct + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PlannedProductForecast + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class PlannedProductReachForecast + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class PoiAssignedTargetingOptionDetails class Representation < Google::Apis::Core::JsonRepresentation; end @@ -1942,6 +2020,12 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class ProductMetadata + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class ProximityLocationListAssignedTargetingOptionDetails class Representation < Google::Apis::Core::JsonRepresentation; end @@ -1954,6 +2038,18 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class ReachCurve + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class ReachForecast + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class RegionalLocationListAssignedTargetingOptionDetails class Representation < Google::Apis::Core::JsonRepresentation; end @@ -1990,6 +2086,30 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class RetrievePlannableLocationsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RetrievePlannableProductsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RetrievePlannableUserInterestsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class RetrievePlannableUserListsResponse + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class ReviewStatusInfo class Representation < Google::Apis::Core::JsonRepresentation; end @@ -2080,12 +2200,36 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class SurfaceTargetingCombination + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SurfaceTargetingCombinations + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class SurfaceTargetingSettings + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class TargetFrequency class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class Targeting + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class TargetingExpansionConfig class Representation < Google::Apis::Core::JsonRepresentation; end @@ -2182,6 +2326,12 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class UserInterest + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class UserRewardedContentAssignedTargetingOptionDetails class Representation < Google::Apis::Core::JsonRepresentation; end @@ -2248,6 +2398,18 @@ class Representation < Google::Apis::Core::JsonRepresentation; end include Google::Apis::Core::JsonObjectSupport end + class YouTubeSelectLineUp + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + + class YouTubeSelectSettings + class Representation < Google::Apis::Core::JsonRepresentation; end + + include Google::Apis::Core::JsonObjectSupport + end + class YoutubeAndPartnersBiddingStrategy class Representation < Google::Apis::Core::JsonRepresentation; end @@ -2695,6 +2857,28 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class AdvancedProductTargeting + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :age_range, as: 'ageRange' + property :date_range, as: 'dateRange', class: Google::Apis::DisplayvideoV4::DateRange, decorator: Google::Apis::DisplayvideoV4::DateRange::Representation + + collection :devices, as: 'devices' + property :frequency_cap, as: 'frequencyCap', class: Google::Apis::DisplayvideoV4::FrequencyCap, decorator: Google::Apis::DisplayvideoV4::FrequencyCap::Representation + + collection :genders, as: 'genders' + collection :plannable_location_ids, as: 'plannableLocationIds' + property :surface_targeting_settings, as: 'surfaceTargetingSettings', class: Google::Apis::DisplayvideoV4::SurfaceTargetingSettings, decorator: Google::Apis::DisplayvideoV4::SurfaceTargetingSettings::Representation + + property :target_frequency, as: 'targetFrequency', class: Google::Apis::DisplayvideoV4::TargetFrequency, decorator: Google::Apis::DisplayvideoV4::TargetFrequency::Representation + + collection :user_interest_ids, as: 'userInterestIds' + collection :user_list_ids, as: 'userListIds' + property :youtube_select_settings, as: 'youtubeSelectSettings', class: Google::Apis::DisplayvideoV4::YouTubeSelectSettings, decorator: Google::Apis::DisplayvideoV4::YouTubeSelectSettings::Representation + + end + end + class Advertiser # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -3508,6 +3692,15 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class CampaignDuration + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :date_range, as: 'dateRange', class: Google::Apis::DisplayvideoV4::DateRange, decorator: Google::Apis::DisplayvideoV4::DateRange::Representation + + property :duration_days, as: 'durationDays' + end + end + class CampaignFlight # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -4387,6 +4580,17 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class EffectiveFrequencyBreakdown + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :effective_coview_reach, :numeric_string => true, as: 'effectiveCoviewReach' + property :effective_frequency, as: 'effectiveFrequency' + property :on_target_effective_coview_reach, :numeric_string => true, as: 'onTargetEffectiveCoviewReach' + property :on_target_reach, :numeric_string => true, as: 'onTargetReach' + property :total_reach, :numeric_string => true, as: 'totalReach' + end + end + class Empty # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -4561,6 +4765,31 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class GenerateReachForecastRequest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :campaign_duration, as: 'campaignDuration', class: Google::Apis::DisplayvideoV4::CampaignDuration, decorator: Google::Apis::DisplayvideoV4::CampaignDuration::Representation + + property :currency_code, as: 'currencyCode' + property :effective_frequency_breakdown_limit, as: 'effectiveFrequencyBreakdownLimit' + property :min_effective_frequency, as: 'minEffectiveFrequency' + collection :planned_products, as: 'plannedProducts', class: Google::Apis::DisplayvideoV4::PlannedProduct, decorator: Google::Apis::DisplayvideoV4::PlannedProduct::Representation + + property :targeting, as: 'targeting', class: Google::Apis::DisplayvideoV4::Targeting, decorator: Google::Apis::DisplayvideoV4::Targeting::Representation + + end + end + + class GenerateReachForecastResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :on_target_audience_metrics, as: 'onTargetAudienceMetrics', class: Google::Apis::DisplayvideoV4::OnTargetAudienceMetrics, decorator: Google::Apis::DisplayvideoV4::OnTargetAudienceMetrics::Representation + + property :reach_curve, as: 'reachCurve', class: Google::Apis::DisplayvideoV4::ReachCurve, decorator: Google::Apis::DisplayvideoV4::ReachCurve::Representation + + end + end + class GeoRegionAssignedTargetingOptionDetails # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -5526,6 +5755,14 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class OnTargetAudienceMetrics + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :census_audience_size, :numeric_string => true, as: 'censusAudienceSize' + property :youtube_audience_size, :numeric_string => true, as: 'youtubeAudienceSize' + end + end + class OperatingSystemAssignedTargetingOptionDetails # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -5678,6 +5915,86 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class PlannableLocation + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :display_name, as: 'displayName' + property :geo_region_type, as: 'geoRegionType' + property :name, as: 'name' + property :plannable_location_id, :numeric_string => true, as: 'plannableLocationId' + property :region_code, as: 'regionCode' + end + end + + class PlannableTargeting + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :age_ranges, as: 'ageRanges' + collection :devices, as: 'devices' + collection :genders, as: 'genders' + collection :networks, as: 'networks' + property :surface_targeting_combinations, as: 'surfaceTargetingCombinations', class: Google::Apis::DisplayvideoV4::SurfaceTargetingCombinations, decorator: Google::Apis::DisplayvideoV4::SurfaceTargetingCombinations::Representation + + collection :youtube_select_lineups, as: 'youtubeSelectLineups', class: Google::Apis::DisplayvideoV4::YouTubeSelectLineUp, decorator: Google::Apis::DisplayvideoV4::YouTubeSelectLineUp::Representation + + end + end + + class PlannableUserInterest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :user_interest, as: 'userInterest', class: Google::Apis::DisplayvideoV4::UserInterest, decorator: Google::Apis::DisplayvideoV4::UserInterest::Representation + + property :user_interest_display_name, as: 'userInterestDisplayName' + property :user_interest_path, as: 'userInterestPath' + property :user_interest_type, as: 'userInterestType' + end + end + + class PlannableUserList + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :display_name, as: 'displayName' + property :name, as: 'name' + property :plannable_status, as: 'plannableStatus' + property :user_list_type, as: 'userListType' + end + end + + class PlannedProduct + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :advanced_product_targeting, as: 'advancedProductTargeting', class: Google::Apis::DisplayvideoV4::AdvancedProductTargeting, decorator: Google::Apis::DisplayvideoV4::AdvancedProductTargeting::Representation + + property :budget_micros, :numeric_string => true, as: 'budgetMicros' + property :plannable_product_code, as: 'plannableProductCode' + end + end + + class PlannedProductForecast + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :effective_frequency_breakdowns, as: 'effectiveFrequencyBreakdowns', class: Google::Apis::DisplayvideoV4::EffectiveFrequencyBreakdown, decorator: Google::Apis::DisplayvideoV4::EffectiveFrequencyBreakdown::Representation + + property :on_target_impressions, :numeric_string => true, as: 'onTargetImpressions' + property :on_target_reach, :numeric_string => true, as: 'onTargetReach' + property :total_impressions, :numeric_string => true, as: 'totalImpressions' + property :total_reach, :numeric_string => true, as: 'totalReach' + property :trueview_views, :numeric_string => true, as: 'trueviewViews' + property :viewable_impressions, :numeric_string => true, as: 'viewableImpressions' + end + end + + class PlannedProductReachForecast + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cost_micros, :numeric_string => true, as: 'costMicros' + property :plannable_product_code, as: 'plannableProductCode' + property :planned_product_forecast, as: 'plannedProductForecast', class: Google::Apis::DisplayvideoV4::PlannedProductForecast, decorator: Google::Apis::DisplayvideoV4::PlannedProductForecast::Representation + + end + end + class PoiAssignedTargetingOptionDetails # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -5744,6 +6061,17 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class ProductMetadata + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :display_name, as: 'displayName' + property :plannable_product_code, as: 'plannableProductCode' + property :plannable_product_description, as: 'plannableProductDescription' + property :plannable_targeting, as: 'plannableTargeting', class: Google::Apis::DisplayvideoV4::PlannableTargeting, decorator: Google::Apis::DisplayvideoV4::PlannableTargeting::Representation + + end + end + class ProximityLocationListAssignedTargetingOptionDetails # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -5765,6 +6093,25 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class ReachCurve + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :reach_forecasts, as: 'reachForecasts', class: Google::Apis::DisplayvideoV4::ReachForecast, decorator: Google::Apis::DisplayvideoV4::ReachForecast::Representation + + end + end + + class ReachForecast + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :cost_micros, :numeric_string => true, as: 'costMicros' + property :forecast, as: 'forecast', class: Google::Apis::DisplayvideoV4::PlannedProductForecast, decorator: Google::Apis::DisplayvideoV4::PlannedProductForecast::Representation + + collection :planned_product_reach_forecasts, as: 'plannedProductReachForecasts', class: Google::Apis::DisplayvideoV4::PlannedProductReachForecast, decorator: Google::Apis::DisplayvideoV4::PlannedProductReachForecast::Representation + + end + end + class RegionalLocationListAssignedTargetingOptionDetails # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -5815,6 +6162,39 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class RetrievePlannableLocationsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :plannable_locations, as: 'plannableLocations', class: Google::Apis::DisplayvideoV4::PlannableLocation, decorator: Google::Apis::DisplayvideoV4::PlannableLocation::Representation + + end + end + + class RetrievePlannableProductsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :product_metadata, as: 'productMetadata', class: Google::Apis::DisplayvideoV4::ProductMetadata, decorator: Google::Apis::DisplayvideoV4::ProductMetadata::Representation + + end + end + + class RetrievePlannableUserInterestsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :plannable_user_interests, as: 'plannableUserInterests', class: Google::Apis::DisplayvideoV4::PlannableUserInterest, decorator: Google::Apis::DisplayvideoV4::PlannableUserInterest::Representation + + end + end + + class RetrievePlannableUserListsResponse + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :next_page_token, as: 'nextPageToken' + collection :plannable_user_lists, as: 'plannableUserLists', class: Google::Apis::DisplayvideoV4::PlannableUserList, decorator: Google::Apis::DisplayvideoV4::PlannableUserList::Representation + + end + end + class ReviewStatusInfo # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -5948,6 +6328,29 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class SurfaceTargetingCombination + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :choices, as: 'choices' + end + end + + class SurfaceTargetingCombinations + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :available_surface_types, as: 'availableSurfaceTypes' + collection :valid_surface_combinations, as: 'validSurfaceCombinations', class: Google::Apis::DisplayvideoV4::SurfaceTargetingCombination, decorator: Google::Apis::DisplayvideoV4::SurfaceTargetingCombination::Representation + + end + end + + class SurfaceTargetingSettings + # @private + class Representation < Google::Apis::Core::JsonRepresentation + collection :surfaces, as: 'surfaces' + end + end + class TargetFrequency # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -5957,6 +6360,16 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class Targeting + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :age_range, as: 'ageRange' + collection :devices, as: 'devices' + collection :genders, as: 'genders' + collection :plannable_location_ids, as: 'plannableLocationIds' + end + end + class TargetingExpansionConfig # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -6179,6 +6592,14 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class UserInterest + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :user_interest_category, as: 'userInterestCategory' + property :user_interest_user_list, as: 'userInterestUserList' + end + end + class UserRewardedContentAssignedTargetingOptionDetails # @private class Representation < Google::Apis::Core::JsonRepresentation @@ -6283,6 +6704,21 @@ class Representation < Google::Apis::Core::JsonRepresentation end end + class YouTubeSelectLineUp + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :display_name, as: 'displayName' + property :lineup_id, :numeric_string => true, as: 'lineupId' + end + end + + class YouTubeSelectSettings + # @private + class Representation < Google::Apis::Core::JsonRepresentation + property :lineup_id, :numeric_string => true, as: 'lineupId' + end + end + class YoutubeAndPartnersBiddingStrategy # @private class Representation < Google::Apis::Core::JsonRepresentation diff --git a/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/service.rb b/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/service.rb index c0ef8dda791..9c4c9780853 100644 --- a/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/service.rb +++ b/generated/google-apis-displayvideo_v4/lib/google/apis/displayvideo_v4/service.rb @@ -4256,6 +4256,187 @@ def replace_negative_keywords(advertiser_id, negative_keyword_list_id, replace_n execute_or_queue_command(command, &block) end + # Generates a reach forecast for a given advertiser and targeting configuration. + # @param [Fixnum] advertiser_id + # Required. The ID of the advertiser that will run the planned campaign. + # @param [Google::Apis::DisplayvideoV4::GenerateReachForecastRequest] generate_reach_forecast_request_object + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::DisplayvideoV4::GenerateReachForecastResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::DisplayvideoV4::GenerateReachForecastResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def generate_reach_forecast(advertiser_id, generate_reach_forecast_request_object = nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:post, 'v4/advertisers/{+advertiserId}/reachForecast:generateReachForecast', options) + command.request_representation = Google::Apis::DisplayvideoV4::GenerateReachForecastRequest::Representation + command.request_object = generate_reach_forecast_request_object + command.response_representation = Google::Apis::DisplayvideoV4::GenerateReachForecastResponse::Representation + command.response_class = Google::Apis::DisplayvideoV4::GenerateReachForecastResponse + command.params['advertiserId'] = advertiser_id unless advertiser_id.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Retrieves the list of countries where reach forecasting is supported. + # @param [Fixnum] advertiser_id + # Required. The ID of the advertiser to list plannable locations for. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::DisplayvideoV4::RetrievePlannableLocationsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::DisplayvideoV4::RetrievePlannableLocationsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def retrieve_advertiser_reach_forecast_plannable_locations(advertiser_id, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v4/advertisers/{+advertiserId}/reachForecast:retrievePlannableLocations', options) + command.response_representation = Google::Apis::DisplayvideoV4::RetrievePlannableLocationsResponse::Representation + command.response_class = Google::Apis::DisplayvideoV4::RetrievePlannableLocationsResponse + command.params['advertiserId'] = advertiser_id unless advertiser_id.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Retrieves the list of products that can be planned for a location. + # @param [Fixnum] advertiser_id + # Required. The ID of the advertiser to list plannable products for. + # @param [String] plannable_location_id + # Required. The ID of the plannable location. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::DisplayvideoV4::RetrievePlannableProductsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::DisplayvideoV4::RetrievePlannableProductsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def retrieve_advertiser_reach_forecast_plannable_products(advertiser_id, plannable_location_id: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v4/advertisers/{+advertiserId}/reachForecast:retrievePlannableProducts', options) + command.response_representation = Google::Apis::DisplayvideoV4::RetrievePlannableProductsResponse::Representation + command.response_class = Google::Apis::DisplayvideoV4::RetrievePlannableProductsResponse + command.params['advertiserId'] = advertiser_id unless advertiser_id.nil? + command.query['plannableLocationId'] = plannable_location_id unless plannable_location_id.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Retrieves Google Audiences (User Interests) available for forecasting. + # @param [Fixnum] advertiser_id + # Required. The ID of the advertiser to list plannable user interests for. + # @param [String] product_category + # Required. The product category to retrieve plannable user interests for. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::DisplayvideoV4::RetrievePlannableUserInterestsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::DisplayvideoV4::RetrievePlannableUserInterestsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def retrieve_advertiser_reach_forecast_plannable_user_interests(advertiser_id, product_category: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v4/advertisers/{+advertiserId}/reachForecast:retrievePlannableUserInterests', options) + command.response_representation = Google::Apis::DisplayvideoV4::RetrievePlannableUserInterestsResponse::Representation + command.response_class = Google::Apis::DisplayvideoV4::RetrievePlannableUserInterestsResponse + command.params['advertiserId'] = advertiser_id unless advertiser_id.nil? + command.query['productCategory'] = product_category unless product_category.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + + # Retrieves first and third party user lists available for forecasting. + # @param [Fixnum] advertiser_id + # Required. The ID of the advertiser to retrieve plannable user lists for. + # @param [String] filter + # Optional. Allows filtering by plannable user list properties. Supported syntax: + # * Filter expressions are made up of one or more restrictions. * Restrictions + # can be combined by `AND` or `OR` logical operators. * A restriction has the + # form of ``field` `operator` `value``. * The `updateTime` field must use the ` + # GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * + # All other fields must use the `EQUALS (=)` operator. Supported fields: * ` + # plannableStatus` Examples: * All plannable user lists: `plannableStatus=" + # PLANNABLE"` The length of this field should be no more than 500 characters. + # Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/ + # filters) guide for more information. + # @param [Fixnum] page_size + # Optional. Requested page size. Must be between `1` and `5000`. If unspecified + # will default to `5000`. + # @param [String] page_token + # Optional. A token identifying a page of results the server should return. + # Typically, this is the value of next_page_token returned from the previous + # call to `RetrievePlannableUserLists` method. If not specified, the first page + # of results will be returned. + # @param [String] fields + # Selector specifying which fields to include in a partial response. + # @param [String] quota_user + # Available to use for quota purposes for server-side applications. Can be any + # arbitrary string assigned to a user, but should not exceed 40 characters. + # @param [Google::Apis::RequestOptions] options + # Request-specific options + # + # @yield [result, err] Result & error if block supplied + # @yieldparam result [Google::Apis::DisplayvideoV4::RetrievePlannableUserListsResponse] parsed result object + # @yieldparam err [StandardError] error object if request failed + # + # @return [Google::Apis::DisplayvideoV4::RetrievePlannableUserListsResponse] + # + # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried + # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification + # @raise [Google::Apis::AuthorizationError] Authorization is required + def retrieve_advertiser_reach_forecast_plannable_user_lists(advertiser_id, filter: nil, page_size: nil, page_token: nil, fields: nil, quota_user: nil, options: nil, &block) + command = make_simple_command(:get, 'v4/advertisers/{+advertiserId}/reachForecast:retrievePlannableUserLists', options) + command.response_representation = Google::Apis::DisplayvideoV4::RetrievePlannableUserListsResponse::Representation + command.response_class = Google::Apis::DisplayvideoV4::RetrievePlannableUserListsResponse + command.params['advertiserId'] = advertiser_id unless advertiser_id.nil? + command.query['filter'] = filter unless filter.nil? + command.query['pageSize'] = page_size unless page_size.nil? + command.query['pageToken'] = page_token unless page_token.nil? + command.query['fields'] = fields unless fields.nil? + command.query['quotaUser'] = quota_user unless quota_user.nil? + execute_or_queue_command(command, &block) + end + # Assigns a targeting option to an advertiser. Returns the assigned targeting # option if successful. # @param [Fixnum] advertiser_id