google-apis-searchads360_v0 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3865 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module Searchads360V0
24
+
25
+ # An age range criterion.
26
+ class GoogleAdsSearchads360V0CommonAgeRangeInfo
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Type of the age range.
30
+ # Corresponds to the JSON property `type`
31
+ # @return [String]
32
+ attr_accessor :type
33
+
34
+ def initialize(**args)
35
+ update!(**args)
36
+ end
37
+
38
+ # Update properties of this object
39
+ def update!(**args)
40
+ @type = args[:type] if args.key?(:type)
41
+ end
42
+ end
43
+
44
+ # A mapping that can be used by custom parameter tags in a `
45
+ # tracking_url_template`, `final_urls`, or `mobile_final_urls`.
46
+ class GoogleAdsSearchads360V0CommonCustomParameter
47
+ include Google::Apis::Core::Hashable
48
+
49
+ # The key matching the parameter tag name.
50
+ # Corresponds to the JSON property `key`
51
+ # @return [String]
52
+ attr_accessor :key
53
+
54
+ # The value to be substituted.
55
+ # Corresponds to the JSON property `value`
56
+ # @return [String]
57
+ attr_accessor :value
58
+
59
+ def initialize(**args)
60
+ update!(**args)
61
+ end
62
+
63
+ # Update properties of this object
64
+ def update!(**args)
65
+ @key = args[:key] if args.key?(:key)
66
+ @value = args[:value] if args.key?(:value)
67
+ end
68
+ end
69
+
70
+ # A device criterion.
71
+ class GoogleAdsSearchads360V0CommonDeviceInfo
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Type of the device.
75
+ # Corresponds to the JSON property `type`
76
+ # @return [String]
77
+ attr_accessor :type
78
+
79
+ def initialize(**args)
80
+ update!(**args)
81
+ end
82
+
83
+ # Update properties of this object
84
+ def update!(**args)
85
+ @type = args[:type] if args.key?(:type)
86
+ end
87
+ end
88
+
89
+ # An automated bidding strategy that raises bids for clicks that seem more
90
+ # likely to lead to a conversion and lowers them for clicks where they seem less
91
+ # likely. This bidding strategy is deprecated and cannot be created anymore. Use
92
+ # ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality.
93
+ class GoogleAdsSearchads360V0CommonEnhancedCpc
94
+ include Google::Apis::Core::Hashable
95
+
96
+ def initialize(**args)
97
+ update!(**args)
98
+ end
99
+
100
+ # Update properties of this object
101
+ def update!(**args)
102
+ end
103
+ end
104
+
105
+ # A rule specifying the maximum number of times an ad (or some set of ads) can
106
+ # be shown to a user over a particular time period.
107
+ class GoogleAdsSearchads360V0CommonFrequencyCapEntry
108
+ include Google::Apis::Core::Hashable
109
+
110
+ def initialize(**args)
111
+ update!(**args)
112
+ end
113
+
114
+ # Update properties of this object
115
+ def update!(**args)
116
+ end
117
+ end
118
+
119
+ # A gender criterion.
120
+ class GoogleAdsSearchads360V0CommonGenderInfo
121
+ include Google::Apis::Core::Hashable
122
+
123
+ # Type of the gender.
124
+ # Corresponds to the JSON property `type`
125
+ # @return [String]
126
+ attr_accessor :type
127
+
128
+ def initialize(**args)
129
+ update!(**args)
130
+ end
131
+
132
+ # Update properties of this object
133
+ def update!(**args)
134
+ @type = args[:type] if args.key?(:type)
135
+ end
136
+ end
137
+
138
+ # A keyword criterion.
139
+ class GoogleAdsSearchads360V0CommonKeywordInfo
140
+ include Google::Apis::Core::Hashable
141
+
142
+ # The match type of the keyword.
143
+ # Corresponds to the JSON property `matchType`
144
+ # @return [String]
145
+ attr_accessor :match_type
146
+
147
+ # The text of the keyword (at most 80 characters and 10 words).
148
+ # Corresponds to the JSON property `text`
149
+ # @return [String]
150
+ attr_accessor :text
151
+
152
+ def initialize(**args)
153
+ update!(**args)
154
+ end
155
+
156
+ # Update properties of this object
157
+ def update!(**args)
158
+ @match_type = args[:match_type] if args.key?(:match_type)
159
+ @text = args[:text] if args.key?(:text)
160
+ end
161
+ end
162
+
163
+ # A language criterion.
164
+ class GoogleAdsSearchads360V0CommonLanguageInfo
165
+ include Google::Apis::Core::Hashable
166
+
167
+ # The language constant resource name.
168
+ # Corresponds to the JSON property `languageConstant`
169
+ # @return [String]
170
+ attr_accessor :language_constant
171
+
172
+ def initialize(**args)
173
+ update!(**args)
174
+ end
175
+
176
+ # Update properties of this object
177
+ def update!(**args)
178
+ @language_constant = args[:language_constant] if args.key?(:language_constant)
179
+ end
180
+ end
181
+
182
+ # A listing group criterion.
183
+ class GoogleAdsSearchads360V0CommonListingGroupInfo
184
+ include Google::Apis::Core::Hashable
185
+
186
+ # Type of the listing group.
187
+ # Corresponds to the JSON property `type`
188
+ # @return [String]
189
+ attr_accessor :type
190
+
191
+ def initialize(**args)
192
+ update!(**args)
193
+ end
194
+
195
+ # Update properties of this object
196
+ def update!(**args)
197
+ @type = args[:type] if args.key?(:type)
198
+ end
199
+ end
200
+
201
+ # A radius around a list of locations specified through a feed.
202
+ class GoogleAdsSearchads360V0CommonLocationGroupInfo
203
+ include Google::Apis::Core::Hashable
204
+
205
+ # FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, then
206
+ # all items that appear in at least one set are targeted. This field cannot be
207
+ # used with geo_target_constants. This is optional and can only be set in CREATE
208
+ # operations.
209
+ # Corresponds to the JSON property `feedItemSets`
210
+ # @return [Array<String>]
211
+ attr_accessor :feed_item_sets
212
+
213
+ # Geo target constant(s) restricting the scope of the geographic area within the
214
+ # feed. Currently only one geo target constant is allowed.
215
+ # Corresponds to the JSON property `geoTargetConstants`
216
+ # @return [Array<String>]
217
+ attr_accessor :geo_target_constants
218
+
219
+ # Distance in units specifying the radius around targeted locations. This is
220
+ # required and must be set in CREATE operations.
221
+ # Corresponds to the JSON property `radius`
222
+ # @return [Fixnum]
223
+ attr_accessor :radius
224
+
225
+ # Unit of the radius. Miles and meters are supported for geo target constants.
226
+ # Milli miles and meters are supported for feed item sets. This is required and
227
+ # must be set in CREATE operations.
228
+ # Corresponds to the JSON property `radiusUnits`
229
+ # @return [String]
230
+ attr_accessor :radius_units
231
+
232
+ def initialize(**args)
233
+ update!(**args)
234
+ end
235
+
236
+ # Update properties of this object
237
+ def update!(**args)
238
+ @feed_item_sets = args[:feed_item_sets] if args.key?(:feed_item_sets)
239
+ @geo_target_constants = args[:geo_target_constants] if args.key?(:geo_target_constants)
240
+ @radius = args[:radius] if args.key?(:radius)
241
+ @radius_units = args[:radius_units] if args.key?(:radius_units)
242
+ end
243
+ end
244
+
245
+ # A location criterion.
246
+ class GoogleAdsSearchads360V0CommonLocationInfo
247
+ include Google::Apis::Core::Hashable
248
+
249
+ # The geo target constant resource name.
250
+ # Corresponds to the JSON property `geoTargetConstant`
251
+ # @return [String]
252
+ attr_accessor :geo_target_constant
253
+
254
+ def initialize(**args)
255
+ update!(**args)
256
+ end
257
+
258
+ # Update properties of this object
259
+ def update!(**args)
260
+ @geo_target_constant = args[:geo_target_constant] if args.key?(:geo_target_constant)
261
+ end
262
+ end
263
+
264
+ # Manual bidding strategy that allows advertiser to set the bid per advertiser-
265
+ # specified action.
266
+ class GoogleAdsSearchads360V0CommonManualCpa
267
+ include Google::Apis::Core::Hashable
268
+
269
+ def initialize(**args)
270
+ update!(**args)
271
+ end
272
+
273
+ # Update properties of this object
274
+ def update!(**args)
275
+ end
276
+ end
277
+
278
+ # Manual click-based bidding where user pays per click.
279
+ class GoogleAdsSearchads360V0CommonManualCpc
280
+ include Google::Apis::Core::Hashable
281
+
282
+ # Whether bids are to be enhanced based on conversion optimizer data.
283
+ # Corresponds to the JSON property `enhancedCpcEnabled`
284
+ # @return [Boolean]
285
+ attr_accessor :enhanced_cpc_enabled
286
+ alias_method :enhanced_cpc_enabled?, :enhanced_cpc_enabled
287
+
288
+ def initialize(**args)
289
+ update!(**args)
290
+ end
291
+
292
+ # Update properties of this object
293
+ def update!(**args)
294
+ @enhanced_cpc_enabled = args[:enhanced_cpc_enabled] if args.key?(:enhanced_cpc_enabled)
295
+ end
296
+ end
297
+
298
+ # Manual impression-based bidding where user pays per thousand impressions.
299
+ class GoogleAdsSearchads360V0CommonManualCpm
300
+ include Google::Apis::Core::Hashable
301
+
302
+ def initialize(**args)
303
+ update!(**args)
304
+ end
305
+
306
+ # Update properties of this object
307
+ def update!(**args)
308
+ end
309
+ end
310
+
311
+ # An automated bidding strategy to help get the most conversion value for your
312
+ # campaigns while spending your budget.
313
+ class GoogleAdsSearchads360V0CommonMaximizeConversionValue
314
+ include Google::Apis::Core::Hashable
315
+
316
+ # Maximum bid limit that can be set by the bid strategy. The limit applies to
317
+ # all keywords managed by the strategy. Mutable for portfolio bidding strategies
318
+ # only.
319
+ # Corresponds to the JSON property `cpcBidCeilingMicros`
320
+ # @return [Fixnum]
321
+ attr_accessor :cpc_bid_ceiling_micros
322
+
323
+ # Minimum bid limit that can be set by the bid strategy. The limit applies to
324
+ # all keywords managed by the strategy. Mutable for portfolio bidding strategies
325
+ # only.
326
+ # Corresponds to the JSON property `cpcBidFloorMicros`
327
+ # @return [Fixnum]
328
+ attr_accessor :cpc_bid_floor_micros
329
+
330
+ # The target return on ad spend (ROAS) option. If set, the bid strategy will
331
+ # maximize revenue while averaging the target return on ad spend. If the target
332
+ # ROAS is high, the bid strategy may not be able to spend the full budget. If
333
+ # the target ROAS is not set, the bid strategy will aim to achieve the highest
334
+ # possible ROAS for the budget.
335
+ # Corresponds to the JSON property `targetRoas`
336
+ # @return [Float]
337
+ attr_accessor :target_roas
338
+
339
+ def initialize(**args)
340
+ update!(**args)
341
+ end
342
+
343
+ # Update properties of this object
344
+ def update!(**args)
345
+ @cpc_bid_ceiling_micros = args[:cpc_bid_ceiling_micros] if args.key?(:cpc_bid_ceiling_micros)
346
+ @cpc_bid_floor_micros = args[:cpc_bid_floor_micros] if args.key?(:cpc_bid_floor_micros)
347
+ @target_roas = args[:target_roas] if args.key?(:target_roas)
348
+ end
349
+ end
350
+
351
+ # An automated bidding strategy to help get the most conversions for your
352
+ # campaigns while spending your budget.
353
+ class GoogleAdsSearchads360V0CommonMaximizeConversions
354
+ include Google::Apis::Core::Hashable
355
+
356
+ # Maximum bid limit that can be set by the bid strategy. The limit applies to
357
+ # all keywords managed by the strategy. Mutable for portfolio bidding strategies
358
+ # only.
359
+ # Corresponds to the JSON property `cpcBidCeilingMicros`
360
+ # @return [Fixnum]
361
+ attr_accessor :cpc_bid_ceiling_micros
362
+
363
+ # Minimum bid limit that can be set by the bid strategy. The limit applies to
364
+ # all keywords managed by the strategy. Mutable for portfolio bidding strategies
365
+ # only.
366
+ # Corresponds to the JSON property `cpcBidFloorMicros`
367
+ # @return [Fixnum]
368
+ attr_accessor :cpc_bid_floor_micros
369
+
370
+ # The target cost-per-action (CPA) option. This is the average amount that you
371
+ # would like to spend per conversion action specified in micro units of the
372
+ # bidding strategy's currency. If set, the bid strategy will get as many
373
+ # conversions as possible at or below the target cost-per-action. If the target
374
+ # CPA is not set, the bid strategy will aim to achieve the lowest possible CPA
375
+ # given the budget.
376
+ # Corresponds to the JSON property `targetCpaMicros`
377
+ # @return [Fixnum]
378
+ attr_accessor :target_cpa_micros
379
+
380
+ def initialize(**args)
381
+ update!(**args)
382
+ end
383
+
384
+ # Update properties of this object
385
+ def update!(**args)
386
+ @cpc_bid_ceiling_micros = args[:cpc_bid_ceiling_micros] if args.key?(:cpc_bid_ceiling_micros)
387
+ @cpc_bid_floor_micros = args[:cpc_bid_floor_micros] if args.key?(:cpc_bid_floor_micros)
388
+ @target_cpa_micros = args[:target_cpa_micros] if args.key?(:target_cpa_micros)
389
+ end
390
+ end
391
+
392
+ # Metrics data.
393
+ class GoogleAdsSearchads360V0CommonMetrics
394
+ include Google::Apis::Core::Hashable
395
+
396
+ # The percent of your ad impressions that are shown as the very first ad above
397
+ # the organic search results.
398
+ # Corresponds to the JSON property `absoluteTopImpressionPercentage`
399
+ # @return [Float]
400
+ attr_accessor :absolute_top_impression_percentage
401
+
402
+ # The total number of conversions. This includes all conversions regardless of
403
+ # the value of include_in_conversions_metric.
404
+ # Corresponds to the JSON property `allConversions`
405
+ # @return [Float]
406
+ attr_accessor :all_conversions
407
+
408
+ # The total number of conversions. This includes all conversions regardless of
409
+ # the value of include_in_conversions_metric. When this column is selected with
410
+ # date, the values in date column means the conversion date. Details for the
411
+ # by_conversion_date columns are available at https://support.google.com/sa360/
412
+ # answer/9250611.
413
+ # Corresponds to the JSON property `allConversionsByConversionDate`
414
+ # @return [Float]
415
+ attr_accessor :all_conversions_by_conversion_date
416
+
417
+ # The number of times people clicked the "Call" button to call a store during or
418
+ # after clicking an ad. This number doesn't include whether or not calls were
419
+ # connected, or the duration of any calls. This metric applies to feed items
420
+ # only.
421
+ # Corresponds to the JSON property `allConversionsFromClickToCall`
422
+ # @return [Float]
423
+ attr_accessor :all_conversions_from_click_to_call
424
+
425
+ # The number of times people clicked a "Get directions" button to navigate to a
426
+ # store after clicking an ad. This metric applies to feed items only.
427
+ # Corresponds to the JSON property `allConversionsFromDirections`
428
+ # @return [Float]
429
+ attr_accessor :all_conversions_from_directions
430
+
431
+ # All conversions from interactions (as oppose to view through conversions)
432
+ # divided by the number of ad interactions.
433
+ # Corresponds to the JSON property `allConversionsFromInteractionsRate`
434
+ # @return [Float]
435
+ attr_accessor :all_conversions_from_interactions_rate
436
+
437
+ # The value of all conversions from interactions divided by the total number of
438
+ # interactions.
439
+ # Corresponds to the JSON property `allConversionsFromInteractionsValuePerInteraction`
440
+ # @return [Float]
441
+ attr_accessor :all_conversions_from_interactions_value_per_interaction
442
+
443
+ # The number of times people clicked a link to view a store's menu after
444
+ # clicking an ad. This metric applies to feed items only.
445
+ # Corresponds to the JSON property `allConversionsFromMenu`
446
+ # @return [Float]
447
+ attr_accessor :all_conversions_from_menu
448
+
449
+ # The number of times people placed an order at a store after clicking an ad.
450
+ # This metric applies to feed items only.
451
+ # Corresponds to the JSON property `allConversionsFromOrder`
452
+ # @return [Float]
453
+ attr_accessor :all_conversions_from_order
454
+
455
+ # The number of other conversions (for example, posting a review or saving a
456
+ # location for a store) that occurred after people clicked an ad. This metric
457
+ # applies to feed items only.
458
+ # Corresponds to the JSON property `allConversionsFromOtherEngagement`
459
+ # @return [Float]
460
+ attr_accessor :all_conversions_from_other_engagement
461
+
462
+ # Estimated number of times people visited a store after clicking an ad. This
463
+ # metric applies to feed items only.
464
+ # Corresponds to the JSON property `allConversionsFromStoreVisit`
465
+ # @return [Float]
466
+ attr_accessor :all_conversions_from_store_visit
467
+
468
+ # The number of times that people were taken to a store's URL after clicking an
469
+ # ad. This metric applies to feed items only.
470
+ # Corresponds to the JSON property `allConversionsFromStoreWebsite`
471
+ # @return [Float]
472
+ attr_accessor :all_conversions_from_store_website
473
+
474
+ # The value of all conversions.
475
+ # Corresponds to the JSON property `allConversionsValue`
476
+ # @return [Float]
477
+ attr_accessor :all_conversions_value
478
+
479
+ # The value of all conversions. When this column is selected with date, the
480
+ # values in date column means the conversion date. Details for the
481
+ # by_conversion_date columns are available at https://support.google.com/sa360/
482
+ # answer/9250611.
483
+ # Corresponds to the JSON property `allConversionsValueByConversionDate`
484
+ # @return [Float]
485
+ attr_accessor :all_conversions_value_by_conversion_date
486
+
487
+ # The value of all conversions divided by the total cost of ad interactions (
488
+ # such as clicks for text ads or views for video ads).
489
+ # Corresponds to the JSON property `allConversionsValuePerCost`
490
+ # @return [Float]
491
+ attr_accessor :all_conversions_value_per_cost
492
+
493
+ # The average amount you pay per interaction. This amount is the total cost of
494
+ # your ads divided by the total number of interactions.
495
+ # Corresponds to the JSON property `averageCost`
496
+ # @return [Float]
497
+ attr_accessor :average_cost
498
+
499
+ # The total cost of all clicks divided by the total number of clicks received.
500
+ # Corresponds to the JSON property `averageCpc`
501
+ # @return [Float]
502
+ attr_accessor :average_cpc
503
+
504
+ # Average cost-per-thousand impressions (CPM).
505
+ # Corresponds to the JSON property `averageCpm`
506
+ # @return [Float]
507
+ attr_accessor :average_cpm
508
+
509
+ # The number of clicks.
510
+ # Corresponds to the JSON property `clicks`
511
+ # @return [Fixnum]
512
+ attr_accessor :clicks
513
+
514
+ # The number of client account conversions. This only includes conversion
515
+ # actions which include_in_client_account_conversions_metric attribute is set to
516
+ # true. If you use conversion-based bidding, your bid strategies will optimize
517
+ # for these conversions.
518
+ # Corresponds to the JSON property `clientAccountConversions`
519
+ # @return [Float]
520
+ attr_accessor :client_account_conversions
521
+
522
+ # The value of client account conversions. This only includes conversion actions
523
+ # which include_in_client_account_conversions_metric attribute is set to true.
524
+ # If you use conversion-based bidding, your bid strategies will optimize for
525
+ # these conversions.
526
+ # Corresponds to the JSON property `clientAccountConversionsValue`
527
+ # @return [Float]
528
+ attr_accessor :client_account_conversions_value
529
+
530
+ # The total number of view-through conversions. These happen when a customer
531
+ # sees an image or rich media ad, then later completes a conversion on your site
532
+ # without interacting with (for example, clicking on) another ad.
533
+ # Corresponds to the JSON property `clientAccountViewThroughConversions`
534
+ # @return [Fixnum]
535
+ attr_accessor :client_account_view_through_conversions
536
+
537
+ # The estimated percent of times that your ad was eligible to show on the
538
+ # Display Network but didn't because your budget was too low. Note: Content
539
+ # budget lost impression share is reported in the range of 0 to 0.9. Any value
540
+ # above 0.9 is reported as 0.9001.
541
+ # Corresponds to the JSON property `contentBudgetLostImpressionShare`
542
+ # @return [Float]
543
+ attr_accessor :content_budget_lost_impression_share
544
+
545
+ # The impressions you've received on the Display Network divided by the
546
+ # estimated number of impressions you were eligible to receive. Note: Content
547
+ # impression share is reported in the range of 0.1 to 1. Any value below 0.1 is
548
+ # reported as 0.0999.
549
+ # Corresponds to the JSON property `contentImpressionShare`
550
+ # @return [Float]
551
+ attr_accessor :content_impression_share
552
+
553
+ # The estimated percentage of impressions on the Display Network that your ads
554
+ # didn't receive due to poor Ad Rank. Note: Content rank lost impression share
555
+ # is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.
556
+ # 9001.
557
+ # Corresponds to the JSON property `contentRankLostImpressionShare`
558
+ # @return [Float]
559
+ attr_accessor :content_rank_lost_impression_share
560
+
561
+ # The number of conversions. This only includes conversion actions which
562
+ # include_in_conversions_metric attribute is set to true. If you use conversion-
563
+ # based bidding, your bid strategies will optimize for these conversions.
564
+ # Corresponds to the JSON property `conversions`
565
+ # @return [Float]
566
+ attr_accessor :conversions
567
+
568
+ # The sum of conversions by conversion date for biddable conversion types. Can
569
+ # be fractional due to attribution modeling. When this column is selected with
570
+ # date, the values in date column means the conversion date.
571
+ # Corresponds to the JSON property `conversionsByConversionDate`
572
+ # @return [Float]
573
+ attr_accessor :conversions_by_conversion_date
574
+
575
+ # Average biddable conversions (from interaction) per conversion eligible
576
+ # interaction. Shows how often, on average, an ad interaction leads to a
577
+ # biddable conversion.
578
+ # Corresponds to the JSON property `conversionsFromInteractionsRate`
579
+ # @return [Float]
580
+ attr_accessor :conversions_from_interactions_rate
581
+
582
+ # The value of conversions from interactions divided by the number of ad
583
+ # interactions. This only includes conversion actions which
584
+ # include_in_conversions_metric attribute is set to true. If you use conversion-
585
+ # based bidding, your bid strategies will optimize for these conversions.
586
+ # Corresponds to the JSON property `conversionsFromInteractionsValuePerInteraction`
587
+ # @return [Float]
588
+ attr_accessor :conversions_from_interactions_value_per_interaction
589
+
590
+ # The sum of conversion values for the conversions included in the "conversions"
591
+ # field. This metric is useful only if you entered a value for your conversion
592
+ # actions.
593
+ # Corresponds to the JSON property `conversionsValue`
594
+ # @return [Float]
595
+ attr_accessor :conversions_value
596
+
597
+ # The sum of biddable conversions value by conversion date. When this column is
598
+ # selected with date, the values in date column means the conversion date.
599
+ # Corresponds to the JSON property `conversionsValueByConversionDate`
600
+ # @return [Float]
601
+ attr_accessor :conversions_value_by_conversion_date
602
+
603
+ # The value of biddable conversion divided by the total cost of conversion
604
+ # eligible interactions.
605
+ # Corresponds to the JSON property `conversionsValuePerCost`
606
+ # @return [Float]
607
+ attr_accessor :conversions_value_per_cost
608
+
609
+ # The sum of your cost-per-click (CPC) and cost-per-thousand impressions (CPM)
610
+ # costs during this period.
611
+ # Corresponds to the JSON property `costMicros`
612
+ # @return [Fixnum]
613
+ attr_accessor :cost_micros
614
+
615
+ # The cost of ad interactions divided by all conversions.
616
+ # Corresponds to the JSON property `costPerAllConversions`
617
+ # @return [Float]
618
+ attr_accessor :cost_per_all_conversions
619
+
620
+ # Average conversion eligible cost per biddable conversion.
621
+ # Corresponds to the JSON property `costPerConversion`
622
+ # @return [Float]
623
+ attr_accessor :cost_per_conversion
624
+
625
+ # The cost of ad interactions divided by current model attributed conversions.
626
+ # This only includes conversion actions which include_in_conversions_metric
627
+ # attribute is set to true. If you use conversion-based bidding, your bid
628
+ # strategies will optimize for these conversions.
629
+ # Corresponds to the JSON property `costPerCurrentModelAttributedConversion`
630
+ # @return [Float]
631
+ attr_accessor :cost_per_current_model_attributed_conversion
632
+
633
+ # Conversions from when a customer clicks on an ad on one device, then converts
634
+ # on a different device or browser. Cross-device conversions are already
635
+ # included in all_conversions.
636
+ # Corresponds to the JSON property `crossDeviceConversions`
637
+ # @return [Float]
638
+ attr_accessor :cross_device_conversions
639
+
640
+ # The sum of the value of cross-device conversions.
641
+ # Corresponds to the JSON property `crossDeviceConversionsValue`
642
+ # @return [Float]
643
+ attr_accessor :cross_device_conversions_value
644
+
645
+ # The number of clicks your ad receives (Clicks) divided by the number of times
646
+ # your ad is shown (Impressions).
647
+ # Corresponds to the JSON property `ctr`
648
+ # @return [Float]
649
+ attr_accessor :ctr
650
+
651
+ # The creative historical quality score.
652
+ # Corresponds to the JSON property `historicalCreativeQualityScore`
653
+ # @return [String]
654
+ attr_accessor :historical_creative_quality_score
655
+
656
+ # The quality of historical landing page experience.
657
+ # Corresponds to the JSON property `historicalLandingPageQualityScore`
658
+ # @return [String]
659
+ attr_accessor :historical_landing_page_quality_score
660
+
661
+ # The historical quality score.
662
+ # Corresponds to the JSON property `historicalQualityScore`
663
+ # @return [Fixnum]
664
+ attr_accessor :historical_quality_score
665
+
666
+ # The historical search predicted click through rate (CTR).
667
+ # Corresponds to the JSON property `historicalSearchPredictedCtr`
668
+ # @return [String]
669
+ attr_accessor :historical_search_predicted_ctr
670
+
671
+ # Count of how often your ad has appeared on a search results page or website on
672
+ # the Google Network.
673
+ # Corresponds to the JSON property `impressions`
674
+ # @return [Fixnum]
675
+ attr_accessor :impressions
676
+
677
+ # The types of payable and free interactions.
678
+ # Corresponds to the JSON property `interactionEventTypes`
679
+ # @return [Array<String>]
680
+ attr_accessor :interaction_event_types
681
+
682
+ # How often people interact with your ad after it is shown to them. This is the
683
+ # number of interactions divided by the number of times your ad is shown.
684
+ # Corresponds to the JSON property `interactionRate`
685
+ # @return [Float]
686
+ attr_accessor :interaction_rate
687
+
688
+ # The number of interactions. An interaction is the main user action associated
689
+ # with an ad format-clicks for text and shopping ads, views for video ads, and
690
+ # so on.
691
+ # Corresponds to the JSON property `interactions`
692
+ # @return [Fixnum]
693
+ attr_accessor :interactions
694
+
695
+ # The percentage of clicks filtered out of your total number of clicks (filtered
696
+ # + non-filtered clicks) during the reporting period.
697
+ # Corresponds to the JSON property `invalidClickRate`
698
+ # @return [Float]
699
+ attr_accessor :invalid_click_rate
700
+
701
+ # Number of clicks Google considers illegitimate and doesn't charge you for.
702
+ # Corresponds to the JSON property `invalidClicks`
703
+ # @return [Fixnum]
704
+ attr_accessor :invalid_clicks
705
+
706
+ # The percentage of mobile clicks that go to a mobile-friendly page.
707
+ # Corresponds to the JSON property `mobileFriendlyClicksPercentage`
708
+ # @return [Float]
709
+ attr_accessor :mobile_friendly_clicks_percentage
710
+
711
+ # The percentage of the customer's Shopping or Search ad impressions that are
712
+ # shown in the most prominent Shopping position. See https://support.google.com/
713
+ # sa360/answer/9566729 for details. Any value below 0.1 is reported as 0.0999.
714
+ # Corresponds to the JSON property `searchAbsoluteTopImpressionShare`
715
+ # @return [Float]
716
+ attr_accessor :search_absolute_top_impression_share
717
+
718
+ # The number estimating how often your ad wasn't the very first ad above the
719
+ # organic search results due to a low budget. Note: Search budget lost absolute
720
+ # top impression share is reported in the range of 0 to 0.9. Any value above 0.9
721
+ # is reported as 0.9001.
722
+ # Corresponds to the JSON property `searchBudgetLostAbsoluteTopImpressionShare`
723
+ # @return [Float]
724
+ attr_accessor :search_budget_lost_absolute_top_impression_share
725
+
726
+ # The estimated percent of times that your ad was eligible to show on the Search
727
+ # Network but didn't because your budget was too low. Note: Search budget lost
728
+ # impression share is reported in the range of 0 to 0.9. Any value above 0.9 is
729
+ # reported as 0.9001.
730
+ # Corresponds to the JSON property `searchBudgetLostImpressionShare`
731
+ # @return [Float]
732
+ attr_accessor :search_budget_lost_impression_share
733
+
734
+ # The number estimating how often your ad didn't show anywhere above the organic
735
+ # search results due to a low budget. Note: Search budget lost top impression
736
+ # share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as
737
+ # 0.9001.
738
+ # Corresponds to the JSON property `searchBudgetLostTopImpressionShare`
739
+ # @return [Float]
740
+ attr_accessor :search_budget_lost_top_impression_share
741
+
742
+ # The number of clicks you've received on the Search Network divided by the
743
+ # estimated number of clicks you were eligible to receive. Note: Search click
744
+ # share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as
745
+ # 0.0999.
746
+ # Corresponds to the JSON property `searchClickShare`
747
+ # @return [Float]
748
+ attr_accessor :search_click_share
749
+
750
+ # The impressions you've received divided by the estimated number of impressions
751
+ # you were eligible to receive on the Search Network for search terms that
752
+ # matched your keywords exactly (or were close variants of your keyword),
753
+ # regardless of your keyword match types. Note: Search exact match impression
754
+ # share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as
755
+ # 0.0999.
756
+ # Corresponds to the JSON property `searchExactMatchImpressionShare`
757
+ # @return [Float]
758
+ attr_accessor :search_exact_match_impression_share
759
+
760
+ # The impressions you've received on the Search Network divided by the estimated
761
+ # number of impressions you were eligible to receive. Note: Search impression
762
+ # share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as
763
+ # 0.0999.
764
+ # Corresponds to the JSON property `searchImpressionShare`
765
+ # @return [Float]
766
+ attr_accessor :search_impression_share
767
+
768
+ # The number estimating how often your ad wasn't the very first ad above the
769
+ # organic search results due to poor Ad Rank. Note: Search rank lost absolute
770
+ # top impression share is reported in the range of 0 to 0.9. Any value above 0.9
771
+ # is reported as 0.9001.
772
+ # Corresponds to the JSON property `searchRankLostAbsoluteTopImpressionShare`
773
+ # @return [Float]
774
+ attr_accessor :search_rank_lost_absolute_top_impression_share
775
+
776
+ # The estimated percentage of impressions on the Search Network that your ads
777
+ # didn't receive due to poor Ad Rank. Note: Search rank lost impression share is
778
+ # reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.
779
+ # Corresponds to the JSON property `searchRankLostImpressionShare`
780
+ # @return [Float]
781
+ attr_accessor :search_rank_lost_impression_share
782
+
783
+ # The number estimating how often your ad didn't show anywhere above the organic
784
+ # search results due to poor Ad Rank. Note: Search rank lost top impression
785
+ # share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as
786
+ # 0.9001.
787
+ # Corresponds to the JSON property `searchRankLostTopImpressionShare`
788
+ # @return [Float]
789
+ attr_accessor :search_rank_lost_top_impression_share
790
+
791
+ # The impressions you've received in the top location (anywhere above the
792
+ # organic search results) compared to the estimated number of impressions you
793
+ # were eligible to receive in the top location. Note: Search top impression
794
+ # share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as
795
+ # 0.0999.
796
+ # Corresponds to the JSON property `searchTopImpressionShare`
797
+ # @return [Float]
798
+ attr_accessor :search_top_impression_share
799
+
800
+ # The percent of your ad impressions that are shown anywhere above the organic
801
+ # search results.
802
+ # Corresponds to the JSON property `topImpressionPercentage`
803
+ # @return [Float]
804
+ attr_accessor :top_impression_percentage
805
+
806
+ # The value of all conversions divided by the number of all conversions.
807
+ # Corresponds to the JSON property `valuePerAllConversions`
808
+ # @return [Float]
809
+ attr_accessor :value_per_all_conversions
810
+
811
+ # The value of all conversions divided by the number of all conversions. When
812
+ # this column is selected with date, the values in date column means the
813
+ # conversion date. Details for the by_conversion_date columns are available at
814
+ # https://support.google.com/sa360/answer/9250611.
815
+ # Corresponds to the JSON property `valuePerAllConversionsByConversionDate`
816
+ # @return [Float]
817
+ attr_accessor :value_per_all_conversions_by_conversion_date
818
+
819
+ # The value of biddable conversion divided by the number of biddable conversions.
820
+ # Shows how much, on average, each of the biddable conversions is worth.
821
+ # Corresponds to the JSON property `valuePerConversion`
822
+ # @return [Float]
823
+ attr_accessor :value_per_conversion
824
+
825
+ # Biddable conversions value by conversion date divided by biddable conversions
826
+ # by conversion date. Shows how much, on average, each of the biddable
827
+ # conversions is worth (by conversion date). When this column is selected with
828
+ # date, the values in date column means the conversion date.
829
+ # Corresponds to the JSON property `valuePerConversionsByConversionDate`
830
+ # @return [Float]
831
+ attr_accessor :value_per_conversions_by_conversion_date
832
+
833
+ def initialize(**args)
834
+ update!(**args)
835
+ end
836
+
837
+ # Update properties of this object
838
+ def update!(**args)
839
+ @absolute_top_impression_percentage = args[:absolute_top_impression_percentage] if args.key?(:absolute_top_impression_percentage)
840
+ @all_conversions = args[:all_conversions] if args.key?(:all_conversions)
841
+ @all_conversions_by_conversion_date = args[:all_conversions_by_conversion_date] if args.key?(:all_conversions_by_conversion_date)
842
+ @all_conversions_from_click_to_call = args[:all_conversions_from_click_to_call] if args.key?(:all_conversions_from_click_to_call)
843
+ @all_conversions_from_directions = args[:all_conversions_from_directions] if args.key?(:all_conversions_from_directions)
844
+ @all_conversions_from_interactions_rate = args[:all_conversions_from_interactions_rate] if args.key?(:all_conversions_from_interactions_rate)
845
+ @all_conversions_from_interactions_value_per_interaction = args[:all_conversions_from_interactions_value_per_interaction] if args.key?(:all_conversions_from_interactions_value_per_interaction)
846
+ @all_conversions_from_menu = args[:all_conversions_from_menu] if args.key?(:all_conversions_from_menu)
847
+ @all_conversions_from_order = args[:all_conversions_from_order] if args.key?(:all_conversions_from_order)
848
+ @all_conversions_from_other_engagement = args[:all_conversions_from_other_engagement] if args.key?(:all_conversions_from_other_engagement)
849
+ @all_conversions_from_store_visit = args[:all_conversions_from_store_visit] if args.key?(:all_conversions_from_store_visit)
850
+ @all_conversions_from_store_website = args[:all_conversions_from_store_website] if args.key?(:all_conversions_from_store_website)
851
+ @all_conversions_value = args[:all_conversions_value] if args.key?(:all_conversions_value)
852
+ @all_conversions_value_by_conversion_date = args[:all_conversions_value_by_conversion_date] if args.key?(:all_conversions_value_by_conversion_date)
853
+ @all_conversions_value_per_cost = args[:all_conversions_value_per_cost] if args.key?(:all_conversions_value_per_cost)
854
+ @average_cost = args[:average_cost] if args.key?(:average_cost)
855
+ @average_cpc = args[:average_cpc] if args.key?(:average_cpc)
856
+ @average_cpm = args[:average_cpm] if args.key?(:average_cpm)
857
+ @clicks = args[:clicks] if args.key?(:clicks)
858
+ @client_account_conversions = args[:client_account_conversions] if args.key?(:client_account_conversions)
859
+ @client_account_conversions_value = args[:client_account_conversions_value] if args.key?(:client_account_conversions_value)
860
+ @client_account_view_through_conversions = args[:client_account_view_through_conversions] if args.key?(:client_account_view_through_conversions)
861
+ @content_budget_lost_impression_share = args[:content_budget_lost_impression_share] if args.key?(:content_budget_lost_impression_share)
862
+ @content_impression_share = args[:content_impression_share] if args.key?(:content_impression_share)
863
+ @content_rank_lost_impression_share = args[:content_rank_lost_impression_share] if args.key?(:content_rank_lost_impression_share)
864
+ @conversions = args[:conversions] if args.key?(:conversions)
865
+ @conversions_by_conversion_date = args[:conversions_by_conversion_date] if args.key?(:conversions_by_conversion_date)
866
+ @conversions_from_interactions_rate = args[:conversions_from_interactions_rate] if args.key?(:conversions_from_interactions_rate)
867
+ @conversions_from_interactions_value_per_interaction = args[:conversions_from_interactions_value_per_interaction] if args.key?(:conversions_from_interactions_value_per_interaction)
868
+ @conversions_value = args[:conversions_value] if args.key?(:conversions_value)
869
+ @conversions_value_by_conversion_date = args[:conversions_value_by_conversion_date] if args.key?(:conversions_value_by_conversion_date)
870
+ @conversions_value_per_cost = args[:conversions_value_per_cost] if args.key?(:conversions_value_per_cost)
871
+ @cost_micros = args[:cost_micros] if args.key?(:cost_micros)
872
+ @cost_per_all_conversions = args[:cost_per_all_conversions] if args.key?(:cost_per_all_conversions)
873
+ @cost_per_conversion = args[:cost_per_conversion] if args.key?(:cost_per_conversion)
874
+ @cost_per_current_model_attributed_conversion = args[:cost_per_current_model_attributed_conversion] if args.key?(:cost_per_current_model_attributed_conversion)
875
+ @cross_device_conversions = args[:cross_device_conversions] if args.key?(:cross_device_conversions)
876
+ @cross_device_conversions_value = args[:cross_device_conversions_value] if args.key?(:cross_device_conversions_value)
877
+ @ctr = args[:ctr] if args.key?(:ctr)
878
+ @historical_creative_quality_score = args[:historical_creative_quality_score] if args.key?(:historical_creative_quality_score)
879
+ @historical_landing_page_quality_score = args[:historical_landing_page_quality_score] if args.key?(:historical_landing_page_quality_score)
880
+ @historical_quality_score = args[:historical_quality_score] if args.key?(:historical_quality_score)
881
+ @historical_search_predicted_ctr = args[:historical_search_predicted_ctr] if args.key?(:historical_search_predicted_ctr)
882
+ @impressions = args[:impressions] if args.key?(:impressions)
883
+ @interaction_event_types = args[:interaction_event_types] if args.key?(:interaction_event_types)
884
+ @interaction_rate = args[:interaction_rate] if args.key?(:interaction_rate)
885
+ @interactions = args[:interactions] if args.key?(:interactions)
886
+ @invalid_click_rate = args[:invalid_click_rate] if args.key?(:invalid_click_rate)
887
+ @invalid_clicks = args[:invalid_clicks] if args.key?(:invalid_clicks)
888
+ @mobile_friendly_clicks_percentage = args[:mobile_friendly_clicks_percentage] if args.key?(:mobile_friendly_clicks_percentage)
889
+ @search_absolute_top_impression_share = args[:search_absolute_top_impression_share] if args.key?(:search_absolute_top_impression_share)
890
+ @search_budget_lost_absolute_top_impression_share = args[:search_budget_lost_absolute_top_impression_share] if args.key?(:search_budget_lost_absolute_top_impression_share)
891
+ @search_budget_lost_impression_share = args[:search_budget_lost_impression_share] if args.key?(:search_budget_lost_impression_share)
892
+ @search_budget_lost_top_impression_share = args[:search_budget_lost_top_impression_share] if args.key?(:search_budget_lost_top_impression_share)
893
+ @search_click_share = args[:search_click_share] if args.key?(:search_click_share)
894
+ @search_exact_match_impression_share = args[:search_exact_match_impression_share] if args.key?(:search_exact_match_impression_share)
895
+ @search_impression_share = args[:search_impression_share] if args.key?(:search_impression_share)
896
+ @search_rank_lost_absolute_top_impression_share = args[:search_rank_lost_absolute_top_impression_share] if args.key?(:search_rank_lost_absolute_top_impression_share)
897
+ @search_rank_lost_impression_share = args[:search_rank_lost_impression_share] if args.key?(:search_rank_lost_impression_share)
898
+ @search_rank_lost_top_impression_share = args[:search_rank_lost_top_impression_share] if args.key?(:search_rank_lost_top_impression_share)
899
+ @search_top_impression_share = args[:search_top_impression_share] if args.key?(:search_top_impression_share)
900
+ @top_impression_percentage = args[:top_impression_percentage] if args.key?(:top_impression_percentage)
901
+ @value_per_all_conversions = args[:value_per_all_conversions] if args.key?(:value_per_all_conversions)
902
+ @value_per_all_conversions_by_conversion_date = args[:value_per_all_conversions_by_conversion_date] if args.key?(:value_per_all_conversions_by_conversion_date)
903
+ @value_per_conversion = args[:value_per_conversion] if args.key?(:value_per_conversion)
904
+ @value_per_conversions_by_conversion_date = args[:value_per_conversions_by_conversion_date] if args.key?(:value_per_conversions_by_conversion_date)
905
+ end
906
+ end
907
+
908
+ # A bidding strategy where bids are a fraction of the advertised price for some
909
+ # good or service.
910
+ class GoogleAdsSearchads360V0CommonPercentCpc
911
+ include Google::Apis::Core::Hashable
912
+
913
+ # Maximum bid limit that can be set by the bid strategy. This is an optional
914
+ # field entered by the advertiser and specified in local micros. Note: A zero
915
+ # value is interpreted in the same way as having bid_ceiling undefined.
916
+ # Corresponds to the JSON property `cpcBidCeilingMicros`
917
+ # @return [Fixnum]
918
+ attr_accessor :cpc_bid_ceiling_micros
919
+
920
+ # Adjusts the bid for each auction upward or downward, depending on the
921
+ # likelihood of a conversion. Individual bids may exceed cpc_bid_ceiling_micros,
922
+ # but the average bid amount for a campaign should not.
923
+ # Corresponds to the JSON property `enhancedCpcEnabled`
924
+ # @return [Boolean]
925
+ attr_accessor :enhanced_cpc_enabled
926
+ alias_method :enhanced_cpc_enabled?, :enhanced_cpc_enabled
927
+
928
+ def initialize(**args)
929
+ update!(**args)
930
+ end
931
+
932
+ # Update properties of this object
933
+ def update!(**args)
934
+ @cpc_bid_ceiling_micros = args[:cpc_bid_ceiling_micros] if args.key?(:cpc_bid_ceiling_micros)
935
+ @enhanced_cpc_enabled = args[:enhanced_cpc_enabled] if args.key?(:enhanced_cpc_enabled)
936
+ end
937
+ end
938
+
939
+ # Settings for Real-Time Bidding, a feature only available for campaigns
940
+ # targeting the Ad Exchange network.
941
+ class GoogleAdsSearchads360V0CommonRealTimeBiddingSetting
942
+ include Google::Apis::Core::Hashable
943
+
944
+ # Whether the campaign is opted in to real-time bidding.
945
+ # Corresponds to the JSON property `optIn`
946
+ # @return [Boolean]
947
+ attr_accessor :opt_in
948
+ alias_method :opt_in?, :opt_in
949
+
950
+ def initialize(**args)
951
+ update!(**args)
952
+ end
953
+
954
+ # Update properties of this object
955
+ def update!(**args)
956
+ @opt_in = args[:opt_in] if args.key?(:opt_in)
957
+ end
958
+ end
959
+
960
+ # Segment only fields.
961
+ class GoogleAdsSearchads360V0CommonSegments
962
+ include Google::Apis::Core::Hashable
963
+
964
+ # Resource name of the conversion action.
965
+ # Corresponds to the JSON property `conversionAction`
966
+ # @return [String]
967
+ attr_accessor :conversion_action
968
+
969
+ # Conversion action category.
970
+ # Corresponds to the JSON property `conversionActionCategory`
971
+ # @return [String]
972
+ attr_accessor :conversion_action_category
973
+
974
+ # Conversion action name.
975
+ # Corresponds to the JSON property `conversionActionName`
976
+ # @return [String]
977
+ attr_accessor :conversion_action_name
978
+
979
+ # Date to which metrics apply. yyyy-MM-dd format, for example, 2018-04-17.
980
+ # Corresponds to the JSON property `date`
981
+ # @return [String]
982
+ attr_accessor :date
983
+
984
+ # Day of the week, for example, MONDAY.
985
+ # Corresponds to the JSON property `dayOfWeek`
986
+ # @return [String]
987
+ attr_accessor :day_of_week
988
+
989
+ # Device to which metrics apply.
990
+ # Corresponds to the JSON property `device`
991
+ # @return [String]
992
+ attr_accessor :device
993
+
994
+ # Month as represented by the date of the first day of a month. Formatted as
995
+ # yyyy-MM-dd.
996
+ # Corresponds to the JSON property `month`
997
+ # @return [String]
998
+ attr_accessor :month
999
+
1000
+ # Quarter as represented by the date of the first day of a quarter. Uses the
1001
+ # calendar year for quarters, for example, the second quarter of 2018 starts on
1002
+ # 2018-04-01. Formatted as yyyy-MM-dd.
1003
+ # Corresponds to the JSON property `quarter`
1004
+ # @return [String]
1005
+ attr_accessor :quarter
1006
+
1007
+ # Week as defined as Monday through Sunday, and represented by the date of
1008
+ # Monday. Formatted as yyyy-MM-dd.
1009
+ # Corresponds to the JSON property `week`
1010
+ # @return [String]
1011
+ attr_accessor :week
1012
+
1013
+ # Year, formatted as yyyy.
1014
+ # Corresponds to the JSON property `year`
1015
+ # @return [Fixnum]
1016
+ attr_accessor :year
1017
+
1018
+ def initialize(**args)
1019
+ update!(**args)
1020
+ end
1021
+
1022
+ # Update properties of this object
1023
+ def update!(**args)
1024
+ @conversion_action = args[:conversion_action] if args.key?(:conversion_action)
1025
+ @conversion_action_category = args[:conversion_action_category] if args.key?(:conversion_action_category)
1026
+ @conversion_action_name = args[:conversion_action_name] if args.key?(:conversion_action_name)
1027
+ @date = args[:date] if args.key?(:date)
1028
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
1029
+ @device = args[:device] if args.key?(:device)
1030
+ @month = args[:month] if args.key?(:month)
1031
+ @quarter = args[:quarter] if args.key?(:quarter)
1032
+ @week = args[:week] if args.key?(:week)
1033
+ @year = args[:year] if args.key?(:year)
1034
+ end
1035
+ end
1036
+
1037
+ # An automated bid strategy that sets bids to help get as many conversions as
1038
+ # possible at the target cost-per-acquisition (CPA) you set.
1039
+ class GoogleAdsSearchads360V0CommonTargetCpa
1040
+ include Google::Apis::Core::Hashable
1041
+
1042
+ # Maximum bid limit that can be set by the bid strategy. The limit applies to
1043
+ # all keywords managed by the strategy. This should only be set for portfolio
1044
+ # bid strategies.
1045
+ # Corresponds to the JSON property `cpcBidCeilingMicros`
1046
+ # @return [Fixnum]
1047
+ attr_accessor :cpc_bid_ceiling_micros
1048
+
1049
+ # Minimum bid limit that can be set by the bid strategy. The limit applies to
1050
+ # all keywords managed by the strategy. This should only be set for portfolio
1051
+ # bid strategies.
1052
+ # Corresponds to the JSON property `cpcBidFloorMicros`
1053
+ # @return [Fixnum]
1054
+ attr_accessor :cpc_bid_floor_micros
1055
+
1056
+ # Average CPA target. This target should be greater than or equal to minimum
1057
+ # billable unit based on the currency for the account.
1058
+ # Corresponds to the JSON property `targetCpaMicros`
1059
+ # @return [Fixnum]
1060
+ attr_accessor :target_cpa_micros
1061
+
1062
+ def initialize(**args)
1063
+ update!(**args)
1064
+ end
1065
+
1066
+ # Update properties of this object
1067
+ def update!(**args)
1068
+ @cpc_bid_ceiling_micros = args[:cpc_bid_ceiling_micros] if args.key?(:cpc_bid_ceiling_micros)
1069
+ @cpc_bid_floor_micros = args[:cpc_bid_floor_micros] if args.key?(:cpc_bid_floor_micros)
1070
+ @target_cpa_micros = args[:target_cpa_micros] if args.key?(:target_cpa_micros)
1071
+ end
1072
+ end
1073
+
1074
+ # Target CPM (cost per thousand impressions) is an automated bidding strategy
1075
+ # that sets bids to optimize performance given the target CPM you set.
1076
+ class GoogleAdsSearchads360V0CommonTargetCpm
1077
+ include Google::Apis::Core::Hashable
1078
+
1079
+ def initialize(**args)
1080
+ update!(**args)
1081
+ end
1082
+
1083
+ # Update properties of this object
1084
+ def update!(**args)
1085
+ end
1086
+ end
1087
+
1088
+ # An automated bidding strategy that sets bids so that a certain percentage of
1089
+ # search ads are shown at the top of the first page (or other targeted location).
1090
+ class GoogleAdsSearchads360V0CommonTargetImpressionShare
1091
+ include Google::Apis::Core::Hashable
1092
+
1093
+ # The highest CPC bid the automated bidding system is permitted to specify. This
1094
+ # is a required field entered by the advertiser that sets the ceiling and
1095
+ # specified in local micros.
1096
+ # Corresponds to the JSON property `cpcBidCeilingMicros`
1097
+ # @return [Fixnum]
1098
+ attr_accessor :cpc_bid_ceiling_micros
1099
+
1100
+ # The targeted location on the search results page.
1101
+ # Corresponds to the JSON property `location`
1102
+ # @return [String]
1103
+ attr_accessor :location
1104
+
1105
+ # The chosen fraction of ads to be shown in the targeted location in micros. For
1106
+ # example, 1% equals 10,000.
1107
+ # Corresponds to the JSON property `locationFractionMicros`
1108
+ # @return [Fixnum]
1109
+ attr_accessor :location_fraction_micros
1110
+
1111
+ def initialize(**args)
1112
+ update!(**args)
1113
+ end
1114
+
1115
+ # Update properties of this object
1116
+ def update!(**args)
1117
+ @cpc_bid_ceiling_micros = args[:cpc_bid_ceiling_micros] if args.key?(:cpc_bid_ceiling_micros)
1118
+ @location = args[:location] if args.key?(:location)
1119
+ @location_fraction_micros = args[:location_fraction_micros] if args.key?(:location_fraction_micros)
1120
+ end
1121
+ end
1122
+
1123
+ # An automated bidding strategy that sets bids based on the target fraction of
1124
+ # auctions where the advertiser should outrank a specific competitor. This
1125
+ # strategy is deprecated.
1126
+ class GoogleAdsSearchads360V0CommonTargetOutrankShare
1127
+ include Google::Apis::Core::Hashable
1128
+
1129
+ # Maximum bid limit that can be set by the bid strategy. The limit applies to
1130
+ # all keywords managed by the strategy.
1131
+ # Corresponds to the JSON property `cpcBidCeilingMicros`
1132
+ # @return [Fixnum]
1133
+ attr_accessor :cpc_bid_ceiling_micros
1134
+
1135
+ def initialize(**args)
1136
+ update!(**args)
1137
+ end
1138
+
1139
+ # Update properties of this object
1140
+ def update!(**args)
1141
+ @cpc_bid_ceiling_micros = args[:cpc_bid_ceiling_micros] if args.key?(:cpc_bid_ceiling_micros)
1142
+ end
1143
+ end
1144
+
1145
+ # An automated bidding strategy that helps you maximize revenue while averaging
1146
+ # a specific target return on ad spend (ROAS).
1147
+ class GoogleAdsSearchads360V0CommonTargetRoas
1148
+ include Google::Apis::Core::Hashable
1149
+
1150
+ # Maximum bid limit that can be set by the bid strategy. The limit applies to
1151
+ # all keywords managed by the strategy. This should only be set for portfolio
1152
+ # bid strategies.
1153
+ # Corresponds to the JSON property `cpcBidCeilingMicros`
1154
+ # @return [Fixnum]
1155
+ attr_accessor :cpc_bid_ceiling_micros
1156
+
1157
+ # Minimum bid limit that can be set by the bid strategy. The limit applies to
1158
+ # all keywords managed by the strategy. This should only be set for portfolio
1159
+ # bid strategies.
1160
+ # Corresponds to the JSON property `cpcBidFloorMicros`
1161
+ # @return [Fixnum]
1162
+ attr_accessor :cpc_bid_floor_micros
1163
+
1164
+ # Required. The chosen revenue (based on conversion data) per unit of spend.
1165
+ # Value must be between 0.01 and 1000.0, inclusive.
1166
+ # Corresponds to the JSON property `targetRoas`
1167
+ # @return [Float]
1168
+ attr_accessor :target_roas
1169
+
1170
+ def initialize(**args)
1171
+ update!(**args)
1172
+ end
1173
+
1174
+ # Update properties of this object
1175
+ def update!(**args)
1176
+ @cpc_bid_ceiling_micros = args[:cpc_bid_ceiling_micros] if args.key?(:cpc_bid_ceiling_micros)
1177
+ @cpc_bid_floor_micros = args[:cpc_bid_floor_micros] if args.key?(:cpc_bid_floor_micros)
1178
+ @target_roas = args[:target_roas] if args.key?(:target_roas)
1179
+ end
1180
+ end
1181
+
1182
+ # An automated bid strategy that sets your bids to help get as many clicks as
1183
+ # possible within your budget.
1184
+ class GoogleAdsSearchads360V0CommonTargetSpend
1185
+ include Google::Apis::Core::Hashable
1186
+
1187
+ # Maximum bid limit that can be set by the bid strategy. The limit applies to
1188
+ # all keywords managed by the strategy.
1189
+ # Corresponds to the JSON property `cpcBidCeilingMicros`
1190
+ # @return [Fixnum]
1191
+ attr_accessor :cpc_bid_ceiling_micros
1192
+
1193
+ # The spend target under which to maximize clicks. A TargetSpend bidder will
1194
+ # attempt to spend the smaller of this value or the natural throttling spend
1195
+ # amount. If not specified, the budget is used as the spend target. This field
1196
+ # is deprecated and should no longer be used. See https://ads-developers.
1197
+ # googleblog.com/2020/05/reminder-about-sunset-creation-of.html for details.
1198
+ # Corresponds to the JSON property `targetSpendMicros`
1199
+ # @return [Fixnum]
1200
+ attr_accessor :target_spend_micros
1201
+
1202
+ def initialize(**args)
1203
+ update!(**args)
1204
+ end
1205
+
1206
+ # Update properties of this object
1207
+ def update!(**args)
1208
+ @cpc_bid_ceiling_micros = args[:cpc_bid_ceiling_micros] if args.key?(:cpc_bid_ceiling_micros)
1209
+ @target_spend_micros = args[:target_spend_micros] if args.key?(:target_spend_micros)
1210
+ end
1211
+ end
1212
+
1213
+ # A generic data container.
1214
+ class GoogleAdsSearchads360V0CommonValue
1215
+ include Google::Apis::Core::Hashable
1216
+
1217
+ # A boolean.
1218
+ # Corresponds to the JSON property `booleanValue`
1219
+ # @return [Boolean]
1220
+ attr_accessor :boolean_value
1221
+ alias_method :boolean_value?, :boolean_value
1222
+
1223
+ # A double.
1224
+ # Corresponds to the JSON property `doubleValue`
1225
+ # @return [Float]
1226
+ attr_accessor :double_value
1227
+
1228
+ # A float.
1229
+ # Corresponds to the JSON property `floatValue`
1230
+ # @return [Float]
1231
+ attr_accessor :float_value
1232
+
1233
+ # An int64.
1234
+ # Corresponds to the JSON property `int64Value`
1235
+ # @return [Fixnum]
1236
+ attr_accessor :int64_value
1237
+
1238
+ # A string.
1239
+ # Corresponds to the JSON property `stringValue`
1240
+ # @return [String]
1241
+ attr_accessor :string_value
1242
+
1243
+ def initialize(**args)
1244
+ update!(**args)
1245
+ end
1246
+
1247
+ # Update properties of this object
1248
+ def update!(**args)
1249
+ @boolean_value = args[:boolean_value] if args.key?(:boolean_value)
1250
+ @double_value = args[:double_value] if args.key?(:double_value)
1251
+ @float_value = args[:float_value] if args.key?(:float_value)
1252
+ @int64_value = args[:int64_value] if args.key?(:int64_value)
1253
+ @string_value = args[:string_value] if args.key?(:string_value)
1254
+ end
1255
+ end
1256
+
1257
+ # Logical expression for targeting webpages of an advertiser's website.
1258
+ class GoogleAdsSearchads360V0CommonWebpageConditionInfo
1259
+ include Google::Apis::Core::Hashable
1260
+
1261
+ # Argument of webpage targeting condition.
1262
+ # Corresponds to the JSON property `argument`
1263
+ # @return [String]
1264
+ attr_accessor :argument
1265
+
1266
+ # Operand of webpage targeting condition.
1267
+ # Corresponds to the JSON property `operand`
1268
+ # @return [String]
1269
+ attr_accessor :operand
1270
+
1271
+ # Operator of webpage targeting condition.
1272
+ # Corresponds to the JSON property `operator`
1273
+ # @return [String]
1274
+ attr_accessor :operator
1275
+
1276
+ def initialize(**args)
1277
+ update!(**args)
1278
+ end
1279
+
1280
+ # Update properties of this object
1281
+ def update!(**args)
1282
+ @argument = args[:argument] if args.key?(:argument)
1283
+ @operand = args[:operand] if args.key?(:operand)
1284
+ @operator = args[:operator] if args.key?(:operator)
1285
+ end
1286
+ end
1287
+
1288
+ # Represents a criterion for targeting webpages of an advertiser's website.
1289
+ class GoogleAdsSearchads360V0CommonWebpageInfo
1290
+ include Google::Apis::Core::Hashable
1291
+
1292
+ # Conditions, or logical expressions, for webpage targeting. The list of webpage
1293
+ # targeting conditions are and-ed together when evaluated for targeting. An
1294
+ # empty list of conditions indicates all pages of the campaign's website are
1295
+ # targeted. This field is required for CREATE operations and is prohibited on
1296
+ # UPDATE operations.
1297
+ # Corresponds to the JSON property `conditions`
1298
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonWebpageConditionInfo>]
1299
+ attr_accessor :conditions
1300
+
1301
+ # Website criteria coverage percentage. This is the computed percentage of
1302
+ # website coverage based on the website target, negative website target and
1303
+ # negative keywords in the ad group and campaign. For instance, when coverage
1304
+ # returns as 1, it indicates it has 100% coverage. This field is read-only.
1305
+ # Corresponds to the JSON property `coveragePercentage`
1306
+ # @return [Float]
1307
+ attr_accessor :coverage_percentage
1308
+
1309
+ # The name of the criterion that is defined by this parameter. The name value
1310
+ # will be used for identifying, sorting and filtering criteria with this type of
1311
+ # parameters. This field is required for CREATE operations and is prohibited on
1312
+ # UPDATE operations.
1313
+ # Corresponds to the JSON property `criterionName`
1314
+ # @return [String]
1315
+ attr_accessor :criterion_name
1316
+
1317
+ def initialize(**args)
1318
+ update!(**args)
1319
+ end
1320
+
1321
+ # Update properties of this object
1322
+ def update!(**args)
1323
+ @conditions = args[:conditions] if args.key?(:conditions)
1324
+ @coverage_percentage = args[:coverage_percentage] if args.key?(:coverage_percentage)
1325
+ @criterion_name = args[:criterion_name] if args.key?(:criterion_name)
1326
+ end
1327
+ end
1328
+
1329
+ # A part of a field path.
1330
+ class GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement
1331
+ include Google::Apis::Core::Hashable
1332
+
1333
+ # The name of a field or a oneof
1334
+ # Corresponds to the JSON property `fieldName`
1335
+ # @return [String]
1336
+ attr_accessor :field_name
1337
+
1338
+ # If field_name is a repeated field, this is the element that failed
1339
+ # Corresponds to the JSON property `index`
1340
+ # @return [Fixnum]
1341
+ attr_accessor :index
1342
+
1343
+ def initialize(**args)
1344
+ update!(**args)
1345
+ end
1346
+
1347
+ # Update properties of this object
1348
+ def update!(**args)
1349
+ @field_name = args[:field_name] if args.key?(:field_name)
1350
+ @index = args[:index] if args.key?(:index)
1351
+ end
1352
+ end
1353
+
1354
+ # The error reason represented by type and enum.
1355
+ class GoogleAdsSearchads360V0ErrorsErrorCode
1356
+ include Google::Apis::Core::Hashable
1357
+
1358
+ # Indicates failure to properly authenticate user.
1359
+ # Corresponds to the JSON property `authenticationError`
1360
+ # @return [String]
1361
+ attr_accessor :authentication_error
1362
+
1363
+ # An error encountered when trying to authorize a user.
1364
+ # Corresponds to the JSON property `authorizationError`
1365
+ # @return [String]
1366
+ attr_accessor :authorization_error
1367
+
1368
+ # The reasons for the date error
1369
+ # Corresponds to the JSON property `dateError`
1370
+ # @return [String]
1371
+ attr_accessor :date_error
1372
+
1373
+ # The reasons for the date range error
1374
+ # Corresponds to the JSON property `dateRangeError`
1375
+ # @return [String]
1376
+ attr_accessor :date_range_error
1377
+
1378
+ # The reasons for the distinct error
1379
+ # Corresponds to the JSON property `distinctError`
1380
+ # @return [String]
1381
+ attr_accessor :distinct_error
1382
+
1383
+ # The reasons for the header error.
1384
+ # Corresponds to the JSON property `headerError`
1385
+ # @return [String]
1386
+ attr_accessor :header_error
1387
+
1388
+ # An unexpected server-side error.
1389
+ # Corresponds to the JSON property `internalError`
1390
+ # @return [String]
1391
+ attr_accessor :internal_error
1392
+
1393
+ # An error with the query
1394
+ # Corresponds to the JSON property `queryError`
1395
+ # @return [String]
1396
+ attr_accessor :query_error
1397
+
1398
+ # An error with the amonut of quota remaining.
1399
+ # Corresponds to the JSON property `quotaError`
1400
+ # @return [String]
1401
+ attr_accessor :quota_error
1402
+
1403
+ # An error caused by the request
1404
+ # Corresponds to the JSON property `requestError`
1405
+ # @return [String]
1406
+ attr_accessor :request_error
1407
+
1408
+ # The reasons for the size limit error
1409
+ # Corresponds to the JSON property `sizeLimitError`
1410
+ # @return [String]
1411
+ attr_accessor :size_limit_error
1412
+
1413
+ def initialize(**args)
1414
+ update!(**args)
1415
+ end
1416
+
1417
+ # Update properties of this object
1418
+ def update!(**args)
1419
+ @authentication_error = args[:authentication_error] if args.key?(:authentication_error)
1420
+ @authorization_error = args[:authorization_error] if args.key?(:authorization_error)
1421
+ @date_error = args[:date_error] if args.key?(:date_error)
1422
+ @date_range_error = args[:date_range_error] if args.key?(:date_range_error)
1423
+ @distinct_error = args[:distinct_error] if args.key?(:distinct_error)
1424
+ @header_error = args[:header_error] if args.key?(:header_error)
1425
+ @internal_error = args[:internal_error] if args.key?(:internal_error)
1426
+ @query_error = args[:query_error] if args.key?(:query_error)
1427
+ @quota_error = args[:quota_error] if args.key?(:quota_error)
1428
+ @request_error = args[:request_error] if args.key?(:request_error)
1429
+ @size_limit_error = args[:size_limit_error] if args.key?(:size_limit_error)
1430
+ end
1431
+ end
1432
+
1433
+ # Additional error details.
1434
+ class GoogleAdsSearchads360V0ErrorsErrorDetails
1435
+ include Google::Apis::Core::Hashable
1436
+
1437
+ # Additional quota error details when there is QuotaError.
1438
+ # Corresponds to the JSON property `quotaErrorDetails`
1439
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ErrorsQuotaErrorDetails]
1440
+ attr_accessor :quota_error_details
1441
+
1442
+ # The error code that should have been returned, but wasn't. This is used when
1443
+ # the error code is not published in the client specified version.
1444
+ # Corresponds to the JSON property `unpublishedErrorCode`
1445
+ # @return [String]
1446
+ attr_accessor :unpublished_error_code
1447
+
1448
+ def initialize(**args)
1449
+ update!(**args)
1450
+ end
1451
+
1452
+ # Update properties of this object
1453
+ def update!(**args)
1454
+ @quota_error_details = args[:quota_error_details] if args.key?(:quota_error_details)
1455
+ @unpublished_error_code = args[:unpublished_error_code] if args.key?(:unpublished_error_code)
1456
+ end
1457
+ end
1458
+
1459
+ # Describes the part of the request proto that caused the error.
1460
+ class GoogleAdsSearchads360V0ErrorsErrorLocation
1461
+ include Google::Apis::Core::Hashable
1462
+
1463
+ # A field path that indicates which field was invalid in the request.
1464
+ # Corresponds to the JSON property `fieldPathElements`
1465
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ErrorsErrorLocationFieldPathElement>]
1466
+ attr_accessor :field_path_elements
1467
+
1468
+ def initialize(**args)
1469
+ update!(**args)
1470
+ end
1471
+
1472
+ # Update properties of this object
1473
+ def update!(**args)
1474
+ @field_path_elements = args[:field_path_elements] if args.key?(:field_path_elements)
1475
+ end
1476
+ end
1477
+
1478
+ # Additional quota error details when there is QuotaError.
1479
+ class GoogleAdsSearchads360V0ErrorsQuotaErrorDetails
1480
+ include Google::Apis::Core::Hashable
1481
+
1482
+ # The high level description of the quota bucket. Examples are "Get requests for
1483
+ # standard access" or "Requests per account".
1484
+ # Corresponds to the JSON property `rateName`
1485
+ # @return [String]
1486
+ attr_accessor :rate_name
1487
+
1488
+ # The rate scope of the quota limit.
1489
+ # Corresponds to the JSON property `rateScope`
1490
+ # @return [String]
1491
+ attr_accessor :rate_scope
1492
+
1493
+ # Backoff period that customers should wait before sending next request.
1494
+ # Corresponds to the JSON property `retryDelay`
1495
+ # @return [String]
1496
+ attr_accessor :retry_delay
1497
+
1498
+ def initialize(**args)
1499
+ update!(**args)
1500
+ end
1501
+
1502
+ # Update properties of this object
1503
+ def update!(**args)
1504
+ @rate_name = args[:rate_name] if args.key?(:rate_name)
1505
+ @rate_scope = args[:rate_scope] if args.key?(:rate_scope)
1506
+ @retry_delay = args[:retry_delay] if args.key?(:retry_delay)
1507
+ end
1508
+ end
1509
+
1510
+ # SearchAds360-specific error.
1511
+ class GoogleAdsSearchads360V0ErrorsSearchAds360Error
1512
+ include Google::Apis::Core::Hashable
1513
+
1514
+ # Additional error details.
1515
+ # Corresponds to the JSON property `details`
1516
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ErrorsErrorDetails]
1517
+ attr_accessor :details
1518
+
1519
+ # The error reason represented by type and enum.
1520
+ # Corresponds to the JSON property `errorCode`
1521
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ErrorsErrorCode]
1522
+ attr_accessor :error_code
1523
+
1524
+ # Describes the part of the request proto that caused the error.
1525
+ # Corresponds to the JSON property `location`
1526
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ErrorsErrorLocation]
1527
+ attr_accessor :location
1528
+
1529
+ # A human-readable description of the error.
1530
+ # Corresponds to the JSON property `message`
1531
+ # @return [String]
1532
+ attr_accessor :message
1533
+
1534
+ # A generic data container.
1535
+ # Corresponds to the JSON property `trigger`
1536
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonValue]
1537
+ attr_accessor :trigger
1538
+
1539
+ def initialize(**args)
1540
+ update!(**args)
1541
+ end
1542
+
1543
+ # Update properties of this object
1544
+ def update!(**args)
1545
+ @details = args[:details] if args.key?(:details)
1546
+ @error_code = args[:error_code] if args.key?(:error_code)
1547
+ @location = args[:location] if args.key?(:location)
1548
+ @message = args[:message] if args.key?(:message)
1549
+ @trigger = args[:trigger] if args.key?(:trigger)
1550
+ end
1551
+ end
1552
+
1553
+ # Describes how a Search Ads 360 API call failed. It's returned inside google.
1554
+ # rpc.Status.details when a call fails.
1555
+ class GoogleAdsSearchads360V0ErrorsSearchAds360Failure
1556
+ include Google::Apis::Core::Hashable
1557
+
1558
+ # The list of errors that occurred.
1559
+ # Corresponds to the JSON property `errors`
1560
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ErrorsSearchAds360Error>]
1561
+ attr_accessor :errors
1562
+
1563
+ # The unique ID of the request that is used for debugging purposes.
1564
+ # Corresponds to the JSON property `requestId`
1565
+ # @return [String]
1566
+ attr_accessor :request_id
1567
+
1568
+ def initialize(**args)
1569
+ update!(**args)
1570
+ end
1571
+
1572
+ # Update properties of this object
1573
+ def update!(**args)
1574
+ @errors = args[:errors] if args.key?(:errors)
1575
+ @request_id = args[:request_id] if args.key?(:request_id)
1576
+ end
1577
+ end
1578
+
1579
+ # A container for ad group criterion quality information.
1580
+ class GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo
1581
+ include Google::Apis::Core::Hashable
1582
+
1583
+ # Output only. The quality score. This field may not be populated if Google does
1584
+ # not have enough information to determine a value.
1585
+ # Corresponds to the JSON property `qualityScore`
1586
+ # @return [Fixnum]
1587
+ attr_accessor :quality_score
1588
+
1589
+ def initialize(**args)
1590
+ update!(**args)
1591
+ end
1592
+
1593
+ # Update properties of this object
1594
+ def update!(**args)
1595
+ @quality_score = args[:quality_score] if args.key?(:quality_score)
1596
+ end
1597
+ end
1598
+
1599
+ # The setting for controlling Dynamic Search Ads (DSA).
1600
+ class GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting
1601
+ include Google::Apis::Core::Hashable
1602
+
1603
+ # Required. The Internet domain name that this setting represents, for example, "
1604
+ # google.com" or "www.google.com".
1605
+ # Corresponds to the JSON property `domainName`
1606
+ # @return [String]
1607
+ attr_accessor :domain_name
1608
+
1609
+ # Required. The language code specifying the language of the domain, for example,
1610
+ # "en".
1611
+ # Corresponds to the JSON property `languageCode`
1612
+ # @return [String]
1613
+ attr_accessor :language_code
1614
+
1615
+ # Whether the campaign uses advertiser supplied URLs exclusively.
1616
+ # Corresponds to the JSON property `useSuppliedUrlsOnly`
1617
+ # @return [Boolean]
1618
+ attr_accessor :use_supplied_urls_only
1619
+ alias_method :use_supplied_urls_only?, :use_supplied_urls_only
1620
+
1621
+ def initialize(**args)
1622
+ update!(**args)
1623
+ end
1624
+
1625
+ # Update properties of this object
1626
+ def update!(**args)
1627
+ @domain_name = args[:domain_name] if args.key?(:domain_name)
1628
+ @language_code = args[:language_code] if args.key?(:language_code)
1629
+ @use_supplied_urls_only = args[:use_supplied_urls_only] if args.key?(:use_supplied_urls_only)
1630
+ end
1631
+ end
1632
+
1633
+ # Represents a collection of settings related to ads geotargeting.
1634
+ class GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting
1635
+ include Google::Apis::Core::Hashable
1636
+
1637
+ # The setting used for negative geotargeting in this particular campaign.
1638
+ # Corresponds to the JSON property `negativeGeoTargetType`
1639
+ # @return [String]
1640
+ attr_accessor :negative_geo_target_type
1641
+
1642
+ # The setting used for positive geotargeting in this particular campaign.
1643
+ # Corresponds to the JSON property `positiveGeoTargetType`
1644
+ # @return [String]
1645
+ attr_accessor :positive_geo_target_type
1646
+
1647
+ def initialize(**args)
1648
+ update!(**args)
1649
+ end
1650
+
1651
+ # Update properties of this object
1652
+ def update!(**args)
1653
+ @negative_geo_target_type = args[:negative_geo_target_type] if args.key?(:negative_geo_target_type)
1654
+ @positive_geo_target_type = args[:positive_geo_target_type] if args.key?(:positive_geo_target_type)
1655
+ end
1656
+ end
1657
+
1658
+ # The network settings for the campaign.
1659
+ class GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings
1660
+ include Google::Apis::Core::Hashable
1661
+
1662
+ # Whether ads will be served on specified placements in the Google Display
1663
+ # Network. Placements are specified using the Placement criterion.
1664
+ # Corresponds to the JSON property `targetContentNetwork`
1665
+ # @return [Boolean]
1666
+ attr_accessor :target_content_network
1667
+ alias_method :target_content_network?, :target_content_network
1668
+
1669
+ # Whether ads will be served with google.com search results.
1670
+ # Corresponds to the JSON property `targetGoogleSearch`
1671
+ # @return [Boolean]
1672
+ attr_accessor :target_google_search
1673
+ alias_method :target_google_search?, :target_google_search
1674
+
1675
+ # Whether ads will be served on the Google Partner Network. This is available
1676
+ # only to some select Google partner accounts.
1677
+ # Corresponds to the JSON property `targetPartnerSearchNetwork`
1678
+ # @return [Boolean]
1679
+ attr_accessor :target_partner_search_network
1680
+ alias_method :target_partner_search_network?, :target_partner_search_network
1681
+
1682
+ # Whether ads will be served on partner sites in the Google Search Network (
1683
+ # requires `target_google_search` to also be `true`).
1684
+ # Corresponds to the JSON property `targetSearchNetwork`
1685
+ # @return [Boolean]
1686
+ attr_accessor :target_search_network
1687
+ alias_method :target_search_network?, :target_search_network
1688
+
1689
+ def initialize(**args)
1690
+ update!(**args)
1691
+ end
1692
+
1693
+ # Update properties of this object
1694
+ def update!(**args)
1695
+ @target_content_network = args[:target_content_network] if args.key?(:target_content_network)
1696
+ @target_google_search = args[:target_google_search] if args.key?(:target_google_search)
1697
+ @target_partner_search_network = args[:target_partner_search_network] if args.key?(:target_partner_search_network)
1698
+ @target_search_network = args[:target_search_network] if args.key?(:target_search_network)
1699
+ end
1700
+ end
1701
+
1702
+ # Optimization goal setting for this campaign, which includes a set of
1703
+ # optimization goal types.
1704
+ class GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting
1705
+ include Google::Apis::Core::Hashable
1706
+
1707
+ # The list of optimization goal types.
1708
+ # Corresponds to the JSON property `optimizationGoalTypes`
1709
+ # @return [Array<String>]
1710
+ attr_accessor :optimization_goal_types
1711
+
1712
+ def initialize(**args)
1713
+ update!(**args)
1714
+ end
1715
+
1716
+ # Update properties of this object
1717
+ def update!(**args)
1718
+ @optimization_goal_types = args[:optimization_goal_types] if args.key?(:optimization_goal_types)
1719
+ end
1720
+ end
1721
+
1722
+ # Selective optimization setting for this campaign, which includes a set of
1723
+ # conversion actions to optimize this campaign towards.
1724
+ class GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization
1725
+ include Google::Apis::Core::Hashable
1726
+
1727
+ # The selected set of conversion actions for optimizing this campaign.
1728
+ # Corresponds to the JSON property `conversionActions`
1729
+ # @return [Array<String>]
1730
+ attr_accessor :conversion_actions
1731
+
1732
+ def initialize(**args)
1733
+ update!(**args)
1734
+ end
1735
+
1736
+ # Update properties of this object
1737
+ def update!(**args)
1738
+ @conversion_actions = args[:conversion_actions] if args.key?(:conversion_actions)
1739
+ end
1740
+ end
1741
+
1742
+ # The setting for Shopping campaigns. Defines the universe of products that can
1743
+ # be advertised by the campaign, and how this campaign interacts with other
1744
+ # Shopping campaigns.
1745
+ class GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting
1746
+ include Google::Apis::Core::Hashable
1747
+
1748
+ # Priority of the campaign. Campaigns with numerically higher priorities take
1749
+ # precedence over those with lower priorities. This field is required for
1750
+ # Shopping campaigns, with values between 0 and 2, inclusive. This field is
1751
+ # optional for Smart Shopping campaigns, but must be equal to 3 if set.
1752
+ # Corresponds to the JSON property `campaignPriority`
1753
+ # @return [Fixnum]
1754
+ attr_accessor :campaign_priority
1755
+
1756
+ # Whether to include local products.
1757
+ # Corresponds to the JSON property `enableLocal`
1758
+ # @return [Boolean]
1759
+ attr_accessor :enable_local
1760
+ alias_method :enable_local?, :enable_local
1761
+
1762
+ # Feed label of products to include in the campaign. Only one of feed_label or
1763
+ # sales_country can be set. If used instead of sales_country, the feed_label
1764
+ # field accepts country codes in the same format for example: 'XX'. Otherwise
1765
+ # can be any string used for feed label in Google Merchant Center.
1766
+ # Corresponds to the JSON property `feedLabel`
1767
+ # @return [String]
1768
+ attr_accessor :feed_label
1769
+
1770
+ # Immutable. ID of the Merchant Center account. This field is required for
1771
+ # create operations. This field is immutable for Shopping campaigns.
1772
+ # Corresponds to the JSON property `merchantId`
1773
+ # @return [Fixnum]
1774
+ attr_accessor :merchant_id
1775
+
1776
+ # Sales country of products to include in the campaign.
1777
+ # Corresponds to the JSON property `salesCountry`
1778
+ # @return [String]
1779
+ attr_accessor :sales_country
1780
+
1781
+ # Immutable. Whether to target Vehicle Listing inventory.
1782
+ # Corresponds to the JSON property `useVehicleInventory`
1783
+ # @return [Boolean]
1784
+ attr_accessor :use_vehicle_inventory
1785
+ alias_method :use_vehicle_inventory?, :use_vehicle_inventory
1786
+
1787
+ def initialize(**args)
1788
+ update!(**args)
1789
+ end
1790
+
1791
+ # Update properties of this object
1792
+ def update!(**args)
1793
+ @campaign_priority = args[:campaign_priority] if args.key?(:campaign_priority)
1794
+ @enable_local = args[:enable_local] if args.key?(:enable_local)
1795
+ @feed_label = args[:feed_label] if args.key?(:feed_label)
1796
+ @merchant_id = args[:merchant_id] if args.key?(:merchant_id)
1797
+ @sales_country = args[:sales_country] if args.key?(:sales_country)
1798
+ @use_vehicle_inventory = args[:use_vehicle_inventory] if args.key?(:use_vehicle_inventory)
1799
+ end
1800
+ end
1801
+
1802
+ # Campaign-level settings for tracking information.
1803
+ class GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting
1804
+ include Google::Apis::Core::Hashable
1805
+
1806
+ # Output only. The url used for dynamic tracking.
1807
+ # Corresponds to the JSON property `trackingUrl`
1808
+ # @return [String]
1809
+ attr_accessor :tracking_url
1810
+
1811
+ def initialize(**args)
1812
+ update!(**args)
1813
+ end
1814
+
1815
+ # Update properties of this object
1816
+ def update!(**args)
1817
+ @tracking_url = args[:tracking_url] if args.key?(:tracking_url)
1818
+ end
1819
+ end
1820
+
1821
+ # Settings related to this conversion action's attribution model.
1822
+ class GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings
1823
+ include Google::Apis::Core::Hashable
1824
+
1825
+ # The attribution model type of this conversion action.
1826
+ # Corresponds to the JSON property `attributionModel`
1827
+ # @return [String]
1828
+ attr_accessor :attribution_model
1829
+
1830
+ # Output only. The status of the data-driven attribution model for the
1831
+ # conversion action.
1832
+ # Corresponds to the JSON property `dataDrivenModelStatus`
1833
+ # @return [String]
1834
+ attr_accessor :data_driven_model_status
1835
+
1836
+ def initialize(**args)
1837
+ update!(**args)
1838
+ end
1839
+
1840
+ # Update properties of this object
1841
+ def update!(**args)
1842
+ @attribution_model = args[:attribution_model] if args.key?(:attribution_model)
1843
+ @data_driven_model_status = args[:data_driven_model_status] if args.key?(:data_driven_model_status)
1844
+ end
1845
+ end
1846
+
1847
+ # Settings related to a Floodlight conversion action.
1848
+ class GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings
1849
+ include Google::Apis::Core::Hashable
1850
+
1851
+ # Output only. String used to identify a Floodlight activity group when
1852
+ # reporting conversions.
1853
+ # Corresponds to the JSON property `activityGroupTag`
1854
+ # @return [String]
1855
+ attr_accessor :activity_group_tag
1856
+
1857
+ # Output only. ID of the Floodlight activity in DoubleClick Campaign Manager (
1858
+ # DCM).
1859
+ # Corresponds to the JSON property `activityId`
1860
+ # @return [Fixnum]
1861
+ attr_accessor :activity_id
1862
+
1863
+ # Output only. String used to identify a Floodlight activity when reporting
1864
+ # conversions.
1865
+ # Corresponds to the JSON property `activityTag`
1866
+ # @return [String]
1867
+ attr_accessor :activity_tag
1868
+
1869
+ def initialize(**args)
1870
+ update!(**args)
1871
+ end
1872
+
1873
+ # Update properties of this object
1874
+ def update!(**args)
1875
+ @activity_group_tag = args[:activity_group_tag] if args.key?(:activity_group_tag)
1876
+ @activity_id = args[:activity_id] if args.key?(:activity_id)
1877
+ @activity_tag = args[:activity_tag] if args.key?(:activity_tag)
1878
+ end
1879
+ end
1880
+
1881
+ # Settings related to the value for conversion events associated with this
1882
+ # conversion action.
1883
+ class GoogleAdsSearchads360V0ResourcesConversionActionValueSettings
1884
+ include Google::Apis::Core::Hashable
1885
+
1886
+ # Controls whether the default value and default currency code are used in place
1887
+ # of the value and currency code specified in conversion events for this
1888
+ # conversion action.
1889
+ # Corresponds to the JSON property `alwaysUseDefaultValue`
1890
+ # @return [Boolean]
1891
+ attr_accessor :always_use_default_value
1892
+ alias_method :always_use_default_value?, :always_use_default_value
1893
+
1894
+ # The currency code to use when conversion events for this conversion action are
1895
+ # sent with an invalid or missing currency code, or when this conversion action
1896
+ # is configured to always use the default value.
1897
+ # Corresponds to the JSON property `defaultCurrencyCode`
1898
+ # @return [String]
1899
+ attr_accessor :default_currency_code
1900
+
1901
+ # The value to use when conversion events for this conversion action are sent
1902
+ # with an invalid, disallowed or missing value, or when this conversion action
1903
+ # is configured to always use the default value.
1904
+ # Corresponds to the JSON property `defaultValue`
1905
+ # @return [Float]
1906
+ attr_accessor :default_value
1907
+
1908
+ def initialize(**args)
1909
+ update!(**args)
1910
+ end
1911
+
1912
+ # Update properties of this object
1913
+ def update!(**args)
1914
+ @always_use_default_value = args[:always_use_default_value] if args.key?(:always_use_default_value)
1915
+ @default_currency_code = args[:default_currency_code] if args.key?(:default_currency_code)
1916
+ @default_value = args[:default_value] if args.key?(:default_value)
1917
+ end
1918
+ end
1919
+
1920
+ # An ad group.
1921
+ class GoogleAdsSearchads360V0ResourcesAdGroup
1922
+ include Google::Apis::Core::Hashable
1923
+
1924
+ # The ad rotation mode of the ad group.
1925
+ # Corresponds to the JSON property `adRotationMode`
1926
+ # @return [String]
1927
+ attr_accessor :ad_rotation_mode
1928
+
1929
+ # The maximum CPC (cost-per-click) bid.
1930
+ # Corresponds to the JSON property `cpcBidMicros`
1931
+ # @return [Fixnum]
1932
+ attr_accessor :cpc_bid_micros
1933
+
1934
+ # Output only. The ID of the ad group.
1935
+ # Corresponds to the JSON property `id`
1936
+ # @return [Fixnum]
1937
+ attr_accessor :id
1938
+
1939
+ # The name of the ad group. This field is required and should not be empty when
1940
+ # creating new ad groups. It must contain fewer than 255 UTF-8 full-width
1941
+ # characters. It must not contain any null (code point 0x0), NL line feed (code
1942
+ # point 0xA) or carriage return (code point 0xD) characters.
1943
+ # Corresponds to the JSON property `name`
1944
+ # @return [String]
1945
+ attr_accessor :name
1946
+
1947
+ # Immutable. The resource name of the ad group. Ad group resource names have the
1948
+ # form: `customers/`customer_id`/adGroups/`ad_group_id``
1949
+ # Corresponds to the JSON property `resourceName`
1950
+ # @return [String]
1951
+ attr_accessor :resource_name
1952
+
1953
+ # The status of the ad group.
1954
+ # Corresponds to the JSON property `status`
1955
+ # @return [String]
1956
+ attr_accessor :status
1957
+
1958
+ # Immutable. The type of the ad group.
1959
+ # Corresponds to the JSON property `type`
1960
+ # @return [String]
1961
+ attr_accessor :type
1962
+
1963
+ def initialize(**args)
1964
+ update!(**args)
1965
+ end
1966
+
1967
+ # Update properties of this object
1968
+ def update!(**args)
1969
+ @ad_rotation_mode = args[:ad_rotation_mode] if args.key?(:ad_rotation_mode)
1970
+ @cpc_bid_micros = args[:cpc_bid_micros] if args.key?(:cpc_bid_micros)
1971
+ @id = args[:id] if args.key?(:id)
1972
+ @name = args[:name] if args.key?(:name)
1973
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
1974
+ @status = args[:status] if args.key?(:status)
1975
+ @type = args[:type] if args.key?(:type)
1976
+ end
1977
+ end
1978
+
1979
+ # Represents an ad group bid modifier.
1980
+ class GoogleAdsSearchads360V0ResourcesAdGroupBidModifier
1981
+ include Google::Apis::Core::Hashable
1982
+
1983
+ # The modifier for the bid when the criterion matches. The modifier must be in
1984
+ # the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent. Use 0 to
1985
+ # opt out of a Device type.
1986
+ # Corresponds to the JSON property `bidModifier`
1987
+ # @return [Float]
1988
+ attr_accessor :bid_modifier
1989
+
1990
+ # Immutable. The resource name of the ad group bid modifier. Ad group bid
1991
+ # modifier resource names have the form: `customers/`customer_id`/
1992
+ # adGroupBidModifiers/`ad_group_id`~`criterion_id``
1993
+ # Corresponds to the JSON property `resourceName`
1994
+ # @return [String]
1995
+ attr_accessor :resource_name
1996
+
1997
+ def initialize(**args)
1998
+ update!(**args)
1999
+ end
2000
+
2001
+ # Update properties of this object
2002
+ def update!(**args)
2003
+ @bid_modifier = args[:bid_modifier] if args.key?(:bid_modifier)
2004
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2005
+ end
2006
+ end
2007
+
2008
+ # An ad group criterion.
2009
+ class GoogleAdsSearchads360V0ResourcesAdGroupCriterion
2010
+ include Google::Apis::Core::Hashable
2011
+
2012
+ # Immutable. The ad group to which the criterion belongs.
2013
+ # Corresponds to the JSON property `adGroup`
2014
+ # @return [String]
2015
+ attr_accessor :ad_group
2016
+
2017
+ # An age range criterion.
2018
+ # Corresponds to the JSON property `ageRange`
2019
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonAgeRangeInfo]
2020
+ attr_accessor :age_range
2021
+
2022
+ # The modifier for the bid when the criterion matches. The modifier must be in
2023
+ # the range: 0.1 - 10.0. Most targetable criteria types support modifiers.
2024
+ # Corresponds to the JSON property `bidModifier`
2025
+ # @return [Float]
2026
+ attr_accessor :bid_modifier
2027
+
2028
+ # The CPC (cost-per-click) bid.
2029
+ # Corresponds to the JSON property `cpcBidMicros`
2030
+ # @return [Fixnum]
2031
+ attr_accessor :cpc_bid_micros
2032
+
2033
+ # Output only. The ID of the criterion.
2034
+ # Corresponds to the JSON property `criterionId`
2035
+ # @return [Fixnum]
2036
+ attr_accessor :criterion_id
2037
+
2038
+ # Output only. The effective CPC (cost-per-click) bid.
2039
+ # Corresponds to the JSON property `effectiveCpcBidMicros`
2040
+ # @return [Fixnum]
2041
+ attr_accessor :effective_cpc_bid_micros
2042
+
2043
+ # Output only. The Engine Status for ad group criterion.
2044
+ # Corresponds to the JSON property `engineStatus`
2045
+ # @return [String]
2046
+ attr_accessor :engine_status
2047
+
2048
+ # URL template for appending params to final URL.
2049
+ # Corresponds to the JSON property `finalUrlSuffix`
2050
+ # @return [String]
2051
+ attr_accessor :final_url_suffix
2052
+
2053
+ # The list of possible final URLs after all cross-domain redirects for the ad.
2054
+ # Corresponds to the JSON property `finalUrls`
2055
+ # @return [Array<String>]
2056
+ attr_accessor :final_urls
2057
+
2058
+ # A gender criterion.
2059
+ # Corresponds to the JSON property `gender`
2060
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonGenderInfo]
2061
+ attr_accessor :gender
2062
+
2063
+ # A keyword criterion.
2064
+ # Corresponds to the JSON property `keyword`
2065
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonKeywordInfo]
2066
+ attr_accessor :keyword
2067
+
2068
+ # Output only. The datetime when this ad group criterion was last modified. The
2069
+ # datetime is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss.ssssss"
2070
+ # format.
2071
+ # Corresponds to the JSON property `lastModifiedTime`
2072
+ # @return [String]
2073
+ attr_accessor :last_modified_time
2074
+
2075
+ # A listing group criterion.
2076
+ # Corresponds to the JSON property `listingGroup`
2077
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonListingGroupInfo]
2078
+ attr_accessor :listing_group
2079
+
2080
+ # A container for ad group criterion quality information.
2081
+ # Corresponds to the JSON property `qualityInfo`
2082
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesAdGroupCriterionQualityInfo]
2083
+ attr_accessor :quality_info
2084
+
2085
+ # Immutable. The resource name of the ad group criterion. Ad group criterion
2086
+ # resource names have the form: `customers/`customer_id`/adGroupCriteria/`
2087
+ # ad_group_id`~`criterion_id``
2088
+ # Corresponds to the JSON property `resourceName`
2089
+ # @return [String]
2090
+ attr_accessor :resource_name
2091
+
2092
+ # The status of the criterion. This is the status of the ad group criterion
2093
+ # entity, set by the client. Note: UI reports may incorporate additional
2094
+ # information that affects whether a criterion is eligible to run. In some cases
2095
+ # a criterion that's REMOVED in the API can still show as enabled in the UI. For
2096
+ # example, campaigns by default show to users of all age ranges unless excluded.
2097
+ # The UI will show each age range as "enabled", since they're eligible to see
2098
+ # the ads; but AdGroupCriterion.status will show "removed", since no positive
2099
+ # criterion was added.
2100
+ # Corresponds to the JSON property `status`
2101
+ # @return [String]
2102
+ attr_accessor :status
2103
+
2104
+ # The URL template for constructing a tracking URL.
2105
+ # Corresponds to the JSON property `trackingUrlTemplate`
2106
+ # @return [String]
2107
+ attr_accessor :tracking_url_template
2108
+
2109
+ # Output only. The type of the criterion.
2110
+ # Corresponds to the JSON property `type`
2111
+ # @return [String]
2112
+ attr_accessor :type
2113
+
2114
+ # Represents a criterion for targeting webpages of an advertiser's website.
2115
+ # Corresponds to the JSON property `webpage`
2116
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonWebpageInfo]
2117
+ attr_accessor :webpage
2118
+
2119
+ def initialize(**args)
2120
+ update!(**args)
2121
+ end
2122
+
2123
+ # Update properties of this object
2124
+ def update!(**args)
2125
+ @ad_group = args[:ad_group] if args.key?(:ad_group)
2126
+ @age_range = args[:age_range] if args.key?(:age_range)
2127
+ @bid_modifier = args[:bid_modifier] if args.key?(:bid_modifier)
2128
+ @cpc_bid_micros = args[:cpc_bid_micros] if args.key?(:cpc_bid_micros)
2129
+ @criterion_id = args[:criterion_id] if args.key?(:criterion_id)
2130
+ @effective_cpc_bid_micros = args[:effective_cpc_bid_micros] if args.key?(:effective_cpc_bid_micros)
2131
+ @engine_status = args[:engine_status] if args.key?(:engine_status)
2132
+ @final_url_suffix = args[:final_url_suffix] if args.key?(:final_url_suffix)
2133
+ @final_urls = args[:final_urls] if args.key?(:final_urls)
2134
+ @gender = args[:gender] if args.key?(:gender)
2135
+ @keyword = args[:keyword] if args.key?(:keyword)
2136
+ @last_modified_time = args[:last_modified_time] if args.key?(:last_modified_time)
2137
+ @listing_group = args[:listing_group] if args.key?(:listing_group)
2138
+ @quality_info = args[:quality_info] if args.key?(:quality_info)
2139
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2140
+ @status = args[:status] if args.key?(:status)
2141
+ @tracking_url_template = args[:tracking_url_template] if args.key?(:tracking_url_template)
2142
+ @type = args[:type] if args.key?(:type)
2143
+ @webpage = args[:webpage] if args.key?(:webpage)
2144
+ end
2145
+ end
2146
+
2147
+ # A bidding strategy.
2148
+ class GoogleAdsSearchads360V0ResourcesBiddingStrategy
2149
+ include Google::Apis::Core::Hashable
2150
+
2151
+ # Output only. The number of campaigns attached to this bidding strategy. This
2152
+ # field is read-only.
2153
+ # Corresponds to the JSON property `campaignCount`
2154
+ # @return [Fixnum]
2155
+ attr_accessor :campaign_count
2156
+
2157
+ # Immutable. The currency used by the bidding strategy (ISO 4217 three-letter
2158
+ # code). For bidding strategies in manager customers, this currency can be set
2159
+ # on creation and defaults to the manager customer's currency. For serving
2160
+ # customers, this field cannot be set; all strategies in a serving customer
2161
+ # implicitly use the serving customer's currency. In all cases the
2162
+ # effective_currency_code field returns the currency used by the strategy.
2163
+ # Corresponds to the JSON property `currencyCode`
2164
+ # @return [String]
2165
+ attr_accessor :currency_code
2166
+
2167
+ # Output only. The currency used by the bidding strategy (ISO 4217 three-letter
2168
+ # code). For bidding strategies in manager customers, this is the currency set
2169
+ # by the advertiser when creating the strategy. For serving customers, this is
2170
+ # the customer's currency_code. Bidding strategy metrics are reported in this
2171
+ # currency. This field is read-only.
2172
+ # Corresponds to the JSON property `effectiveCurrencyCode`
2173
+ # @return [String]
2174
+ attr_accessor :effective_currency_code
2175
+
2176
+ # An automated bidding strategy that raises bids for clicks that seem more
2177
+ # likely to lead to a conversion and lowers them for clicks where they seem less
2178
+ # likely. This bidding strategy is deprecated and cannot be created anymore. Use
2179
+ # ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality.
2180
+ # Corresponds to the JSON property `enhancedCpc`
2181
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonEnhancedCpc]
2182
+ attr_accessor :enhanced_cpc
2183
+
2184
+ # Output only. The ID of the bidding strategy.
2185
+ # Corresponds to the JSON property `id`
2186
+ # @return [Fixnum]
2187
+ attr_accessor :id
2188
+
2189
+ # An automated bidding strategy to help get the most conversion value for your
2190
+ # campaigns while spending your budget.
2191
+ # Corresponds to the JSON property `maximizeConversionValue`
2192
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonMaximizeConversionValue]
2193
+ attr_accessor :maximize_conversion_value
2194
+
2195
+ # An automated bidding strategy to help get the most conversions for your
2196
+ # campaigns while spending your budget.
2197
+ # Corresponds to the JSON property `maximizeConversions`
2198
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonMaximizeConversions]
2199
+ attr_accessor :maximize_conversions
2200
+
2201
+ # The name of the bidding strategy. All bidding strategies within an account
2202
+ # must be named distinctly. The length of this string should be between 1 and
2203
+ # 255, inclusive, in UTF-8 bytes, (trimmed).
2204
+ # Corresponds to the JSON property `name`
2205
+ # @return [String]
2206
+ attr_accessor :name
2207
+
2208
+ # Output only. The number of non-removed campaigns attached to this bidding
2209
+ # strategy. This field is read-only.
2210
+ # Corresponds to the JSON property `nonRemovedCampaignCount`
2211
+ # @return [Fixnum]
2212
+ attr_accessor :non_removed_campaign_count
2213
+
2214
+ # Immutable. The resource name of the bidding strategy. Bidding strategy
2215
+ # resource names have the form: `customers/`customer_id`/biddingStrategies/`
2216
+ # bidding_strategy_id``
2217
+ # Corresponds to the JSON property `resourceName`
2218
+ # @return [String]
2219
+ attr_accessor :resource_name
2220
+
2221
+ # Output only. The status of the bidding strategy. This field is read-only.
2222
+ # Corresponds to the JSON property `status`
2223
+ # @return [String]
2224
+ attr_accessor :status
2225
+
2226
+ # An automated bid strategy that sets bids to help get as many conversions as
2227
+ # possible at the target cost-per-acquisition (CPA) you set.
2228
+ # Corresponds to the JSON property `targetCpa`
2229
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetCpa]
2230
+ attr_accessor :target_cpa
2231
+
2232
+ # An automated bidding strategy that sets bids so that a certain percentage of
2233
+ # search ads are shown at the top of the first page (or other targeted location).
2234
+ # Corresponds to the JSON property `targetImpressionShare`
2235
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetImpressionShare]
2236
+ attr_accessor :target_impression_share
2237
+
2238
+ # An automated bidding strategy that sets bids based on the target fraction of
2239
+ # auctions where the advertiser should outrank a specific competitor. This
2240
+ # strategy is deprecated.
2241
+ # Corresponds to the JSON property `targetOutrankShare`
2242
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetOutrankShare]
2243
+ attr_accessor :target_outrank_share
2244
+
2245
+ # An automated bidding strategy that helps you maximize revenue while averaging
2246
+ # a specific target return on ad spend (ROAS).
2247
+ # Corresponds to the JSON property `targetRoas`
2248
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetRoas]
2249
+ attr_accessor :target_roas
2250
+
2251
+ # An automated bid strategy that sets your bids to help get as many clicks as
2252
+ # possible within your budget.
2253
+ # Corresponds to the JSON property `targetSpend`
2254
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetSpend]
2255
+ attr_accessor :target_spend
2256
+
2257
+ # Output only. The type of the bidding strategy. Create a bidding strategy by
2258
+ # setting the bidding scheme. This field is read-only.
2259
+ # Corresponds to the JSON property `type`
2260
+ # @return [String]
2261
+ attr_accessor :type
2262
+
2263
+ def initialize(**args)
2264
+ update!(**args)
2265
+ end
2266
+
2267
+ # Update properties of this object
2268
+ def update!(**args)
2269
+ @campaign_count = args[:campaign_count] if args.key?(:campaign_count)
2270
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
2271
+ @effective_currency_code = args[:effective_currency_code] if args.key?(:effective_currency_code)
2272
+ @enhanced_cpc = args[:enhanced_cpc] if args.key?(:enhanced_cpc)
2273
+ @id = args[:id] if args.key?(:id)
2274
+ @maximize_conversion_value = args[:maximize_conversion_value] if args.key?(:maximize_conversion_value)
2275
+ @maximize_conversions = args[:maximize_conversions] if args.key?(:maximize_conversions)
2276
+ @name = args[:name] if args.key?(:name)
2277
+ @non_removed_campaign_count = args[:non_removed_campaign_count] if args.key?(:non_removed_campaign_count)
2278
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2279
+ @status = args[:status] if args.key?(:status)
2280
+ @target_cpa = args[:target_cpa] if args.key?(:target_cpa)
2281
+ @target_impression_share = args[:target_impression_share] if args.key?(:target_impression_share)
2282
+ @target_outrank_share = args[:target_outrank_share] if args.key?(:target_outrank_share)
2283
+ @target_roas = args[:target_roas] if args.key?(:target_roas)
2284
+ @target_spend = args[:target_spend] if args.key?(:target_spend)
2285
+ @type = args[:type] if args.key?(:type)
2286
+ end
2287
+ end
2288
+
2289
+ # A campaign.
2290
+ class GoogleAdsSearchads360V0ResourcesCampaign
2291
+ include Google::Apis::Core::Hashable
2292
+
2293
+ # The ad serving optimization status of the campaign.
2294
+ # Corresponds to the JSON property `adServingOptimizationStatus`
2295
+ # @return [String]
2296
+ attr_accessor :ad_serving_optimization_status
2297
+
2298
+ # Immutable. Optional refinement to `advertising_channel_type`. Must be a valid
2299
+ # sub-type of the parent channel type. Can be set only when creating campaigns.
2300
+ # After campaign is created, the field can not be changed.
2301
+ # Corresponds to the JSON property `advertisingChannelSubType`
2302
+ # @return [String]
2303
+ attr_accessor :advertising_channel_sub_type
2304
+
2305
+ # Immutable. The primary serving target for ads within the campaign. The
2306
+ # targeting options can be refined in `network_settings`. This field is required
2307
+ # and should not be empty when creating new campaigns. Can be set only when
2308
+ # creating campaigns. After the campaign is created, the field can not be
2309
+ # changed.
2310
+ # Corresponds to the JSON property `advertisingChannelType`
2311
+ # @return [String]
2312
+ attr_accessor :advertising_channel_type
2313
+
2314
+ # Portfolio bidding strategy used by campaign.
2315
+ # Corresponds to the JSON property `biddingStrategy`
2316
+ # @return [String]
2317
+ attr_accessor :bidding_strategy
2318
+
2319
+ # Output only. The system status of the campaign's bidding strategy.
2320
+ # Corresponds to the JSON property `biddingStrategySystemStatus`
2321
+ # @return [String]
2322
+ attr_accessor :bidding_strategy_system_status
2323
+
2324
+ # Output only. The type of bidding strategy. A bidding strategy can be created
2325
+ # by setting either the bidding scheme to create a standard bidding strategy or
2326
+ # the `bidding_strategy` field to create a portfolio bidding strategy. This
2327
+ # field is read-only.
2328
+ # Corresponds to the JSON property `biddingStrategyType`
2329
+ # @return [String]
2330
+ attr_accessor :bidding_strategy_type
2331
+
2332
+ # The budget of the campaign.
2333
+ # Corresponds to the JSON property `campaignBudget`
2334
+ # @return [String]
2335
+ attr_accessor :campaign_budget
2336
+
2337
+ # Output only. Timestamp of the campaign's creation time, formatted in ISO 8601.
2338
+ # Corresponds to the JSON property `createTime`
2339
+ # @return [String]
2340
+ attr_accessor :create_time
2341
+
2342
+ # The setting for controlling Dynamic Search Ads (DSA).
2343
+ # Corresponds to the JSON property `dynamicSearchAdsSetting`
2344
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignDynamicSearchAdsSetting]
2345
+ attr_accessor :dynamic_search_ads_setting
2346
+
2347
+ # The last day of the campaign in serving customer's timezone in YYYY-MM-DD
2348
+ # format. On create, defaults to 2037-12-30, which means the campaign will run
2349
+ # indefinitely. To set an existing campaign to run indefinitely, set this field
2350
+ # to 2037-12-30.
2351
+ # Corresponds to the JSON property `endDate`
2352
+ # @return [String]
2353
+ attr_accessor :end_date
2354
+
2355
+ # Output only. ID of the campaign in the external engine account. This field is
2356
+ # for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu
2357
+ # etc. For Google Ads entity, use "campaign.id" instead.
2358
+ # Corresponds to the JSON property `engineId`
2359
+ # @return [String]
2360
+ attr_accessor :engine_id
2361
+
2362
+ # The asset field types that should be excluded from this campaign. Asset links
2363
+ # with these field types will not be inherited by this campaign from the upper
2364
+ # level.
2365
+ # Corresponds to the JSON property `excludedParentAssetFieldTypes`
2366
+ # @return [Array<String>]
2367
+ attr_accessor :excluded_parent_asset_field_types
2368
+
2369
+ # Suffix used to append query parameters to landing pages that are served with
2370
+ # parallel tracking.
2371
+ # Corresponds to the JSON property `finalUrlSuffix`
2372
+ # @return [String]
2373
+ attr_accessor :final_url_suffix
2374
+
2375
+ # A list that limits how often each user will see this campaign's ads.
2376
+ # Corresponds to the JSON property `frequencyCaps`
2377
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonFrequencyCapEntry>]
2378
+ attr_accessor :frequency_caps
2379
+
2380
+ # Represents a collection of settings related to ads geotargeting.
2381
+ # Corresponds to the JSON property `geoTargetTypeSetting`
2382
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignGeoTargetTypeSetting]
2383
+ attr_accessor :geo_target_type_setting
2384
+
2385
+ # Output only. The ID of the campaign.
2386
+ # Corresponds to the JSON property `id`
2387
+ # @return [Fixnum]
2388
+ attr_accessor :id
2389
+
2390
+ # Output only. The resource names of labels attached to this campaign.
2391
+ # Corresponds to the JSON property `labels`
2392
+ # @return [Array<String>]
2393
+ attr_accessor :labels
2394
+
2395
+ # Output only. The datetime when this campaign was last modified. The datetime
2396
+ # is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss.ssssss" format.
2397
+ # Corresponds to the JSON property `lastModifiedTime`
2398
+ # @return [String]
2399
+ attr_accessor :last_modified_time
2400
+
2401
+ # Manual bidding strategy that allows advertiser to set the bid per advertiser-
2402
+ # specified action.
2403
+ # Corresponds to the JSON property `manualCpa`
2404
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonManualCpa]
2405
+ attr_accessor :manual_cpa
2406
+
2407
+ # Manual click-based bidding where user pays per click.
2408
+ # Corresponds to the JSON property `manualCpc`
2409
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonManualCpc]
2410
+ attr_accessor :manual_cpc
2411
+
2412
+ # Manual impression-based bidding where user pays per thousand impressions.
2413
+ # Corresponds to the JSON property `manualCpm`
2414
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonManualCpm]
2415
+ attr_accessor :manual_cpm
2416
+
2417
+ # An automated bidding strategy to help get the most conversion value for your
2418
+ # campaigns while spending your budget.
2419
+ # Corresponds to the JSON property `maximizeConversionValue`
2420
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonMaximizeConversionValue]
2421
+ attr_accessor :maximize_conversion_value
2422
+
2423
+ # An automated bidding strategy to help get the most conversions for your
2424
+ # campaigns while spending your budget.
2425
+ # Corresponds to the JSON property `maximizeConversions`
2426
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonMaximizeConversions]
2427
+ attr_accessor :maximize_conversions
2428
+
2429
+ # The name of the campaign. This field is required and should not be empty when
2430
+ # creating new campaigns. It must not contain any null (code point 0x0), NL line
2431
+ # feed (code point 0xA) or carriage return (code point 0xD) characters.
2432
+ # Corresponds to the JSON property `name`
2433
+ # @return [String]
2434
+ attr_accessor :name
2435
+
2436
+ # The network settings for the campaign.
2437
+ # Corresponds to the JSON property `networkSettings`
2438
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignNetworkSettings]
2439
+ attr_accessor :network_settings
2440
+
2441
+ # Optimization goal setting for this campaign, which includes a set of
2442
+ # optimization goal types.
2443
+ # Corresponds to the JSON property `optimizationGoalSetting`
2444
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignOptimizationGoalSetting]
2445
+ attr_accessor :optimization_goal_setting
2446
+
2447
+ # A bidding strategy where bids are a fraction of the advertised price for some
2448
+ # good or service.
2449
+ # Corresponds to the JSON property `percentCpc`
2450
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonPercentCpc]
2451
+ attr_accessor :percent_cpc
2452
+
2453
+ # Settings for Real-Time Bidding, a feature only available for campaigns
2454
+ # targeting the Ad Exchange network.
2455
+ # Corresponds to the JSON property `realTimeBiddingSetting`
2456
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonRealTimeBiddingSetting]
2457
+ attr_accessor :real_time_bidding_setting
2458
+
2459
+ # Immutable. The resource name of the campaign. Campaign resource names have the
2460
+ # form: `customers/`customer_id`/campaigns/`campaign_id``
2461
+ # Corresponds to the JSON property `resourceName`
2462
+ # @return [String]
2463
+ attr_accessor :resource_name
2464
+
2465
+ # Selective optimization setting for this campaign, which includes a set of
2466
+ # conversion actions to optimize this campaign towards.
2467
+ # Corresponds to the JSON property `selectiveOptimization`
2468
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignSelectiveOptimization]
2469
+ attr_accessor :selective_optimization
2470
+
2471
+ # Output only. The ad serving status of the campaign.
2472
+ # Corresponds to the JSON property `servingStatus`
2473
+ # @return [String]
2474
+ attr_accessor :serving_status
2475
+
2476
+ # The setting for Shopping campaigns. Defines the universe of products that can
2477
+ # be advertised by the campaign, and how this campaign interacts with other
2478
+ # Shopping campaigns.
2479
+ # Corresponds to the JSON property `shoppingSetting`
2480
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignShoppingSetting]
2481
+ attr_accessor :shopping_setting
2482
+
2483
+ # The date when campaign started in serving customer's timezone in YYYY-MM-DD
2484
+ # format.
2485
+ # Corresponds to the JSON property `startDate`
2486
+ # @return [String]
2487
+ attr_accessor :start_date
2488
+
2489
+ # The status of the campaign. When a new campaign is added, the status defaults
2490
+ # to ENABLED.
2491
+ # Corresponds to the JSON property `status`
2492
+ # @return [String]
2493
+ attr_accessor :status
2494
+
2495
+ # An automated bid strategy that sets bids to help get as many conversions as
2496
+ # possible at the target cost-per-acquisition (CPA) you set.
2497
+ # Corresponds to the JSON property `targetCpa`
2498
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetCpa]
2499
+ attr_accessor :target_cpa
2500
+
2501
+ # Target CPM (cost per thousand impressions) is an automated bidding strategy
2502
+ # that sets bids to optimize performance given the target CPM you set.
2503
+ # Corresponds to the JSON property `targetCpm`
2504
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetCpm]
2505
+ attr_accessor :target_cpm
2506
+
2507
+ # An automated bidding strategy that sets bids so that a certain percentage of
2508
+ # search ads are shown at the top of the first page (or other targeted location).
2509
+ # Corresponds to the JSON property `targetImpressionShare`
2510
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetImpressionShare]
2511
+ attr_accessor :target_impression_share
2512
+
2513
+ # An automated bidding strategy that helps you maximize revenue while averaging
2514
+ # a specific target return on ad spend (ROAS).
2515
+ # Corresponds to the JSON property `targetRoas`
2516
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetRoas]
2517
+ attr_accessor :target_roas
2518
+
2519
+ # An automated bid strategy that sets your bids to help get as many clicks as
2520
+ # possible within your budget.
2521
+ # Corresponds to the JSON property `targetSpend`
2522
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonTargetSpend]
2523
+ attr_accessor :target_spend
2524
+
2525
+ # Campaign-level settings for tracking information.
2526
+ # Corresponds to the JSON property `trackingSetting`
2527
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignTrackingSetting]
2528
+ attr_accessor :tracking_setting
2529
+
2530
+ # The URL template for constructing a tracking URL.
2531
+ # Corresponds to the JSON property `trackingUrlTemplate`
2532
+ # @return [String]
2533
+ attr_accessor :tracking_url_template
2534
+
2535
+ # The list of mappings used to substitute custom parameter tags in a `
2536
+ # tracking_url_template`, `final_urls`, or `mobile_final_urls`.
2537
+ # Corresponds to the JSON property `urlCustomParameters`
2538
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonCustomParameter>]
2539
+ attr_accessor :url_custom_parameters
2540
+
2541
+ # Represents opting out of URL expansion to more targeted URLs. If opted out (
2542
+ # true), only the final URLs in the asset group or URLs specified in the
2543
+ # advertiser's Google Merchant Center or business data feeds are targeted. If
2544
+ # opted in (false), the entire domain will be targeted. This field can only be
2545
+ # set for Performance Max campaigns, where the default value is false.
2546
+ # Corresponds to the JSON property `urlExpansionOptOut`
2547
+ # @return [Boolean]
2548
+ attr_accessor :url_expansion_opt_out
2549
+ alias_method :url_expansion_opt_out?, :url_expansion_opt_out
2550
+
2551
+ def initialize(**args)
2552
+ update!(**args)
2553
+ end
2554
+
2555
+ # Update properties of this object
2556
+ def update!(**args)
2557
+ @ad_serving_optimization_status = args[:ad_serving_optimization_status] if args.key?(:ad_serving_optimization_status)
2558
+ @advertising_channel_sub_type = args[:advertising_channel_sub_type] if args.key?(:advertising_channel_sub_type)
2559
+ @advertising_channel_type = args[:advertising_channel_type] if args.key?(:advertising_channel_type)
2560
+ @bidding_strategy = args[:bidding_strategy] if args.key?(:bidding_strategy)
2561
+ @bidding_strategy_system_status = args[:bidding_strategy_system_status] if args.key?(:bidding_strategy_system_status)
2562
+ @bidding_strategy_type = args[:bidding_strategy_type] if args.key?(:bidding_strategy_type)
2563
+ @campaign_budget = args[:campaign_budget] if args.key?(:campaign_budget)
2564
+ @create_time = args[:create_time] if args.key?(:create_time)
2565
+ @dynamic_search_ads_setting = args[:dynamic_search_ads_setting] if args.key?(:dynamic_search_ads_setting)
2566
+ @end_date = args[:end_date] if args.key?(:end_date)
2567
+ @engine_id = args[:engine_id] if args.key?(:engine_id)
2568
+ @excluded_parent_asset_field_types = args[:excluded_parent_asset_field_types] if args.key?(:excluded_parent_asset_field_types)
2569
+ @final_url_suffix = args[:final_url_suffix] if args.key?(:final_url_suffix)
2570
+ @frequency_caps = args[:frequency_caps] if args.key?(:frequency_caps)
2571
+ @geo_target_type_setting = args[:geo_target_type_setting] if args.key?(:geo_target_type_setting)
2572
+ @id = args[:id] if args.key?(:id)
2573
+ @labels = args[:labels] if args.key?(:labels)
2574
+ @last_modified_time = args[:last_modified_time] if args.key?(:last_modified_time)
2575
+ @manual_cpa = args[:manual_cpa] if args.key?(:manual_cpa)
2576
+ @manual_cpc = args[:manual_cpc] if args.key?(:manual_cpc)
2577
+ @manual_cpm = args[:manual_cpm] if args.key?(:manual_cpm)
2578
+ @maximize_conversion_value = args[:maximize_conversion_value] if args.key?(:maximize_conversion_value)
2579
+ @maximize_conversions = args[:maximize_conversions] if args.key?(:maximize_conversions)
2580
+ @name = args[:name] if args.key?(:name)
2581
+ @network_settings = args[:network_settings] if args.key?(:network_settings)
2582
+ @optimization_goal_setting = args[:optimization_goal_setting] if args.key?(:optimization_goal_setting)
2583
+ @percent_cpc = args[:percent_cpc] if args.key?(:percent_cpc)
2584
+ @real_time_bidding_setting = args[:real_time_bidding_setting] if args.key?(:real_time_bidding_setting)
2585
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2586
+ @selective_optimization = args[:selective_optimization] if args.key?(:selective_optimization)
2587
+ @serving_status = args[:serving_status] if args.key?(:serving_status)
2588
+ @shopping_setting = args[:shopping_setting] if args.key?(:shopping_setting)
2589
+ @start_date = args[:start_date] if args.key?(:start_date)
2590
+ @status = args[:status] if args.key?(:status)
2591
+ @target_cpa = args[:target_cpa] if args.key?(:target_cpa)
2592
+ @target_cpm = args[:target_cpm] if args.key?(:target_cpm)
2593
+ @target_impression_share = args[:target_impression_share] if args.key?(:target_impression_share)
2594
+ @target_roas = args[:target_roas] if args.key?(:target_roas)
2595
+ @target_spend = args[:target_spend] if args.key?(:target_spend)
2596
+ @tracking_setting = args[:tracking_setting] if args.key?(:tracking_setting)
2597
+ @tracking_url_template = args[:tracking_url_template] if args.key?(:tracking_url_template)
2598
+ @url_custom_parameters = args[:url_custom_parameters] if args.key?(:url_custom_parameters)
2599
+ @url_expansion_opt_out = args[:url_expansion_opt_out] if args.key?(:url_expansion_opt_out)
2600
+ end
2601
+ end
2602
+
2603
+ # A campaign budget.
2604
+ class GoogleAdsSearchads360V0ResourcesCampaignBudget
2605
+ include Google::Apis::Core::Hashable
2606
+
2607
+ # The amount of the budget, in the local currency for the account. Amount is
2608
+ # specified in micros, where one million is equivalent to one currency unit.
2609
+ # Monthly spend is capped at 30.4 times this amount.
2610
+ # Corresponds to the JSON property `amountMicros`
2611
+ # @return [Fixnum]
2612
+ attr_accessor :amount_micros
2613
+
2614
+ # The delivery method that determines the rate at which the campaign budget is
2615
+ # spent. Defaults to STANDARD if unspecified in a create operation.
2616
+ # Corresponds to the JSON property `deliveryMethod`
2617
+ # @return [String]
2618
+ attr_accessor :delivery_method
2619
+
2620
+ # Immutable. Period over which to spend the budget. Defaults to DAILY if not
2621
+ # specified.
2622
+ # Corresponds to the JSON property `period`
2623
+ # @return [String]
2624
+ attr_accessor :period
2625
+
2626
+ # Immutable. The resource name of the campaign budget. Campaign budget resource
2627
+ # names have the form: `customers/`customer_id`/campaignBudgets/`
2628
+ # campaign_budget_id``
2629
+ # Corresponds to the JSON property `resourceName`
2630
+ # @return [String]
2631
+ attr_accessor :resource_name
2632
+
2633
+ def initialize(**args)
2634
+ update!(**args)
2635
+ end
2636
+
2637
+ # Update properties of this object
2638
+ def update!(**args)
2639
+ @amount_micros = args[:amount_micros] if args.key?(:amount_micros)
2640
+ @delivery_method = args[:delivery_method] if args.key?(:delivery_method)
2641
+ @period = args[:period] if args.key?(:period)
2642
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2643
+ end
2644
+ end
2645
+
2646
+ # A campaign criterion.
2647
+ class GoogleAdsSearchads360V0ResourcesCampaignCriterion
2648
+ include Google::Apis::Core::Hashable
2649
+
2650
+ # The modifier for the bids when the criterion matches. The modifier must be in
2651
+ # the range: 0.1 - 10.0. Most targetable criteria types support modifiers. Use 0
2652
+ # to opt out of a Device type.
2653
+ # Corresponds to the JSON property `bidModifier`
2654
+ # @return [Float]
2655
+ attr_accessor :bid_modifier
2656
+
2657
+ # Output only. The ID of the criterion. This field is ignored during mutate.
2658
+ # Corresponds to the JSON property `criterionId`
2659
+ # @return [Fixnum]
2660
+ attr_accessor :criterion_id
2661
+
2662
+ # A device criterion.
2663
+ # Corresponds to the JSON property `device`
2664
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonDeviceInfo]
2665
+ attr_accessor :device
2666
+
2667
+ # Output only. The display name of the criterion. This field is ignored for
2668
+ # mutates.
2669
+ # Corresponds to the JSON property `displayName`
2670
+ # @return [String]
2671
+ attr_accessor :display_name
2672
+
2673
+ # A language criterion.
2674
+ # Corresponds to the JSON property `language`
2675
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonLanguageInfo]
2676
+ attr_accessor :language
2677
+
2678
+ # A location criterion.
2679
+ # Corresponds to the JSON property `location`
2680
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonLocationInfo]
2681
+ attr_accessor :location
2682
+
2683
+ # A radius around a list of locations specified through a feed.
2684
+ # Corresponds to the JSON property `locationGroup`
2685
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonLocationGroupInfo]
2686
+ attr_accessor :location_group
2687
+
2688
+ # Immutable. Whether to target (`false`) or exclude (`true`) the criterion.
2689
+ # Corresponds to the JSON property `negative`
2690
+ # @return [Boolean]
2691
+ attr_accessor :negative
2692
+ alias_method :negative?, :negative
2693
+
2694
+ # Immutable. The resource name of the campaign criterion. Campaign criterion
2695
+ # resource names have the form: `customers/`customer_id`/campaignCriteria/`
2696
+ # campaign_id`~`criterion_id``
2697
+ # Corresponds to the JSON property `resourceName`
2698
+ # @return [String]
2699
+ attr_accessor :resource_name
2700
+
2701
+ # Output only. The type of the criterion.
2702
+ # Corresponds to the JSON property `type`
2703
+ # @return [String]
2704
+ attr_accessor :type
2705
+
2706
+ def initialize(**args)
2707
+ update!(**args)
2708
+ end
2709
+
2710
+ # Update properties of this object
2711
+ def update!(**args)
2712
+ @bid_modifier = args[:bid_modifier] if args.key?(:bid_modifier)
2713
+ @criterion_id = args[:criterion_id] if args.key?(:criterion_id)
2714
+ @device = args[:device] if args.key?(:device)
2715
+ @display_name = args[:display_name] if args.key?(:display_name)
2716
+ @language = args[:language] if args.key?(:language)
2717
+ @location = args[:location] if args.key?(:location)
2718
+ @location_group = args[:location_group] if args.key?(:location_group)
2719
+ @negative = args[:negative] if args.key?(:negative)
2720
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2721
+ @type = args[:type] if args.key?(:type)
2722
+ end
2723
+ end
2724
+
2725
+ # A conversion action.
2726
+ class GoogleAdsSearchads360V0ResourcesConversionAction
2727
+ include Google::Apis::Core::Hashable
2728
+
2729
+ # App ID for an app conversion action.
2730
+ # Corresponds to the JSON property `appId`
2731
+ # @return [String]
2732
+ attr_accessor :app_id
2733
+
2734
+ # Settings related to this conversion action's attribution model.
2735
+ # Corresponds to the JSON property `attributionModelSettings`
2736
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesConversionActionAttributionModelSettings]
2737
+ attr_accessor :attribution_model_settings
2738
+
2739
+ # The category of conversions reported for this conversion action.
2740
+ # Corresponds to the JSON property `category`
2741
+ # @return [String]
2742
+ attr_accessor :category
2743
+
2744
+ # The maximum number of days that may elapse between an interaction (for example,
2745
+ # a click) and a conversion event.
2746
+ # Corresponds to the JSON property `clickThroughLookbackWindowDays`
2747
+ # @return [Fixnum]
2748
+ attr_accessor :click_through_lookback_window_days
2749
+
2750
+ # Output only. Timestamp of the Floodlight activity's creation, formatted in ISO
2751
+ # 8601.
2752
+ # Corresponds to the JSON property `creationTime`
2753
+ # @return [String]
2754
+ attr_accessor :creation_time
2755
+
2756
+ # Settings related to a Floodlight conversion action.
2757
+ # Corresponds to the JSON property `floodlightSettings`
2758
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesConversionActionFloodlightSettings]
2759
+ attr_accessor :floodlight_settings
2760
+
2761
+ # Output only. The ID of the conversion action.
2762
+ # Corresponds to the JSON property `id`
2763
+ # @return [Fixnum]
2764
+ attr_accessor :id
2765
+
2766
+ # Whether this conversion action should be included in the "
2767
+ # client_account_conversions" metric.
2768
+ # Corresponds to the JSON property `includeInClientAccountConversionsMetric`
2769
+ # @return [Boolean]
2770
+ attr_accessor :include_in_client_account_conversions_metric
2771
+ alias_method :include_in_client_account_conversions_metric?, :include_in_client_account_conversions_metric
2772
+
2773
+ # Output only. Whether this conversion action should be included in the "
2774
+ # conversions" metric.
2775
+ # Corresponds to the JSON property `includeInConversionsMetric`
2776
+ # @return [Boolean]
2777
+ attr_accessor :include_in_conversions_metric
2778
+ alias_method :include_in_conversions_metric?, :include_in_conversions_metric
2779
+
2780
+ # The name of the conversion action. This field is required and should not be
2781
+ # empty when creating new conversion actions.
2782
+ # Corresponds to the JSON property `name`
2783
+ # @return [String]
2784
+ attr_accessor :name
2785
+
2786
+ # Output only. The resource name of the conversion action owner customer, or
2787
+ # null if this is a system-defined conversion action.
2788
+ # Corresponds to the JSON property `ownerCustomer`
2789
+ # @return [String]
2790
+ attr_accessor :owner_customer
2791
+
2792
+ # If a conversion action's primary_for_goal bit is false, the conversion action
2793
+ # is non-biddable for all campaigns regardless of their customer conversion goal
2794
+ # or campaign conversion goal. However, custom conversion goals do not respect
2795
+ # primary_for_goal, so if a campaign has a custom conversion goal configured
2796
+ # with a primary_for_goal = false conversion action, that conversion action is
2797
+ # still biddable. By default, primary_for_goal will be true if not set. In V9,
2798
+ # primary_for_goal can only be set to false after creation through an 'update'
2799
+ # operation because it's not declared as optional.
2800
+ # Corresponds to the JSON property `primaryForGoal`
2801
+ # @return [Boolean]
2802
+ attr_accessor :primary_for_goal
2803
+ alias_method :primary_for_goal?, :primary_for_goal
2804
+
2805
+ # Immutable. The resource name of the conversion action. Conversion action
2806
+ # resource names have the form: `customers/`customer_id`/conversionActions/`
2807
+ # conversion_action_id``
2808
+ # Corresponds to the JSON property `resourceName`
2809
+ # @return [String]
2810
+ attr_accessor :resource_name
2811
+
2812
+ # The status of this conversion action for conversion event accrual.
2813
+ # Corresponds to the JSON property `status`
2814
+ # @return [String]
2815
+ attr_accessor :status
2816
+
2817
+ # Immutable. The type of this conversion action.
2818
+ # Corresponds to the JSON property `type`
2819
+ # @return [String]
2820
+ attr_accessor :type
2821
+
2822
+ # Settings related to the value for conversion events associated with this
2823
+ # conversion action.
2824
+ # Corresponds to the JSON property `valueSettings`
2825
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesConversionActionValueSettings]
2826
+ attr_accessor :value_settings
2827
+
2828
+ def initialize(**args)
2829
+ update!(**args)
2830
+ end
2831
+
2832
+ # Update properties of this object
2833
+ def update!(**args)
2834
+ @app_id = args[:app_id] if args.key?(:app_id)
2835
+ @attribution_model_settings = args[:attribution_model_settings] if args.key?(:attribution_model_settings)
2836
+ @category = args[:category] if args.key?(:category)
2837
+ @click_through_lookback_window_days = args[:click_through_lookback_window_days] if args.key?(:click_through_lookback_window_days)
2838
+ @creation_time = args[:creation_time] if args.key?(:creation_time)
2839
+ @floodlight_settings = args[:floodlight_settings] if args.key?(:floodlight_settings)
2840
+ @id = args[:id] if args.key?(:id)
2841
+ @include_in_client_account_conversions_metric = args[:include_in_client_account_conversions_metric] if args.key?(:include_in_client_account_conversions_metric)
2842
+ @include_in_conversions_metric = args[:include_in_conversions_metric] if args.key?(:include_in_conversions_metric)
2843
+ @name = args[:name] if args.key?(:name)
2844
+ @owner_customer = args[:owner_customer] if args.key?(:owner_customer)
2845
+ @primary_for_goal = args[:primary_for_goal] if args.key?(:primary_for_goal)
2846
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2847
+ @status = args[:status] if args.key?(:status)
2848
+ @type = args[:type] if args.key?(:type)
2849
+ @value_settings = args[:value_settings] if args.key?(:value_settings)
2850
+ end
2851
+ end
2852
+
2853
+ # A collection of customer-wide settings related to Search Ads 360 Conversion
2854
+ # Tracking.
2855
+ class GoogleAdsSearchads360V0ResourcesConversionTrackingSetting
2856
+ include Google::Apis::Core::Hashable
2857
+
2858
+ # Output only. Whether the customer has accepted customer data terms. If using
2859
+ # cross-account conversion tracking, this value is inherited from the manager.
2860
+ # This field is read-only. For more information, see https://support.google.com/
2861
+ # adspolicy/answer/7475709.
2862
+ # Corresponds to the JSON property `acceptedCustomerDataTerms`
2863
+ # @return [Boolean]
2864
+ attr_accessor :accepted_customer_data_terms
2865
+ alias_method :accepted_customer_data_terms?, :accepted_customer_data_terms
2866
+
2867
+ # Output only. The conversion tracking id used for this account. This id doesn't
2868
+ # indicate whether the customer uses conversion tracking (
2869
+ # conversion_tracking_status does). This field is read-only.
2870
+ # Corresponds to the JSON property `conversionTrackingId`
2871
+ # @return [Fixnum]
2872
+ attr_accessor :conversion_tracking_id
2873
+
2874
+ # Output only. Conversion tracking status. It indicates whether the customer is
2875
+ # using conversion tracking, and who is the conversion tracking owner of this
2876
+ # customer. If this customer is using cross-account conversion tracking, the
2877
+ # value returned will differ based on the `login-customer-id` of the request.
2878
+ # Corresponds to the JSON property `conversionTrackingStatus`
2879
+ # @return [String]
2880
+ attr_accessor :conversion_tracking_status
2881
+
2882
+ # Output only. The conversion tracking id of the customer's manager. This is set
2883
+ # when the customer is opted into cross-account conversion tracking, and it
2884
+ # overrides conversion_tracking_id.
2885
+ # Corresponds to the JSON property `crossAccountConversionTrackingId`
2886
+ # @return [Fixnum]
2887
+ attr_accessor :cross_account_conversion_tracking_id
2888
+
2889
+ # Output only. Whether the customer is opted-in for enhanced conversions for
2890
+ # leads. If using cross-account conversion tracking, this value is inherited
2891
+ # from the manager. This field is read-only.
2892
+ # Corresponds to the JSON property `enhancedConversionsForLeadsEnabled`
2893
+ # @return [Boolean]
2894
+ attr_accessor :enhanced_conversions_for_leads_enabled
2895
+ alias_method :enhanced_conversions_for_leads_enabled?, :enhanced_conversions_for_leads_enabled
2896
+
2897
+ # Output only. The resource name of the customer where conversions are created
2898
+ # and managed. This field is read-only.
2899
+ # Corresponds to the JSON property `googleAdsConversionCustomer`
2900
+ # @return [String]
2901
+ attr_accessor :google_ads_conversion_customer
2902
+
2903
+ # Output only. The conversion tracking id of the customer's manager. This is set
2904
+ # when the customer is opted into conversion tracking, and it overrides
2905
+ # conversion_tracking_id. This field can only be managed through the Google Ads
2906
+ # UI. This field is read-only.
2907
+ # Corresponds to the JSON property `googleAdsCrossAccountConversionTrackingId`
2908
+ # @return [Fixnum]
2909
+ attr_accessor :google_ads_cross_account_conversion_tracking_id
2910
+
2911
+ def initialize(**args)
2912
+ update!(**args)
2913
+ end
2914
+
2915
+ # Update properties of this object
2916
+ def update!(**args)
2917
+ @accepted_customer_data_terms = args[:accepted_customer_data_terms] if args.key?(:accepted_customer_data_terms)
2918
+ @conversion_tracking_id = args[:conversion_tracking_id] if args.key?(:conversion_tracking_id)
2919
+ @conversion_tracking_status = args[:conversion_tracking_status] if args.key?(:conversion_tracking_status)
2920
+ @cross_account_conversion_tracking_id = args[:cross_account_conversion_tracking_id] if args.key?(:cross_account_conversion_tracking_id)
2921
+ @enhanced_conversions_for_leads_enabled = args[:enhanced_conversions_for_leads_enabled] if args.key?(:enhanced_conversions_for_leads_enabled)
2922
+ @google_ads_conversion_customer = args[:google_ads_conversion_customer] if args.key?(:google_ads_conversion_customer)
2923
+ @google_ads_cross_account_conversion_tracking_id = args[:google_ads_cross_account_conversion_tracking_id] if args.key?(:google_ads_cross_account_conversion_tracking_id)
2924
+ end
2925
+ end
2926
+
2927
+ # A custom column. See Search Ads 360 custom column at https://support.google.
2928
+ # com/sa360/answer/9633916
2929
+ class GoogleAdsSearchads360V0ResourcesCustomColumn
2930
+ include Google::Apis::Core::Hashable
2931
+
2932
+ # Output only. User-defined description of the custom column.
2933
+ # Corresponds to the JSON property `description`
2934
+ # @return [String]
2935
+ attr_accessor :description
2936
+
2937
+ # Output only. ID of the custom column.
2938
+ # Corresponds to the JSON property `id`
2939
+ # @return [Fixnum]
2940
+ attr_accessor :id
2941
+
2942
+ # Output only. User-defined name of the custom column.
2943
+ # Corresponds to the JSON property `name`
2944
+ # @return [String]
2945
+ attr_accessor :name
2946
+
2947
+ # Output only. True when the custom column is available to be used in the query
2948
+ # of SearchAds360Service.Search and SearchAds360Service.SearchStream.
2949
+ # Corresponds to the JSON property `queryable`
2950
+ # @return [Boolean]
2951
+ attr_accessor :queryable
2952
+ alias_method :queryable?, :queryable
2953
+
2954
+ # Output only. The list of the referenced system columns of this custom column.
2955
+ # For example, A custom column "sum of impressions and clicks" has referenced
2956
+ # system columns of `"metrics.clicks", "metrics.impressions"`.
2957
+ # Corresponds to the JSON property `referencedSystemColumns`
2958
+ # @return [Array<String>]
2959
+ attr_accessor :referenced_system_columns
2960
+
2961
+ # Output only. True when the custom column is referring to one or more
2962
+ # attributes.
2963
+ # Corresponds to the JSON property `referencesAttributes`
2964
+ # @return [Boolean]
2965
+ attr_accessor :references_attributes
2966
+ alias_method :references_attributes?, :references_attributes
2967
+
2968
+ # Output only. True when the custom column is referring to one or more metrics.
2969
+ # Corresponds to the JSON property `referencesMetrics`
2970
+ # @return [Boolean]
2971
+ attr_accessor :references_metrics
2972
+ alias_method :references_metrics?, :references_metrics
2973
+
2974
+ # Immutable. The resource name of the custom column. Custom column resource
2975
+ # names have the form: `customers/`customer_id`/customColumns/`custom_column_id``
2976
+ # Corresponds to the JSON property `resourceName`
2977
+ # @return [String]
2978
+ attr_accessor :resource_name
2979
+
2980
+ # Output only. The type of the result value of the custom column.
2981
+ # Corresponds to the JSON property `valueType`
2982
+ # @return [String]
2983
+ attr_accessor :value_type
2984
+
2985
+ def initialize(**args)
2986
+ update!(**args)
2987
+ end
2988
+
2989
+ # Update properties of this object
2990
+ def update!(**args)
2991
+ @description = args[:description] if args.key?(:description)
2992
+ @id = args[:id] if args.key?(:id)
2993
+ @name = args[:name] if args.key?(:name)
2994
+ @queryable = args[:queryable] if args.key?(:queryable)
2995
+ @referenced_system_columns = args[:referenced_system_columns] if args.key?(:referenced_system_columns)
2996
+ @references_attributes = args[:references_attributes] if args.key?(:references_attributes)
2997
+ @references_metrics = args[:references_metrics] if args.key?(:references_metrics)
2998
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
2999
+ @value_type = args[:value_type] if args.key?(:value_type)
3000
+ end
3001
+ end
3002
+
3003
+ # A customer.
3004
+ class GoogleAdsSearchads360V0ResourcesCustomer
3005
+ include Google::Apis::Core::Hashable
3006
+
3007
+ # Output only. Account status, for example, Enabled, Paused, Removed, etc.
3008
+ # Corresponds to the JSON property `accountStatus`
3009
+ # @return [String]
3010
+ attr_accessor :account_status
3011
+
3012
+ # Output only. Engine account type, for example, Google Ads, Microsoft
3013
+ # Advertising, Yahoo Japan, Baidu, Facebook, Engine Track, etc.
3014
+ # Corresponds to the JSON property `accountType`
3015
+ # @return [String]
3016
+ attr_accessor :account_type
3017
+
3018
+ # Whether auto-tagging is enabled for the customer.
3019
+ # Corresponds to the JSON property `autoTaggingEnabled`
3020
+ # @return [Boolean]
3021
+ attr_accessor :auto_tagging_enabled
3022
+ alias_method :auto_tagging_enabled?, :auto_tagging_enabled
3023
+
3024
+ # A collection of customer-wide settings related to Search Ads 360 Conversion
3025
+ # Tracking.
3026
+ # Corresponds to the JSON property `conversionTrackingSetting`
3027
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesConversionTrackingSetting]
3028
+ attr_accessor :conversion_tracking_setting
3029
+
3030
+ # Immutable. The currency in which the account operates. A subset of the
3031
+ # currency codes from the ISO 4217 standard is supported.
3032
+ # Corresponds to the JSON property `currencyCode`
3033
+ # @return [String]
3034
+ attr_accessor :currency_code
3035
+
3036
+ # Optional, non-unique descriptive name of the customer.
3037
+ # Corresponds to the JSON property `descriptiveName`
3038
+ # @return [String]
3039
+ attr_accessor :descriptive_name
3040
+
3041
+ # DoubleClick Campaign Manager (DCM) setting for a manager customer.
3042
+ # Corresponds to the JSON property `doubleClickCampaignManagerSetting`
3043
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesDoubleClickCampaignManagerSetting]
3044
+ attr_accessor :double_click_campaign_manager_setting
3045
+
3046
+ # Output only. ID of the account in the external engine account.
3047
+ # Corresponds to the JSON property `engineId`
3048
+ # @return [String]
3049
+ attr_accessor :engine_id
3050
+
3051
+ # The URL template for appending params to the final URL
3052
+ # Corresponds to the JSON property `finalUrlSuffix`
3053
+ # @return [String]
3054
+ attr_accessor :final_url_suffix
3055
+
3056
+ # Output only. The ID of the customer.
3057
+ # Corresponds to the JSON property `id`
3058
+ # @return [Fixnum]
3059
+ attr_accessor :id
3060
+
3061
+ # Output only. The datetime when this customer was last modified. The datetime
3062
+ # is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss.ssssss" format.
3063
+ # Corresponds to the JSON property `lastModifiedTime`
3064
+ # @return [String]
3065
+ attr_accessor :last_modified_time
3066
+
3067
+ # Output only. Whether the customer is a manager.
3068
+ # Corresponds to the JSON property `manager`
3069
+ # @return [Boolean]
3070
+ attr_accessor :manager
3071
+ alias_method :manager?, :manager
3072
+
3073
+ # Immutable. The resource name of the customer. Customer resource names have the
3074
+ # form: `customers/`customer_id``
3075
+ # Corresponds to the JSON property `resourceName`
3076
+ # @return [String]
3077
+ attr_accessor :resource_name
3078
+
3079
+ # Output only. The status of the customer.
3080
+ # Corresponds to the JSON property `status`
3081
+ # @return [String]
3082
+ attr_accessor :status
3083
+
3084
+ # Immutable. The local timezone ID of the customer.
3085
+ # Corresponds to the JSON property `timeZone`
3086
+ # @return [String]
3087
+ attr_accessor :time_zone
3088
+
3089
+ # The URL template for constructing a tracking URL out of parameters.
3090
+ # Corresponds to the JSON property `trackingUrlTemplate`
3091
+ # @return [String]
3092
+ attr_accessor :tracking_url_template
3093
+
3094
+ def initialize(**args)
3095
+ update!(**args)
3096
+ end
3097
+
3098
+ # Update properties of this object
3099
+ def update!(**args)
3100
+ @account_status = args[:account_status] if args.key?(:account_status)
3101
+ @account_type = args[:account_type] if args.key?(:account_type)
3102
+ @auto_tagging_enabled = args[:auto_tagging_enabled] if args.key?(:auto_tagging_enabled)
3103
+ @conversion_tracking_setting = args[:conversion_tracking_setting] if args.key?(:conversion_tracking_setting)
3104
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3105
+ @descriptive_name = args[:descriptive_name] if args.key?(:descriptive_name)
3106
+ @double_click_campaign_manager_setting = args[:double_click_campaign_manager_setting] if args.key?(:double_click_campaign_manager_setting)
3107
+ @engine_id = args[:engine_id] if args.key?(:engine_id)
3108
+ @final_url_suffix = args[:final_url_suffix] if args.key?(:final_url_suffix)
3109
+ @id = args[:id] if args.key?(:id)
3110
+ @last_modified_time = args[:last_modified_time] if args.key?(:last_modified_time)
3111
+ @manager = args[:manager] if args.key?(:manager)
3112
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
3113
+ @status = args[:status] if args.key?(:status)
3114
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
3115
+ @tracking_url_template = args[:tracking_url_template] if args.key?(:tracking_url_template)
3116
+ end
3117
+ end
3118
+
3119
+ # A link between the given customer and a client customer. CustomerClients only
3120
+ # exist for manager customers. All direct and indirect client customers are
3121
+ # included, as well as the manager itself.
3122
+ class GoogleAdsSearchads360V0ResourcesCustomerClient
3123
+ include Google::Apis::Core::Hashable
3124
+
3125
+ # Output only. The resource names of the labels owned by the requesting customer
3126
+ # that are applied to the client customer. Label resource names have the form: `
3127
+ # customers/`customer_id`/labels/`label_id``
3128
+ # Corresponds to the JSON property `appliedLabels`
3129
+ # @return [Array<String>]
3130
+ attr_accessor :applied_labels
3131
+
3132
+ # Output only. The resource name of the client-customer which is linked to the
3133
+ # given customer. Read only.
3134
+ # Corresponds to the JSON property `clientCustomer`
3135
+ # @return [String]
3136
+ attr_accessor :client_customer
3137
+
3138
+ # Output only. Currency code (for example, 'USD', 'EUR') for the client. Read
3139
+ # only.
3140
+ # Corresponds to the JSON property `currencyCode`
3141
+ # @return [String]
3142
+ attr_accessor :currency_code
3143
+
3144
+ # Output only. Descriptive name for the client. Read only.
3145
+ # Corresponds to the JSON property `descriptiveName`
3146
+ # @return [String]
3147
+ attr_accessor :descriptive_name
3148
+
3149
+ # Output only. Specifies whether this is a hidden account. Read only.
3150
+ # Corresponds to the JSON property `hidden`
3151
+ # @return [Boolean]
3152
+ attr_accessor :hidden
3153
+ alias_method :hidden?, :hidden
3154
+
3155
+ # Output only. The ID of the client customer. Read only.
3156
+ # Corresponds to the JSON property `id`
3157
+ # @return [Fixnum]
3158
+ attr_accessor :id
3159
+
3160
+ # Output only. Distance between given customer and client. For self link, the
3161
+ # level value will be 0. Read only.
3162
+ # Corresponds to the JSON property `level`
3163
+ # @return [Fixnum]
3164
+ attr_accessor :level
3165
+
3166
+ # Output only. Identifies if the client is a manager. Read only.
3167
+ # Corresponds to the JSON property `manager`
3168
+ # @return [Boolean]
3169
+ attr_accessor :manager
3170
+ alias_method :manager?, :manager
3171
+
3172
+ # Output only. The resource name of the customer client. CustomerClient resource
3173
+ # names have the form: `customers/`customer_id`/customerClients/`
3174
+ # client_customer_id``
3175
+ # Corresponds to the JSON property `resourceName`
3176
+ # @return [String]
3177
+ attr_accessor :resource_name
3178
+
3179
+ # Output only. The status of the client customer. Read only.
3180
+ # Corresponds to the JSON property `status`
3181
+ # @return [String]
3182
+ attr_accessor :status
3183
+
3184
+ # Output only. Identifies if the client is a test account. Read only.
3185
+ # Corresponds to the JSON property `testAccount`
3186
+ # @return [Boolean]
3187
+ attr_accessor :test_account
3188
+ alias_method :test_account?, :test_account
3189
+
3190
+ # Output only. Common Locale Data Repository (CLDR) string representation of the
3191
+ # time zone of the client, for example, America/Los_Angeles. Read only.
3192
+ # Corresponds to the JSON property `timeZone`
3193
+ # @return [String]
3194
+ attr_accessor :time_zone
3195
+
3196
+ def initialize(**args)
3197
+ update!(**args)
3198
+ end
3199
+
3200
+ # Update properties of this object
3201
+ def update!(**args)
3202
+ @applied_labels = args[:applied_labels] if args.key?(:applied_labels)
3203
+ @client_customer = args[:client_customer] if args.key?(:client_customer)
3204
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
3205
+ @descriptive_name = args[:descriptive_name] if args.key?(:descriptive_name)
3206
+ @hidden = args[:hidden] if args.key?(:hidden)
3207
+ @id = args[:id] if args.key?(:id)
3208
+ @level = args[:level] if args.key?(:level)
3209
+ @manager = args[:manager] if args.key?(:manager)
3210
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
3211
+ @status = args[:status] if args.key?(:status)
3212
+ @test_account = args[:test_account] if args.key?(:test_account)
3213
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
3214
+ end
3215
+ end
3216
+
3217
+ # Represents customer-manager link relationship.
3218
+ class GoogleAdsSearchads360V0ResourcesCustomerManagerLink
3219
+ include Google::Apis::Core::Hashable
3220
+
3221
+ # Output only. The manager customer linked to the customer.
3222
+ # Corresponds to the JSON property `managerCustomer`
3223
+ # @return [String]
3224
+ attr_accessor :manager_customer
3225
+
3226
+ # Output only. ID of the customer-manager link. This field is read only.
3227
+ # Corresponds to the JSON property `managerLinkId`
3228
+ # @return [Fixnum]
3229
+ attr_accessor :manager_link_id
3230
+
3231
+ # Immutable. Name of the resource. CustomerManagerLink resource names have the
3232
+ # form: `customers/`customer_id`/customerManagerLinks/`manager_customer_id`~`
3233
+ # manager_link_id``
3234
+ # Corresponds to the JSON property `resourceName`
3235
+ # @return [String]
3236
+ attr_accessor :resource_name
3237
+
3238
+ # Status of the link between the customer and the manager.
3239
+ # Corresponds to the JSON property `status`
3240
+ # @return [String]
3241
+ attr_accessor :status
3242
+
3243
+ def initialize(**args)
3244
+ update!(**args)
3245
+ end
3246
+
3247
+ # Update properties of this object
3248
+ def update!(**args)
3249
+ @manager_customer = args[:manager_customer] if args.key?(:manager_customer)
3250
+ @manager_link_id = args[:manager_link_id] if args.key?(:manager_link_id)
3251
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
3252
+ @status = args[:status] if args.key?(:status)
3253
+ end
3254
+ end
3255
+
3256
+ # DoubleClick Campaign Manager (DCM) setting for a manager customer.
3257
+ class GoogleAdsSearchads360V0ResourcesDoubleClickCampaignManagerSetting
3258
+ include Google::Apis::Core::Hashable
3259
+
3260
+ # Output only. ID of the Campaign Manager advertiser associated with this
3261
+ # customer.
3262
+ # Corresponds to the JSON property `advertiserId`
3263
+ # @return [Fixnum]
3264
+ attr_accessor :advertiser_id
3265
+
3266
+ # Output only. ID of the Campaign Manager network associated with this customer.
3267
+ # Corresponds to the JSON property `networkId`
3268
+ # @return [Fixnum]
3269
+ attr_accessor :network_id
3270
+
3271
+ # Output only. Time zone of the Campaign Manager network associated with this
3272
+ # customer in IANA Time Zone Database format, such as America/New_York.
3273
+ # Corresponds to the JSON property `timeZone`
3274
+ # @return [String]
3275
+ attr_accessor :time_zone
3276
+
3277
+ def initialize(**args)
3278
+ update!(**args)
3279
+ end
3280
+
3281
+ # Update properties of this object
3282
+ def update!(**args)
3283
+ @advertiser_id = args[:advertiser_id] if args.key?(:advertiser_id)
3284
+ @network_id = args[:network_id] if args.key?(:network_id)
3285
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
3286
+ end
3287
+ end
3288
+
3289
+ # A keyword view.
3290
+ class GoogleAdsSearchads360V0ResourcesKeywordView
3291
+ include Google::Apis::Core::Hashable
3292
+
3293
+ # Output only. The resource name of the keyword view. Keyword view resource
3294
+ # names have the form: `customers/`customer_id`/keywordViews/`ad_group_id`~`
3295
+ # criterion_id``
3296
+ # Corresponds to the JSON property `resourceName`
3297
+ # @return [String]
3298
+ attr_accessor :resource_name
3299
+
3300
+ def initialize(**args)
3301
+ update!(**args)
3302
+ end
3303
+
3304
+ # Update properties of this object
3305
+ def update!(**args)
3306
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
3307
+ end
3308
+ end
3309
+
3310
+ # A product group view.
3311
+ class GoogleAdsSearchads360V0ResourcesProductGroupView
3312
+ include Google::Apis::Core::Hashable
3313
+
3314
+ # Output only. The resource name of the product group view. Product group view
3315
+ # resource names have the form: `customers/`customer_id`/productGroupViews/`
3316
+ # ad_group_id`~`criterion_id``
3317
+ # Corresponds to the JSON property `resourceName`
3318
+ # @return [String]
3319
+ attr_accessor :resource_name
3320
+
3321
+ def initialize(**args)
3322
+ update!(**args)
3323
+ end
3324
+
3325
+ # Update properties of this object
3326
+ def update!(**args)
3327
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
3328
+ end
3329
+ end
3330
+
3331
+ # A field or resource (artifact) used by SearchAds360Service.
3332
+ class GoogleAdsSearchads360V0ResourcesSearchAds360Field
3333
+ include Google::Apis::Core::Hashable
3334
+
3335
+ # Output only. The names of all resources that are selectable with the described
3336
+ # artifact. Fields from these resources do not segment metrics when included in
3337
+ # search queries. This field is only set for artifacts whose category is
3338
+ # RESOURCE.
3339
+ # Corresponds to the JSON property `attributeResources`
3340
+ # @return [Array<String>]
3341
+ attr_accessor :attribute_resources
3342
+
3343
+ # Output only. The category of the artifact.
3344
+ # Corresponds to the JSON property `category`
3345
+ # @return [String]
3346
+ attr_accessor :category
3347
+
3348
+ # Output only. This field determines the operators that can be used with the
3349
+ # artifact in WHERE clauses.
3350
+ # Corresponds to the JSON property `dataType`
3351
+ # @return [String]
3352
+ attr_accessor :data_type
3353
+
3354
+ # Output only. Values the artifact can assume if it is a field of type ENUM.
3355
+ # This field is only set for artifacts of category SEGMENT or ATTRIBUTE.
3356
+ # Corresponds to the JSON property `enumValues`
3357
+ # @return [Array<String>]
3358
+ attr_accessor :enum_values
3359
+
3360
+ # Output only. Whether the artifact can be used in a WHERE clause in search
3361
+ # queries.
3362
+ # Corresponds to the JSON property `filterable`
3363
+ # @return [Boolean]
3364
+ attr_accessor :filterable
3365
+ alias_method :filterable?, :filterable
3366
+
3367
+ # Output only. Whether the field artifact is repeated.
3368
+ # Corresponds to the JSON property `isRepeated`
3369
+ # @return [Boolean]
3370
+ attr_accessor :is_repeated
3371
+ alias_method :is_repeated?, :is_repeated
3372
+
3373
+ # Output only. This field lists the names of all metrics that are selectable
3374
+ # with the described artifact when it is used in the FROM clause. It is only set
3375
+ # for artifacts whose category is RESOURCE.
3376
+ # Corresponds to the JSON property `metrics`
3377
+ # @return [Array<String>]
3378
+ attr_accessor :metrics
3379
+
3380
+ # Output only. The name of the artifact.
3381
+ # Corresponds to the JSON property `name`
3382
+ # @return [String]
3383
+ attr_accessor :name
3384
+
3385
+ # Output only. The resource name of the artifact. Artifact resource names have
3386
+ # the form: `SearchAds360Fields/`name``
3387
+ # Corresponds to the JSON property `resourceName`
3388
+ # @return [String]
3389
+ attr_accessor :resource_name
3390
+
3391
+ # Output only. This field lists the names of all artifacts, whether a segment or
3392
+ # another resource, that segment metrics when included in search queries and
3393
+ # when the described artifact is used in the FROM clause. It is only set for
3394
+ # artifacts whose category is RESOURCE.
3395
+ # Corresponds to the JSON property `segments`
3396
+ # @return [Array<String>]
3397
+ attr_accessor :segments
3398
+
3399
+ # Output only. Whether the artifact can be used in a SELECT clause in search
3400
+ # queries.
3401
+ # Corresponds to the JSON property `selectable`
3402
+ # @return [Boolean]
3403
+ attr_accessor :selectable
3404
+ alias_method :selectable?, :selectable
3405
+
3406
+ # Output only. The names of all resources, segments, and metrics that are
3407
+ # selectable with the described artifact.
3408
+ # Corresponds to the JSON property `selectableWith`
3409
+ # @return [Array<String>]
3410
+ attr_accessor :selectable_with
3411
+
3412
+ # Output only. Whether the artifact can be used in a ORDER BY clause in search
3413
+ # queries.
3414
+ # Corresponds to the JSON property `sortable`
3415
+ # @return [Boolean]
3416
+ attr_accessor :sortable
3417
+ alias_method :sortable?, :sortable
3418
+
3419
+ # Output only. The URL of proto describing the artifact's data type.
3420
+ # Corresponds to the JSON property `typeUrl`
3421
+ # @return [String]
3422
+ attr_accessor :type_url
3423
+
3424
+ def initialize(**args)
3425
+ update!(**args)
3426
+ end
3427
+
3428
+ # Update properties of this object
3429
+ def update!(**args)
3430
+ @attribute_resources = args[:attribute_resources] if args.key?(:attribute_resources)
3431
+ @category = args[:category] if args.key?(:category)
3432
+ @data_type = args[:data_type] if args.key?(:data_type)
3433
+ @enum_values = args[:enum_values] if args.key?(:enum_values)
3434
+ @filterable = args[:filterable] if args.key?(:filterable)
3435
+ @is_repeated = args[:is_repeated] if args.key?(:is_repeated)
3436
+ @metrics = args[:metrics] if args.key?(:metrics)
3437
+ @name = args[:name] if args.key?(:name)
3438
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
3439
+ @segments = args[:segments] if args.key?(:segments)
3440
+ @selectable = args[:selectable] if args.key?(:selectable)
3441
+ @selectable_with = args[:selectable_with] if args.key?(:selectable_with)
3442
+ @sortable = args[:sortable] if args.key?(:sortable)
3443
+ @type_url = args[:type_url] if args.key?(:type_url)
3444
+ end
3445
+ end
3446
+
3447
+ # Message for custom column header.
3448
+ class GoogleAdsSearchads360V0ServicesCustomColumnHeader
3449
+ include Google::Apis::Core::Hashable
3450
+
3451
+ # The custom column ID.
3452
+ # Corresponds to the JSON property `id`
3453
+ # @return [Fixnum]
3454
+ attr_accessor :id
3455
+
3456
+ # The user defined name of the custom column.
3457
+ # Corresponds to the JSON property `name`
3458
+ # @return [String]
3459
+ attr_accessor :name
3460
+
3461
+ # True when the custom column references metrics.
3462
+ # Corresponds to the JSON property `referencesMetrics`
3463
+ # @return [Boolean]
3464
+ attr_accessor :references_metrics
3465
+ alias_method :references_metrics?, :references_metrics
3466
+
3467
+ def initialize(**args)
3468
+ update!(**args)
3469
+ end
3470
+
3471
+ # Update properties of this object
3472
+ def update!(**args)
3473
+ @id = args[:id] if args.key?(:id)
3474
+ @name = args[:name] if args.key?(:name)
3475
+ @references_metrics = args[:references_metrics] if args.key?(:references_metrics)
3476
+ end
3477
+ end
3478
+
3479
+ # Response message for fetching all custom columns associated with a customer.
3480
+ class GoogleAdsSearchads360V0ServicesListCustomColumnsResponse
3481
+ include Google::Apis::Core::Hashable
3482
+
3483
+ # The CustomColumns owned by the provided customer.
3484
+ # Corresponds to the JSON property `customColumns`
3485
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCustomColumn>]
3486
+ attr_accessor :custom_columns
3487
+
3488
+ def initialize(**args)
3489
+ update!(**args)
3490
+ end
3491
+
3492
+ # Update properties of this object
3493
+ def update!(**args)
3494
+ @custom_columns = args[:custom_columns] if args.key?(:custom_columns)
3495
+ end
3496
+ end
3497
+
3498
+ # A returned row from the query.
3499
+ class GoogleAdsSearchads360V0ServicesSearchAds360Row
3500
+ include Google::Apis::Core::Hashable
3501
+
3502
+ # An ad group.
3503
+ # Corresponds to the JSON property `adGroup`
3504
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesAdGroup]
3505
+ attr_accessor :ad_group
3506
+
3507
+ # Represents an ad group bid modifier.
3508
+ # Corresponds to the JSON property `adGroupBidModifier`
3509
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesAdGroupBidModifier]
3510
+ attr_accessor :ad_group_bid_modifier
3511
+
3512
+ # An ad group criterion.
3513
+ # Corresponds to the JSON property `adGroupCriterion`
3514
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesAdGroupCriterion]
3515
+ attr_accessor :ad_group_criterion
3516
+
3517
+ # A bidding strategy.
3518
+ # Corresponds to the JSON property `biddingStrategy`
3519
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesBiddingStrategy]
3520
+ attr_accessor :bidding_strategy
3521
+
3522
+ # A campaign.
3523
+ # Corresponds to the JSON property `campaign`
3524
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaign]
3525
+ attr_accessor :campaign
3526
+
3527
+ # A campaign budget.
3528
+ # Corresponds to the JSON property `campaignBudget`
3529
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignBudget]
3530
+ attr_accessor :campaign_budget
3531
+
3532
+ # A campaign criterion.
3533
+ # Corresponds to the JSON property `campaignCriterion`
3534
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCampaignCriterion]
3535
+ attr_accessor :campaign_criterion
3536
+
3537
+ # A conversion action.
3538
+ # Corresponds to the JSON property `conversionAction`
3539
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesConversionAction]
3540
+ attr_accessor :conversion_action
3541
+
3542
+ # The custom columns.
3543
+ # Corresponds to the JSON property `customColumns`
3544
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonValue>]
3545
+ attr_accessor :custom_columns
3546
+
3547
+ # A customer.
3548
+ # Corresponds to the JSON property `customer`
3549
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCustomer]
3550
+ attr_accessor :customer
3551
+
3552
+ # A link between the given customer and a client customer. CustomerClients only
3553
+ # exist for manager customers. All direct and indirect client customers are
3554
+ # included, as well as the manager itself.
3555
+ # Corresponds to the JSON property `customerClient`
3556
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCustomerClient]
3557
+ attr_accessor :customer_client
3558
+
3559
+ # Represents customer-manager link relationship.
3560
+ # Corresponds to the JSON property `customerManagerLink`
3561
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesCustomerManagerLink]
3562
+ attr_accessor :customer_manager_link
3563
+
3564
+ # A keyword view.
3565
+ # Corresponds to the JSON property `keywordView`
3566
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesKeywordView]
3567
+ attr_accessor :keyword_view
3568
+
3569
+ # Metrics data.
3570
+ # Corresponds to the JSON property `metrics`
3571
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonMetrics]
3572
+ attr_accessor :metrics
3573
+
3574
+ # A product group view.
3575
+ # Corresponds to the JSON property `productGroupView`
3576
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesProductGroupView]
3577
+ attr_accessor :product_group_view
3578
+
3579
+ # Segment only fields.
3580
+ # Corresponds to the JSON property `segments`
3581
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0CommonSegments]
3582
+ attr_accessor :segments
3583
+
3584
+ def initialize(**args)
3585
+ update!(**args)
3586
+ end
3587
+
3588
+ # Update properties of this object
3589
+ def update!(**args)
3590
+ @ad_group = args[:ad_group] if args.key?(:ad_group)
3591
+ @ad_group_bid_modifier = args[:ad_group_bid_modifier] if args.key?(:ad_group_bid_modifier)
3592
+ @ad_group_criterion = args[:ad_group_criterion] if args.key?(:ad_group_criterion)
3593
+ @bidding_strategy = args[:bidding_strategy] if args.key?(:bidding_strategy)
3594
+ @campaign = args[:campaign] if args.key?(:campaign)
3595
+ @campaign_budget = args[:campaign_budget] if args.key?(:campaign_budget)
3596
+ @campaign_criterion = args[:campaign_criterion] if args.key?(:campaign_criterion)
3597
+ @conversion_action = args[:conversion_action] if args.key?(:conversion_action)
3598
+ @custom_columns = args[:custom_columns] if args.key?(:custom_columns)
3599
+ @customer = args[:customer] if args.key?(:customer)
3600
+ @customer_client = args[:customer_client] if args.key?(:customer_client)
3601
+ @customer_manager_link = args[:customer_manager_link] if args.key?(:customer_manager_link)
3602
+ @keyword_view = args[:keyword_view] if args.key?(:keyword_view)
3603
+ @metrics = args[:metrics] if args.key?(:metrics)
3604
+ @product_group_view = args[:product_group_view] if args.key?(:product_group_view)
3605
+ @segments = args[:segments] if args.key?(:segments)
3606
+ end
3607
+ end
3608
+
3609
+ # Request message for SearchAds360FieldService.SearchSearchAds360Fields.
3610
+ class GoogleAdsSearchads360V0ServicesSearchSearchAds360FieldsRequest
3611
+ include Google::Apis::Core::Hashable
3612
+
3613
+ # Number of elements to retrieve in a single page. When too large a page is
3614
+ # requested, the server may decide to further limit the number of returned
3615
+ # resources.
3616
+ # Corresponds to the JSON property `pageSize`
3617
+ # @return [Fixnum]
3618
+ attr_accessor :page_size
3619
+
3620
+ # Token of the page to retrieve. If not specified, the first page of results
3621
+ # will be returned. Use the value obtained from `next_page_token` in the
3622
+ # previous response in order to request the next page of results.
3623
+ # Corresponds to the JSON property `pageToken`
3624
+ # @return [String]
3625
+ attr_accessor :page_token
3626
+
3627
+ # Required. The query string.
3628
+ # Corresponds to the JSON property `query`
3629
+ # @return [String]
3630
+ attr_accessor :query
3631
+
3632
+ def initialize(**args)
3633
+ update!(**args)
3634
+ end
3635
+
3636
+ # Update properties of this object
3637
+ def update!(**args)
3638
+ @page_size = args[:page_size] if args.key?(:page_size)
3639
+ @page_token = args[:page_token] if args.key?(:page_token)
3640
+ @query = args[:query] if args.key?(:query)
3641
+ end
3642
+ end
3643
+
3644
+ # Response message for SearchAds360FieldService.SearchSearchAds360Fields.
3645
+ class GoogleAdsSearchads360V0ServicesSearchSearchAds360FieldsResponse
3646
+ include Google::Apis::Core::Hashable
3647
+
3648
+ # Pagination token used to retrieve the next page of results. Pass the content
3649
+ # of this string as the `page_token` attribute of the next request. `
3650
+ # next_page_token` is not returned for the last page.
3651
+ # Corresponds to the JSON property `nextPageToken`
3652
+ # @return [String]
3653
+ attr_accessor :next_page_token
3654
+
3655
+ # The list of fields that matched the query.
3656
+ # Corresponds to the JSON property `results`
3657
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ResourcesSearchAds360Field>]
3658
+ attr_accessor :results
3659
+
3660
+ # Total number of results that match the query ignoring the LIMIT clause.
3661
+ # Corresponds to the JSON property `totalResultsCount`
3662
+ # @return [Fixnum]
3663
+ attr_accessor :total_results_count
3664
+
3665
+ def initialize(**args)
3666
+ update!(**args)
3667
+ end
3668
+
3669
+ # Update properties of this object
3670
+ def update!(**args)
3671
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3672
+ @results = args[:results] if args.key?(:results)
3673
+ @total_results_count = args[:total_results_count] if args.key?(:total_results_count)
3674
+ end
3675
+ end
3676
+
3677
+ # Request message for SearchAds360Service.Search.
3678
+ class GoogleAdsSearchads360V0ServicesSearchSearchAds360Request
3679
+ include Google::Apis::Core::Hashable
3680
+
3681
+ # Number of elements to retrieve in a single page. When too large a page is
3682
+ # requested, the server may decide to further limit the number of returned
3683
+ # resources.
3684
+ # Corresponds to the JSON property `pageSize`
3685
+ # @return [Fixnum]
3686
+ attr_accessor :page_size
3687
+
3688
+ # Token of the page to retrieve. If not specified, the first page of results
3689
+ # will be returned. Use the value obtained from `next_page_token` in the
3690
+ # previous response in order to request the next page of results.
3691
+ # Corresponds to the JSON property `pageToken`
3692
+ # @return [String]
3693
+ attr_accessor :page_token
3694
+
3695
+ # Required. The query string.
3696
+ # Corresponds to the JSON property `query`
3697
+ # @return [String]
3698
+ attr_accessor :query
3699
+
3700
+ # If true, the total number of results that match the query ignoring the LIMIT
3701
+ # clause will be included in the response. Default is false.
3702
+ # Corresponds to the JSON property `returnTotalResultsCount`
3703
+ # @return [Boolean]
3704
+ attr_accessor :return_total_results_count
3705
+ alias_method :return_total_results_count?, :return_total_results_count
3706
+
3707
+ # Determines whether a summary row will be returned. By default, summary row is
3708
+ # not returned. If requested, the summary row will be sent in a response by
3709
+ # itself after all other query results are returned.
3710
+ # Corresponds to the JSON property `summaryRowSetting`
3711
+ # @return [String]
3712
+ attr_accessor :summary_row_setting
3713
+
3714
+ # If true, the request is validated but not executed.
3715
+ # Corresponds to the JSON property `validateOnly`
3716
+ # @return [Boolean]
3717
+ attr_accessor :validate_only
3718
+ alias_method :validate_only?, :validate_only
3719
+
3720
+ def initialize(**args)
3721
+ update!(**args)
3722
+ end
3723
+
3724
+ # Update properties of this object
3725
+ def update!(**args)
3726
+ @page_size = args[:page_size] if args.key?(:page_size)
3727
+ @page_token = args[:page_token] if args.key?(:page_token)
3728
+ @query = args[:query] if args.key?(:query)
3729
+ @return_total_results_count = args[:return_total_results_count] if args.key?(:return_total_results_count)
3730
+ @summary_row_setting = args[:summary_row_setting] if args.key?(:summary_row_setting)
3731
+ @validate_only = args[:validate_only] if args.key?(:validate_only)
3732
+ end
3733
+ end
3734
+
3735
+ # Response message for SearchAds360Service.Search.
3736
+ class GoogleAdsSearchads360V0ServicesSearchSearchAds360Response
3737
+ include Google::Apis::Core::Hashable
3738
+
3739
+ # The headers of the custom columns in the results.
3740
+ # Corresponds to the JSON property `customColumnHeaders`
3741
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ServicesCustomColumnHeader>]
3742
+ attr_accessor :custom_column_headers
3743
+
3744
+ # FieldMask that represents what fields were requested by the user.
3745
+ # Corresponds to the JSON property `fieldMask`
3746
+ # @return [String]
3747
+ attr_accessor :field_mask
3748
+
3749
+ # Pagination token used to retrieve the next page of results. Pass the content
3750
+ # of this string as the `page_token` attribute of the next request. `
3751
+ # next_page_token` is not returned for the last page.
3752
+ # Corresponds to the JSON property `nextPageToken`
3753
+ # @return [String]
3754
+ attr_accessor :next_page_token
3755
+
3756
+ # The list of rows that matched the query.
3757
+ # Corresponds to the JSON property `results`
3758
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ServicesSearchAds360Row>]
3759
+ attr_accessor :results
3760
+
3761
+ # A returned row from the query.
3762
+ # Corresponds to the JSON property `summaryRow`
3763
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ServicesSearchAds360Row]
3764
+ attr_accessor :summary_row
3765
+
3766
+ # Total number of results that match the query ignoring the LIMIT clause.
3767
+ # Corresponds to the JSON property `totalResultsCount`
3768
+ # @return [Fixnum]
3769
+ attr_accessor :total_results_count
3770
+
3771
+ def initialize(**args)
3772
+ update!(**args)
3773
+ end
3774
+
3775
+ # Update properties of this object
3776
+ def update!(**args)
3777
+ @custom_column_headers = args[:custom_column_headers] if args.key?(:custom_column_headers)
3778
+ @field_mask = args[:field_mask] if args.key?(:field_mask)
3779
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3780
+ @results = args[:results] if args.key?(:results)
3781
+ @summary_row = args[:summary_row] if args.key?(:summary_row)
3782
+ @total_results_count = args[:total_results_count] if args.key?(:total_results_count)
3783
+ end
3784
+ end
3785
+
3786
+ # Request message for SearchAds360Service.SearchStream.
3787
+ class GoogleAdsSearchads360V0ServicesSearchSearchAds360StreamRequest
3788
+ include Google::Apis::Core::Hashable
3789
+
3790
+ # The number of rows that are returned in each stream response batch. When too
3791
+ # large batch is requested, the server may decide to further limit the number of
3792
+ # returned rows.
3793
+ # Corresponds to the JSON property `batchSize`
3794
+ # @return [Fixnum]
3795
+ attr_accessor :batch_size
3796
+
3797
+ # Required. The query string.
3798
+ # Corresponds to the JSON property `query`
3799
+ # @return [String]
3800
+ attr_accessor :query
3801
+
3802
+ # Determines whether a summary row will be returned. By default, summary row is
3803
+ # not returned. If requested, the summary row will be sent in a response by
3804
+ # itself after all other query results are returned.
3805
+ # Corresponds to the JSON property `summaryRowSetting`
3806
+ # @return [String]
3807
+ attr_accessor :summary_row_setting
3808
+
3809
+ def initialize(**args)
3810
+ update!(**args)
3811
+ end
3812
+
3813
+ # Update properties of this object
3814
+ def update!(**args)
3815
+ @batch_size = args[:batch_size] if args.key?(:batch_size)
3816
+ @query = args[:query] if args.key?(:query)
3817
+ @summary_row_setting = args[:summary_row_setting] if args.key?(:summary_row_setting)
3818
+ end
3819
+ end
3820
+
3821
+ # Response message for SearchAds360Service.SearchStream.
3822
+ class GoogleAdsSearchads360V0ServicesSearchSearchAds360StreamResponse
3823
+ include Google::Apis::Core::Hashable
3824
+
3825
+ # The headers of the custom columns in the results.
3826
+ # Corresponds to the JSON property `customColumnHeaders`
3827
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ServicesCustomColumnHeader>]
3828
+ attr_accessor :custom_column_headers
3829
+
3830
+ # FieldMask that represents what fields were requested by the user.
3831
+ # Corresponds to the JSON property `fieldMask`
3832
+ # @return [String]
3833
+ attr_accessor :field_mask
3834
+
3835
+ # The unique id of the request that is used for debugging purposes.
3836
+ # Corresponds to the JSON property `requestId`
3837
+ # @return [String]
3838
+ attr_accessor :request_id
3839
+
3840
+ # The list of rows that matched the query.
3841
+ # Corresponds to the JSON property `results`
3842
+ # @return [Array<Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ServicesSearchAds360Row>]
3843
+ attr_accessor :results
3844
+
3845
+ # A returned row from the query.
3846
+ # Corresponds to the JSON property `summaryRow`
3847
+ # @return [Google::Apis::Searchads360V0::GoogleAdsSearchads360V0ServicesSearchAds360Row]
3848
+ attr_accessor :summary_row
3849
+
3850
+ def initialize(**args)
3851
+ update!(**args)
3852
+ end
3853
+
3854
+ # Update properties of this object
3855
+ def update!(**args)
3856
+ @custom_column_headers = args[:custom_column_headers] if args.key?(:custom_column_headers)
3857
+ @field_mask = args[:field_mask] if args.key?(:field_mask)
3858
+ @request_id = args[:request_id] if args.key?(:request_id)
3859
+ @results = args[:results] if args.key?(:results)
3860
+ @summary_row = args[:summary_row] if args.key?(:summary_row)
3861
+ end
3862
+ end
3863
+ end
3864
+ end
3865
+ end