--- v20/resources/campaign.proto 2025-08-05 14:39:35.000000000 +0000+++ v21/resources/campaign.proto 2025-08-05 14:39:50.000000000 +0000@@ -178,13 +182,13 @@ // inventory in Performance Max campaigns, use `listing_type` instead.
bool use_vehicle_inventory = 9 [(google.api.field_behavior) = IMMUTABLE];
- // Immutable. The list of Google Ads accounts IDs of advertising partners- // cooperating within the campaign. This feature is currently available only- // for accounts having an advertising partner link. This feature is- // currently supported only for Performance Max, Shopping, Search and Demand- // Gen campaign types.- repeated int64 advertising_partner_ids = 11- [(google.api.field_behavior) = IMMUTABLE];+ // The list of Google Ads accounts IDs of advertising partners cooperating+ // within the campaign.+ // This feature is currently available only for accounts having an+ // advertising partner link.+ // This feature is currently supported only for Performance Max, Shopping,+ // Search and Demand Gen campaign types.+ repeated int64 advertising_partner_ids = 11; // Disable the optional product feed. This field is currently supported
// only for Demand Gen campaigns. See
@@ -329,6 +333,12 @@ // Determine if video responsive ads can be used as shorts format.
optional bool allow_shorts = 3;
++ // Determine if video responsive ads can be used for non-skippable+ // in-stream ads. This is only available for campaigns that allow mixing+ // of non-skippable with other formats (Video reach campaign with Target+ // Frequency bidding strategy goal).+ optional bool allow_non_skippable_in_stream = 4; }
// Format-restricting control enabling usage of video responsive ads in
@@ -349,10 +359,49 @@ .NonSkippableMinDuration min_duration = 1;
// The maximum allowed duration for non-skippable ads.
- google.ads.googleads.v20.enums.NonSkippableMaxDurationEnum+ google.ads.googleads.v21.enums.NonSkippableMaxDurationEnum .NonSkippableMaxDuration max_duration = 2;
}
+ // Container for video ads sequencing definition.+ message VideoAdSequence {+ // The list of sequence steps and data associated with them.+ repeated VideoAdSequenceStep steps = 1;++ // Users are eligible to repeat sequence after this period. Defaults to+ // WEEK if not specified.+ google.ads.googleads.v21.enums.VideoAdSequenceMinimumDurationEnum+ .VideoAdSequenceMinimumDuration minimum_duration = 2;+ }++ // Information about a step within a video sequence.+ message VideoAdSequenceStep {+ // The ID of this sequence step.+ int64 video_ad_sequence_step_id = 1;++ // The ID of the Asset for this step. The asset must be type+ // YOUTUBE_VIDEO.+ int64 asset_id = 2;++ // The ad group type for this step (denoting the video format).+ google.ads.googleads.v21.enums.AdGroupTypeEnum.AdGroupType ad_group_type =+ 3;++ // The ID of the previous step. This field is required for all+ // steps except the first one. It must point to a step that appears in the+ // step definition list before this step.+ int64 previous_step_id = 4;++ // Type of interaction *on the previous step* required in order for the+ // user to advance to this step. As with the previous step ID, it's+ // required for every step except for the first one.+ google.ads.googleads.v21.enums.VideoAdSequenceInteractionTypeEnum+ .VideoAdSequenceInteractionType previous_step_interaction_type = 5;+ }++ // Container for video ads sequencing definition.+ VideoAdSequence video_ad_sequence = 4;+ // Controls for defining video responsive ads behavior.
oneof fluidity_control {
// Inventory control for video responsive ads in reach campaigns.
@@ -406,6 +455,46 @@ string predefined_font_family = 3;
}
+ // Settings for AI Max in search campaigns.+ message AiMaxSetting {+ // Enum describing whether AI Max must be enabled to serve and update+ // text asset automation and brand list features newly bundled with AI Max.+ enum AiMaxBundlingRequired {+ // Not specified.+ UNSPECIFIED = 0;++ // Used for return value only. Represents value unknown in this version.+ UNKNOWN = 1;++ // Search campaign is using text asset automation or brand+ // list targeting, and AI Max is not required to be enabled to serve these+ // features.+ NOT_REQUIRED = 2;++ // AI Max is required to be enabled for this search campaign to serve+ // existing text asset automation and brand list targeting, or to add new+ // text asset automation and brand list targeting settings.+ REQUIRED = 3;+ }++ // Controls whether or not AI Max features are serve for this campaign.+ //+ // Individual AI Max features are enabled or disabled by their respective+ // settings. But if enable_ai_max is set to false or cleared, then no AI+ // Max features will serve for this campaign, regardless of the other+ // settings.+ //+ // Search Term Matching is enabled by default when AI Max is enabled, and+ // can be disabled at the ad group level.+ optional bool enable_ai_max = 1;++ // Output only. Indicates whether a search campaign has adopted AI Max+ // before, and is required to have AI Max enabled to adopt campaign-level+ // text asset automation and brand list targeting in all API versions.+ optional AiMaxBundlingRequired bundling_required = 2+ [(google.api.field_behavior) = OUTPUT_ONLY];+ }+ // Immutable. The resource name of the campaign.
// Campaign resource names have the form:
//
@@ -741,9 +830,16 @@ // used for Performance Max campaigns that have Brand Guidelines enabled.
BrandGuidelines brand_guidelines = 98;
+ // Third-Party integration partners.+ google.ads.googleads.v21.common.CampaignThirdPartyIntegrationPartners+ third_party_integration_partners = 100;++ // Settings for AI Max in search campaigns.+ AiMaxSetting ai_max_setting = 101;+ // The advertiser should self-declare whether this campaign contains
// political advertising content targeted towards the European Union.
- google.ads.googleads.v20.enums.EuPoliticalAdvertisingStatusEnum+ google.ads.googleads.v21.enums.EuPoliticalAdvertisingStatusEnum .EuPoliticalAdvertisingStatus contains_eu_political_advertising = 102;
// The bidding strategy for the campaign.
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-08-21。"],[],[],null,["# /resources/campaign.proto\n\n```diff\n--- v20/resources/campaign.proto 2025-08-05 14:39:35.000000000 +0000\n+++ v21/resources/campaign.proto 2025-08-05 14:39:50.000000000 +0000\n@@ -178,13 +182,13 @@\n // inventory in Performance Max campaigns, use `listing_type` instead.\n bool use_vehicle_inventory = 9 [(google.api.field_behavior) = IMMUTABLE];\n\n- // Immutable. The list of Google Ads accounts IDs of advertising partners\n- // cooperating within the campaign. This feature is currently available only\n- // for accounts having an advertising partner link. This feature is\n- // currently supported only for Performance Max, Shopping, Search and Demand\n- // Gen campaign types.\n- repeated int64 advertising_partner_ids = 11\n- [(google.api.field_behavior) = IMMUTABLE];\n+ // The list of Google Ads accounts IDs of advertising partners cooperating\n+ // within the campaign.\n+ // This feature is currently available only for accounts having an\n+ // advertising partner link.\n+ // This feature is currently supported only for Performance Max, Shopping,\n+ // Search and Demand Gen campaign types.\n+ repeated int64 advertising_partner_ids = 11;\n\n // Disable the optional product feed. This field is currently supported\n // only for Demand Gen campaigns. See\n@@ -329,6 +333,12 @@\n\n // Determine if video responsive ads can be used as shorts format.\n optional bool allow_shorts = 3;\n+\n+ // Determine if video responsive ads can be used for non-skippable\n+ // in-stream ads. This is only available for campaigns that allow mixing\n+ // of non-skippable with other formats (Video reach campaign with Target\n+ // Frequency bidding strategy goal).\n+ optional bool allow_non_skippable_in_stream = 4;\n }\n\n // Format-restricting control enabling usage of video responsive ads in\n@@ -349,10 +359,49 @@\n .NonSkippableMinDuration min_duration = 1;\n\n // The maximum allowed duration for non-skippable ads.\n- google.ads.googleads.v20.enums.NonSkippableMaxDurationEnum\n+ google.ads.googleads.v21.enums.NonSkippableMaxDurationEnum\n .NonSkippableMaxDuration max_duration = 2;\n }\n\n+ // Container for video ads sequencing definition.\n+ message VideoAdSequence {\n+ // The list of sequence steps and data associated with them.\n+ repeated VideoAdSequenceStep steps = 1;\n+\n+ // Users are eligible to repeat sequence after this period. Defaults to\n+ // WEEK if not specified.\n+ google.ads.googleads.v21.enums.VideoAdSequenceMinimumDurationEnum\n+ .VideoAdSequenceMinimumDuration minimum_duration = 2;\n+ }\n+\n+ // Information about a step within a video sequence.\n+ message VideoAdSequenceStep {\n+ // The ID of this sequence step.\n+ int64 video_ad_sequence_step_id = 1;\n+\n+ // The ID of the Asset for this step. The asset must be type\n+ // YOUTUBE_VIDEO.\n+ int64 asset_id = 2;\n+\n+ // The ad group type for this step (denoting the video format).\n+ google.ads.googleads.v21.enums.AdGroupTypeEnum.AdGroupType ad_group_type =\n+ 3;\n+\n+ // The ID of the previous step. This field is required for all\n+ // steps except the first one. It must point to a step that appears in the\n+ // step definition list before this step.\n+ int64 previous_step_id = 4;\n+\n+ // Type of interaction *on the previous step* required in order for the\n+ // user to advance to this step. As with the previous step ID, it's\n+ // required for every step except for the first one.\n+ google.ads.googleads.v21.enums.VideoAdSequenceInteractionTypeEnum\n+ .VideoAdSequenceInteractionType previous_step_interaction_type = 5;\n+ }\n+\n+ // Container for video ads sequencing definition.\n+ VideoAdSequence video_ad_sequence = 4;\n+\n // Controls for defining video responsive ads behavior.\n oneof fluidity_control {\n // Inventory control for video responsive ads in reach campaigns.\n@@ -406,6 +455,46 @@\n string predefined_font_family = 3;\n }\n\n+ // Settings for AI Max in search campaigns.\n+ message AiMaxSetting {\n+ // Enum describing whether AI Max must be enabled to serve and update\n+ // text asset automation and brand list features newly bundled with AI Max.\n+ enum AiMaxBundlingRequired {\n+ // Not specified.\n+ UNSPECIFIED = 0;\n+\n+ // Used for return value only. Represents value unknown in this version.\n+ UNKNOWN = 1;\n+\n+ // Search campaign is using text asset automation or brand\n+ // list targeting, and AI Max is not required to be enabled to serve these\n+ // features.\n+ NOT_REQUIRED = 2;\n+\n+ // AI Max is required to be enabled for this search campaign to serve\n+ // existing text asset automation and brand list targeting, or to add new\n+ // text asset automation and brand list targeting settings.\n+ REQUIRED = 3;\n+ }\n+\n+ // Controls whether or not AI Max features are serve for this campaign.\n+ //\n+ // Individual AI Max features are enabled or disabled by their respective\n+ // settings. But if enable_ai_max is set to false or cleared, then no AI\n+ // Max features will serve for this campaign, regardless of the other\n+ // settings.\n+ //\n+ // Search Term Matching is enabled by default when AI Max is enabled, and\n+ // can be disabled at the ad group level.\n+ optional bool enable_ai_max = 1;\n+\n+ // Output only. Indicates whether a search campaign has adopted AI Max\n+ // before, and is required to have AI Max enabled to adopt campaign-level\n+ // text asset automation and brand list targeting in all API versions.\n+ optional AiMaxBundlingRequired bundling_required = 2\n+ [(google.api.field_behavior) = OUTPUT_ONLY];\n+ }\n+\n // Immutable. The resource name of the campaign.\n // Campaign resource names have the form:\n //\n@@ -741,9 +830,16 @@\n // used for Performance Max campaigns that have Brand Guidelines enabled.\n BrandGuidelines brand_guidelines = 98;\n\n+ // Third-Party integration partners.\n+ google.ads.googleads.v21.common.CampaignThirdPartyIntegrationPartners\n+ third_party_integration_partners = 100;\n+\n+ // Settings for AI Max in search campaigns.\n+ AiMaxSetting ai_max_setting = 101;\n+\n // The advertiser should self-declare whether this campaign contains\n // political advertising content targeted towards the European Union.\n- google.ads.googleads.v20.enums.EuPoliticalAdvertisingStatusEnum\n+ google.ads.googleads.v21.enums.EuPoliticalAdvertisingStatusEnum\n .EuPoliticalAdvertisingStatus contains_eu_political_advertising = 102;\n\n // The bidding strategy for the campaign.\n```"]]