google-apis-searchads360_v0 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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