summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/ads/googleads/v10/resources/ad.proto
blob: 7f2a6e61089fbe5ce8990c0660050201654ff818 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.ads.googleads.v10.resources;

import "google/ads/googleads/v10/common/ad_type_infos.proto";
import "google/ads/googleads/v10/common/custom_parameter.proto";
import "google/ads/googleads/v10/common/final_app_url.proto";
import "google/ads/googleads/v10/common/url_collection.proto";
import "google/ads/googleads/v10/enums/ad_type.proto";
import "google/ads/googleads/v10/enums/device.proto";
import "google/ads/googleads/v10/enums/system_managed_entity_source.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";

option csharp_namespace = "Google.Ads.GoogleAds.V10.Resources";
option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v10/resources;resources";
option java_multiple_files = true;
option java_outer_classname = "AdProto";
option java_package = "com.google.ads.googleads.v10.resources";
option objc_class_prefix = "GAA";
option php_namespace = "Google\\Ads\\GoogleAds\\V10\\Resources";
option ruby_package = "Google::Ads::GoogleAds::V10::Resources";

// Proto file describing the ad type.

// An ad.
message Ad {
  option (google.api.resource) = {
    type: "googleads.googleapis.com/Ad"
    pattern: "customers/{customer_id}/ads/{ad_id}"
  };

  // Immutable. The resource name of the ad.
  // Ad resource names have the form:
  //
  // `customers/{customer_id}/ads/{ad_id}`
  string resource_name = 37 [
    (google.api.field_behavior) = IMMUTABLE,
    (google.api.resource_reference) = {
      type: "googleads.googleapis.com/Ad"
    }
  ];

  // Output only. The ID of the ad.
  optional int64 id = 40 [(google.api.field_behavior) = OUTPUT_ONLY];

  // The list of possible final URLs after all cross-domain redirects for the
  // ad.
  repeated string final_urls = 41;

  // A list of final app URLs that will be used on mobile if the user has the
  // specific app installed.
  repeated google.ads.googleads.v10.common.FinalAppUrl final_app_urls = 35;

  // The list of possible final mobile URLs after all cross-domain redirects
  // for the ad.
  repeated string final_mobile_urls = 42;

  // The URL template for constructing a tracking URL.
  optional string tracking_url_template = 43;

  // The suffix to use when constructing a final URL.
  optional string final_url_suffix = 44;

  // The list of mappings that can be used to substitute custom parameter tags
  // in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
  // For mutates, please use url custom parameter operations.
  repeated google.ads.googleads.v10.common.CustomParameter url_custom_parameters = 10;

  // The URL that appears in the ad description for some ad formats.
  optional string display_url = 45;

  // Output only. The type of ad.
  google.ads.googleads.v10.enums.AdTypeEnum.AdType type = 5 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. Indicates if this ad was automatically added by Google Ads and not by a
  // user. For example, this could happen when ads are automatically created as
  // suggestions for new ads based on knowledge of how existing ads are
  // performing.
  optional bool added_by_google_ads = 46 [(google.api.field_behavior) = OUTPUT_ONLY];

  // The device preference for the ad. You can only specify a preference for
  // mobile devices. When this preference is set the ad will be preferred over
  // other ads when being displayed on a mobile device. The ad can still be
  // displayed on other device types, e.g. if no other ads are available.
  // If unspecified (no device preference), all devices are targeted.
  // This is only supported by some ad types.
  google.ads.googleads.v10.enums.DeviceEnum.Device device_preference = 20;

  // Additional URLs for the ad that are tagged with a unique identifier that
  // can be referenced from other fields in the ad.
  repeated google.ads.googleads.v10.common.UrlCollection url_collections = 26;

  // Immutable. The name of the ad. This is only used to be able to identify the ad. It
  // does not need to be unique and does not affect the served ad. The name
  // field is currently only supported for DisplayUploadAd, ImageAd,
  // ShoppingComparisonListingAd and VideoAd.
  optional string name = 47 [(google.api.field_behavior) = IMMUTABLE];

  // Output only. If this ad is system managed, then this field will indicate the source.
  // This field is read-only.
  google.ads.googleads.v10.enums.SystemManagedResourceSourceEnum.SystemManagedResourceSource system_managed_resource_source = 27 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Details pertinent to the ad type. Exactly one value must be set.
  oneof ad_data {
    // Immutable. Details pertaining to a text ad.
    google.ads.googleads.v10.common.TextAdInfo text_ad = 6 [(google.api.field_behavior) = IMMUTABLE];

    // Details pertaining to an expanded text ad.
    google.ads.googleads.v10.common.ExpandedTextAdInfo expanded_text_ad = 7;

    // Details pertaining to a call ad.
    google.ads.googleads.v10.common.CallAdInfo call_ad = 49;

    // Immutable. Details pertaining to an Expanded Dynamic Search Ad.
    // This type of ad has its headline, final URLs, and display URL
    // auto-generated at serving time according to domain name specific
    // information provided by `dynamic_search_ads_setting` linked at the
    // campaign level.
    google.ads.googleads.v10.common.ExpandedDynamicSearchAdInfo expanded_dynamic_search_ad = 14 [(google.api.field_behavior) = IMMUTABLE];

    // Details pertaining to a hotel ad.
    google.ads.googleads.v10.common.HotelAdInfo hotel_ad = 15;

    // Details pertaining to a Smart Shopping ad.
    google.ads.googleads.v10.common.ShoppingSmartAdInfo shopping_smart_ad = 17;

    // Details pertaining to a Shopping product ad.
    google.ads.googleads.v10.common.ShoppingProductAdInfo shopping_product_ad = 18;

    // Immutable. Details pertaining to a Gmail ad.
    google.ads.googleads.v10.common.GmailAdInfo gmail_ad = 21 [(google.api.field_behavior) = IMMUTABLE];

    // Immutable. Details pertaining to an Image ad.
    google.ads.googleads.v10.common.ImageAdInfo image_ad = 22 [(google.api.field_behavior) = IMMUTABLE];

    // Details pertaining to a Video ad.
    google.ads.googleads.v10.common.VideoAdInfo video_ad = 24;

    // Details pertaining to a Video responsive ad.
    google.ads.googleads.v10.common.VideoResponsiveAdInfo video_responsive_ad = 39;

    // Details pertaining to a responsive search ad.
    google.ads.googleads.v10.common.ResponsiveSearchAdInfo responsive_search_ad = 25;

    // Details pertaining to a legacy responsive display ad.
    google.ads.googleads.v10.common.LegacyResponsiveDisplayAdInfo legacy_responsive_display_ad = 28;

    // Details pertaining to an app ad.
    google.ads.googleads.v10.common.AppAdInfo app_ad = 29;

    // Immutable. Details pertaining to a legacy app install ad.
    google.ads.googleads.v10.common.LegacyAppInstallAdInfo legacy_app_install_ad = 30 [(google.api.field_behavior) = IMMUTABLE];

    // Details pertaining to a responsive display ad.
    google.ads.googleads.v10.common.ResponsiveDisplayAdInfo responsive_display_ad = 31;

    // Details pertaining to a local ad.
    google.ads.googleads.v10.common.LocalAdInfo local_ad = 32;

    // Details pertaining to a display upload ad.
    google.ads.googleads.v10.common.DisplayUploadAdInfo display_upload_ad = 33;

    // Details pertaining to an app engagement ad.
    google.ads.googleads.v10.common.AppEngagementAdInfo app_engagement_ad = 34;

    // Details pertaining to a Shopping Comparison Listing ad.
    google.ads.googleads.v10.common.ShoppingComparisonListingAdInfo shopping_comparison_listing_ad = 36;

    // Details pertaining to a Smart campaign ad.
    google.ads.googleads.v10.common.SmartCampaignAdInfo smart_campaign_ad = 48;

    // Details pertaining to an app pre-registration ad.
    google.ads.googleads.v10.common.AppPreRegistrationAdInfo app_pre_registration_ad = 50;

    // Details pertaining to a discovery multi asset ad.
    google.ads.googleads.v10.common.DiscoveryMultiAssetAdInfo discovery_multi_asset_ad = 51;

    // Details pertaining to a discovery carousel ad.
    google.ads.googleads.v10.common.DiscoveryCarouselAdInfo discovery_carousel_ad = 52;
  }
}