Skip to content

Commit 2fe0eae

Browse files
feat: add UserListService for creating and managing user lists (#32774)
* feat: add `UserListService` for creating and managing user lists feat: add `UserListDirectLicenseService` for creating and managing direct user list licenses feat: add `UserListGlobalLicenseService` for creating and managing global user list licenses feat: add `MarketingDataInsightsService` for retrieving marketing data insights for a given user list feat: add `PartnerLinkService` for creating and managing links between advertiser and data partner accounts feat: add `UserList` resource feat: add `UserListDirectLicense` resource feat: add `UserListGlobalLicense` resource feat: add `UserListGlobalLicenseCustomerInfo` resource feat: add `PartnerLink` resource feat: add `UserIdData` to `AudienceMember` to support User ID in audience member ingestion feat: add `PpidData` to `AudienceMember` to support Publisher Provided ID (PPID) in audience member ingestion feat: add `IngestUserIdDataStatus` to `IngestAudienceMembersStatus` to report the status of user ID data ingestion feat: add `IngestPpidDataStatus` to `IngestAudienceMembersStatus` to report the status of PPID data ingestion feat: add `RemoveUserIdDataStatus` to `RemoveAudienceMembersStatus` to report the status of user ID data removal feat: add `RemovePpidDataStatus` to `RemoveAudienceMembersStatus` to report the status of PPID data removal feat: add `GOOGLE_AD_MANAGER_AUDIENCE_LINK` to the `AccountType` enum feat: add `AgeRange` and `Gender` enums to support demographic breakdown in marketing insights feat: add new `ErrorReason` values for licensing, user list operations, and permission checks fix!: changed `conversion_value` field to be optional in message `Event` docs: add comments to resources and methods to clarify which are available only to data partners docs: a comment for enum `ErrorReason` is changed to clarify that it is subject to future additions docs: a comment for field `pair_data` in message `AudienceMember` is changed to clarify it is only available to data partners docs: a comment for message `PairData` is changed to clarify it is only available to data partners PiperOrigin-RevId: 873059573 Source-Link: googleapis/googleapis@1e6955c Source-Link: googleapis/googleapis-gen@91b643a Copy-Tag: eyJwIjoiZ29vZ2xlLWFkcy1kYXRhX21hbmFnZXIvLk93bEJvdC55YW1sIiwiaCI6IjkxYjY0M2FjOWZiZmQ3ZTc5NDI1NzZjNGEzNTZhMTlkMTMzMzViYTgifQ== * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent ae3b609 commit 2fe0eae

2 files changed

Lines changed: 465 additions & 0 deletions

File tree

google-ads-data_manager/lib/google/ads/data_manager.rb

Lines changed: 360 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,366 @@ def self.ingestion_service_available? version: :v1, transport: :grpc
9696
rescue ::LoadError
9797
false
9898
end
99+
100+
##
101+
# Create a new client object for MarketingDataInsightsService.
102+
#
103+
# By default, this returns an instance of
104+
# [Google::Ads::DataManager::V1::MarketingDataInsightsService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/MarketingDataInsightsService/Client)
105+
# for a gRPC client for version V1 of the API.
106+
# However, you can specify a different API version by passing it in the
107+
# `version` parameter. If the MarketingDataInsightsService service is
108+
# supported by that API version, and the corresponding gem is available, the
109+
# appropriate versioned client will be returned.
110+
# You can also specify a different transport by passing `:rest` or `:grpc` in
111+
# the `transport` parameter.
112+
#
113+
# Raises an exception if the currently installed versioned client gem for the
114+
# given API version does not support the given transport of the MarketingDataInsightsService service.
115+
# You can determine whether the method will succeed by calling
116+
# {Google::Ads::DataManager.marketing_data_insights_service_available?}.
117+
#
118+
# ## About MarketingDataInsightsService
119+
#
120+
# Service to return insights on marketing data.
121+
#
122+
# This feature is only available to data partners.
123+
#
124+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
125+
# Defaults to `:v1`.
126+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
127+
# @return [::Object] A client object for the specified version.
128+
#
129+
def self.marketing_data_insights_service version: :v1, transport: :grpc, &block
130+
require "google/ads/data_manager/#{version.to_s.downcase}"
131+
132+
package_name = Google::Ads::DataManager
133+
.constants
134+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
135+
.first
136+
service_module = Google::Ads::DataManager.const_get(package_name).const_get(:MarketingDataInsightsService)
137+
service_module = service_module.const_get(:Rest) if transport == :rest
138+
service_module.const_get(:Client).new(&block)
139+
end
140+
141+
##
142+
# Determines whether the MarketingDataInsightsService service is supported by the current client.
143+
# If true, you can retrieve a client object by calling {Google::Ads::DataManager.marketing_data_insights_service}.
144+
# If false, that method will raise an exception. This could happen if the given
145+
# API version does not exist or does not support the MarketingDataInsightsService service,
146+
# or if the versioned client gem needs an update to support the MarketingDataInsightsService service.
147+
#
148+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
149+
# Defaults to `:v1`.
150+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
151+
# @return [boolean] Whether the service is available.
152+
#
153+
def self.marketing_data_insights_service_available? version: :v1, transport: :grpc
154+
require "google/ads/data_manager/#{version.to_s.downcase}"
155+
package_name = Google::Ads::DataManager
156+
.constants
157+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
158+
.first
159+
return false unless package_name
160+
service_module = Google::Ads::DataManager.const_get package_name
161+
return false unless service_module.const_defined? :MarketingDataInsightsService
162+
service_module = service_module.const_get :MarketingDataInsightsService
163+
if transport == :rest
164+
return false unless service_module.const_defined? :Rest
165+
service_module = service_module.const_get :Rest
166+
end
167+
service_module.const_defined? :Client
168+
rescue ::LoadError
169+
false
170+
end
171+
172+
##
173+
# Create a new client object for PartnerLinkService.
174+
#
175+
# By default, this returns an instance of
176+
# [Google::Ads::DataManager::V1::PartnerLinkService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/PartnerLinkService/Client)
177+
# for a gRPC client for version V1 of the API.
178+
# However, you can specify a different API version by passing it in the
179+
# `version` parameter. If the PartnerLinkService service is
180+
# supported by that API version, and the corresponding gem is available, the
181+
# appropriate versioned client will be returned.
182+
# You can also specify a different transport by passing `:rest` or `:grpc` in
183+
# the `transport` parameter.
184+
#
185+
# Raises an exception if the currently installed versioned client gem for the
186+
# given API version does not support the given transport of the PartnerLinkService service.
187+
# You can determine whether the method will succeed by calling
188+
# {Google::Ads::DataManager.partner_link_service_available?}.
189+
#
190+
# ## About PartnerLinkService
191+
#
192+
# Service for managing partner links.
193+
#
194+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
195+
# Defaults to `:v1`.
196+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
197+
# @return [::Object] A client object for the specified version.
198+
#
199+
def self.partner_link_service version: :v1, transport: :grpc, &block
200+
require "google/ads/data_manager/#{version.to_s.downcase}"
201+
202+
package_name = Google::Ads::DataManager
203+
.constants
204+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
205+
.first
206+
service_module = Google::Ads::DataManager.const_get(package_name).const_get(:PartnerLinkService)
207+
service_module = service_module.const_get(:Rest) if transport == :rest
208+
service_module.const_get(:Client).new(&block)
209+
end
210+
211+
##
212+
# Determines whether the PartnerLinkService service is supported by the current client.
213+
# If true, you can retrieve a client object by calling {Google::Ads::DataManager.partner_link_service}.
214+
# If false, that method will raise an exception. This could happen if the given
215+
# API version does not exist or does not support the PartnerLinkService service,
216+
# or if the versioned client gem needs an update to support the PartnerLinkService service.
217+
#
218+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
219+
# Defaults to `:v1`.
220+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
221+
# @return [boolean] Whether the service is available.
222+
#
223+
def self.partner_link_service_available? version: :v1, transport: :grpc
224+
require "google/ads/data_manager/#{version.to_s.downcase}"
225+
package_name = Google::Ads::DataManager
226+
.constants
227+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
228+
.first
229+
return false unless package_name
230+
service_module = Google::Ads::DataManager.const_get package_name
231+
return false unless service_module.const_defined? :PartnerLinkService
232+
service_module = service_module.const_get :PartnerLinkService
233+
if transport == :rest
234+
return false unless service_module.const_defined? :Rest
235+
service_module = service_module.const_get :Rest
236+
end
237+
service_module.const_defined? :Client
238+
rescue ::LoadError
239+
false
240+
end
241+
242+
##
243+
# Create a new client object for UserListDirectLicenseService.
244+
#
245+
# By default, this returns an instance of
246+
# [Google::Ads::DataManager::V1::UserListDirectLicenseService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListDirectLicenseService/Client)
247+
# for a gRPC client for version V1 of the API.
248+
# However, you can specify a different API version by passing it in the
249+
# `version` parameter. If the UserListDirectLicenseService service is
250+
# supported by that API version, and the corresponding gem is available, the
251+
# appropriate versioned client will be returned.
252+
# You can also specify a different transport by passing `:rest` or `:grpc` in
253+
# the `transport` parameter.
254+
#
255+
# Raises an exception if the currently installed versioned client gem for the
256+
# given API version does not support the given transport of the UserListDirectLicenseService service.
257+
# You can determine whether the method will succeed by calling
258+
# {Google::Ads::DataManager.user_list_direct_license_service_available?}.
259+
#
260+
# ## About UserListDirectLicenseService
261+
#
262+
# Service for managing user list direct licenses. Delete is not a supported
263+
# operation for UserListDirectLicenses. Callers should update the
264+
# license status to DISABLED to instead to deactivate a license.
265+
#
266+
# This feature is only available to data partners.
267+
#
268+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
269+
# Defaults to `:v1`.
270+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
271+
# @return [::Object] A client object for the specified version.
272+
#
273+
def self.user_list_direct_license_service version: :v1, transport: :grpc, &block
274+
require "google/ads/data_manager/#{version.to_s.downcase}"
275+
276+
package_name = Google::Ads::DataManager
277+
.constants
278+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
279+
.first
280+
service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListDirectLicenseService)
281+
service_module = service_module.const_get(:Rest) if transport == :rest
282+
service_module.const_get(:Client).new(&block)
283+
end
284+
285+
##
286+
# Determines whether the UserListDirectLicenseService service is supported by the current client.
287+
# If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_direct_license_service}.
288+
# If false, that method will raise an exception. This could happen if the given
289+
# API version does not exist or does not support the UserListDirectLicenseService service,
290+
# or if the versioned client gem needs an update to support the UserListDirectLicenseService service.
291+
#
292+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
293+
# Defaults to `:v1`.
294+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
295+
# @return [boolean] Whether the service is available.
296+
#
297+
def self.user_list_direct_license_service_available? version: :v1, transport: :grpc
298+
require "google/ads/data_manager/#{version.to_s.downcase}"
299+
package_name = Google::Ads::DataManager
300+
.constants
301+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
302+
.first
303+
return false unless package_name
304+
service_module = Google::Ads::DataManager.const_get package_name
305+
return false unless service_module.const_defined? :UserListDirectLicenseService
306+
service_module = service_module.const_get :UserListDirectLicenseService
307+
if transport == :rest
308+
return false unless service_module.const_defined? :Rest
309+
service_module = service_module.const_get :Rest
310+
end
311+
service_module.const_defined? :Client
312+
rescue ::LoadError
313+
false
314+
end
315+
316+
##
317+
# Create a new client object for UserListGlobalLicenseService.
318+
#
319+
# By default, this returns an instance of
320+
# [Google::Ads::DataManager::V1::UserListGlobalLicenseService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListGlobalLicenseService/Client)
321+
# for a gRPC client for version V1 of the API.
322+
# However, you can specify a different API version by passing it in the
323+
# `version` parameter. If the UserListGlobalLicenseService service is
324+
# supported by that API version, and the corresponding gem is available, the
325+
# appropriate versioned client will be returned.
326+
# You can also specify a different transport by passing `:rest` or `:grpc` in
327+
# the `transport` parameter.
328+
#
329+
# Raises an exception if the currently installed versioned client gem for the
330+
# given API version does not support the given transport of the UserListGlobalLicenseService service.
331+
# You can determine whether the method will succeed by calling
332+
# {Google::Ads::DataManager.user_list_global_license_service_available?}.
333+
#
334+
# ## About UserListGlobalLicenseService
335+
#
336+
# Service for managing user list global licenses. Delete is not a supported
337+
# operation for UserListGlobalLicenses. Callers should update the
338+
# license status to DISABLED to instead to deactivate a license.
339+
#
340+
# This feature is only available to data partners.
341+
#
342+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
343+
# Defaults to `:v1`.
344+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
345+
# @return [::Object] A client object for the specified version.
346+
#
347+
def self.user_list_global_license_service version: :v1, transport: :grpc, &block
348+
require "google/ads/data_manager/#{version.to_s.downcase}"
349+
350+
package_name = Google::Ads::DataManager
351+
.constants
352+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
353+
.first
354+
service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListGlobalLicenseService)
355+
service_module = service_module.const_get(:Rest) if transport == :rest
356+
service_module.const_get(:Client).new(&block)
357+
end
358+
359+
##
360+
# Determines whether the UserListGlobalLicenseService service is supported by the current client.
361+
# If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_global_license_service}.
362+
# If false, that method will raise an exception. This could happen if the given
363+
# API version does not exist or does not support the UserListGlobalLicenseService service,
364+
# or if the versioned client gem needs an update to support the UserListGlobalLicenseService service.
365+
#
366+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
367+
# Defaults to `:v1`.
368+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
369+
# @return [boolean] Whether the service is available.
370+
#
371+
def self.user_list_global_license_service_available? version: :v1, transport: :grpc
372+
require "google/ads/data_manager/#{version.to_s.downcase}"
373+
package_name = Google::Ads::DataManager
374+
.constants
375+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
376+
.first
377+
return false unless package_name
378+
service_module = Google::Ads::DataManager.const_get package_name
379+
return false unless service_module.const_defined? :UserListGlobalLicenseService
380+
service_module = service_module.const_get :UserListGlobalLicenseService
381+
if transport == :rest
382+
return false unless service_module.const_defined? :Rest
383+
service_module = service_module.const_get :Rest
384+
end
385+
service_module.const_defined? :Client
386+
rescue ::LoadError
387+
false
388+
end
389+
390+
##
391+
# Create a new client object for UserListService.
392+
#
393+
# By default, this returns an instance of
394+
# [Google::Ads::DataManager::V1::UserListService::Client](https://rubydoc.info/gems/google-ads-data_manager-v1/Google/Ads/DataManager/V1/UserListService/Client)
395+
# for a gRPC client for version V1 of the API.
396+
# However, you can specify a different API version by passing it in the
397+
# `version` parameter. If the UserListService service is
398+
# supported by that API version, and the corresponding gem is available, the
399+
# appropriate versioned client will be returned.
400+
# You can also specify a different transport by passing `:rest` or `:grpc` in
401+
# the `transport` parameter.
402+
#
403+
# Raises an exception if the currently installed versioned client gem for the
404+
# given API version does not support the given transport of the UserListService service.
405+
# You can determine whether the method will succeed by calling
406+
# {Google::Ads::DataManager.user_list_service_available?}.
407+
#
408+
# ## About UserListService
409+
#
410+
# Service for managing UserList resources.
411+
#
412+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
413+
# Defaults to `:v1`.
414+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
415+
# @return [::Object] A client object for the specified version.
416+
#
417+
def self.user_list_service version: :v1, transport: :grpc, &block
418+
require "google/ads/data_manager/#{version.to_s.downcase}"
419+
420+
package_name = Google::Ads::DataManager
421+
.constants
422+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
423+
.first
424+
service_module = Google::Ads::DataManager.const_get(package_name).const_get(:UserListService)
425+
service_module = service_module.const_get(:Rest) if transport == :rest
426+
service_module.const_get(:Client).new(&block)
427+
end
428+
429+
##
430+
# Determines whether the UserListService service is supported by the current client.
431+
# If true, you can retrieve a client object by calling {Google::Ads::DataManager.user_list_service}.
432+
# If false, that method will raise an exception. This could happen if the given
433+
# API version does not exist or does not support the UserListService service,
434+
# or if the versioned client gem needs an update to support the UserListService service.
435+
#
436+
# @param version [::String, ::Symbol] The API version to connect to. Optional.
437+
# Defaults to `:v1`.
438+
# @param transport [:grpc, :rest] The transport to use. Defaults to `:grpc`.
439+
# @return [boolean] Whether the service is available.
440+
#
441+
def self.user_list_service_available? version: :v1, transport: :grpc
442+
require "google/ads/data_manager/#{version.to_s.downcase}"
443+
package_name = Google::Ads::DataManager
444+
.constants
445+
.select { |sym| sym.to_s.downcase == version.to_s.downcase.tr("_", "") }
446+
.first
447+
return false unless package_name
448+
service_module = Google::Ads::DataManager.const_get package_name
449+
return false unless service_module.const_defined? :UserListService
450+
service_module = service_module.const_get :UserListService
451+
if transport == :rest
452+
return false unless service_module.const_defined? :Rest
453+
service_module = service_module.const_get :Rest
454+
end
455+
service_module.const_defined? :Client
456+
rescue ::LoadError
457+
false
458+
end
99459
end
100460
end
101461
end

0 commit comments

Comments
 (0)