factories proporciona una interfaz de alto nivel para crear operaciones y recursos con la biblioteca cliente.
Los métodos de fábrica se generan automáticamente para todos los recursos, enumeraciones, operaciones y tipos de servicios que proporciona la API de Google Ads. En los ejemplos de esta página, se supone que inicializaste una instancia de GoogleAdsClient y un objeto customer_id de destino:
require 'google/ads/google_ads'
client = Google::Ads::GoogleAds::GoogleAdsClient.new
customer_id = '1234567890'
Operaciones
La biblioteca proporciona métodos de conveniencia client.operation.create_resource.<resource_type>, client.operation.update_resource.<resource_type> y client.operation.remove_resource.<resource_type> para compilar operaciones que funcionan con la API de Google Ads.
En el siguiente ejemplo, se crea un recurso de presupuesto de campaña:
campaign_budget_operation =
client.operation.create_resource.campaign_budget do |budget|
budget.name = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}"
budget.delivery_method = :STANDARD
budget.amount_micros = 500_000
end
return_budget = client.service.campaign_budget.mutate_campaign_budgets(
customer_id: customer_id,
operations: [campaign_budget_operation]
)
Ten en cuenta que el objeto que se genera para el bloque (budget) es una nueva instancia de CampaignBudget que puedes mutar, y se devuelve la operación de creación adecuada para CampaignBudgetService.
Del mismo modo, la biblioteca proporciona métodos convenientes para actualizar recursos:
campaign_service = client.service.campaign
# If you only have a resource name:
update_operation =
client.operation.update_resource.campaign(campaign_resource_name) do |camp|
camp.status = :PAUSED
end
campaign_service.mutate_campaigns(
customer_id: customer_id,
operations: [update_operation]
)
# If you have a full resource proto:
update_operation = client.operation.update_resource.campaign(campaign) do |camp|
camp.name = "A different Cruise #{(Time.new.to_f * 1000).to_i}"
end
campaign_service.mutate_campaigns(
customer_id: customer_id,
operations: [update_operation]
)
Estas llamadas devuelven una operación de actualización bien formada con una máscara de campo completada previamente para actualizar el recurso en la API de Google Ads.
En el siguiente ejemplo, se quita un recurso con una ruta de acceso al recurso:
campaign_service = client.service.campaign
remove_operation =
client.operation.remove_resource.campaign(campaign_resource_name)
campaign_service.mutate_campaigns(
customer_id: customer_id,
operations: [remove_operation]
)
Si prefieres trabajar con la operación por tu cuenta, puedes obtener una operación sin procesar y, luego, completar los campos de forma manual:
operation = client.operation.campaign
Recursos
La biblioteca proporciona client.resource.<resource_type> para inicializar objetos de recursos:
campaign.network_settings = client.resource.network_settings do |ns|
ns.target_google_search = true
ns.target_search_network = true
ns.target_content_network = false
ns.target_partner_search_network = false
end
Se genera una nueva instancia del tipo de recurso solicitado para el bloque pasado para configurar campos.
Servicios
La biblioteca proporciona client.service.<service_name> para recuperar objetos cliente de servicio:
campaign_service = client.service.campaign
Enums
Usa la sintaxis de símbolos para establecer de forma estática los campos de enumeración (por ejemplo, campaign.status = :PAUSED). Para enumerar todos los valores válidos de una enumeración, usa el factor client.enum:
client.enum.ad_type.each { |ad_type| p ad_type }
# Output:
# :UNSPECIFIED
# :UNKNOWN
# :TEXT_AD
# :EXPANDED_TEXT_AD
# :EXPANDED_DYNAMIC_SEARCH_AD
# :HOTEL_AD
# :SHOPPING_SMART_AD
# :SHOPPING_PRODUCT_AD
# :VIDEO_AD
# :IMAGE_AD
# :RESPONSIVE_SEARCH_AD
# :LEGACY_RESPONSIVE_DISPLAY_AD
# :APP_AD
# :LEGACY_APP_INSTALL_AD
# :RESPONSIVE_DISPLAY_AD
# :LOCAL_AD
# :HTML5_UPLOAD_AD
# :DYNAMIC_HTML5_AD
# :APP_ENGAGEMENT_AD
# :SHOPPING_COMPARISON_LISTING_AD
# :VIDEO_BUMPER_AD
# :VIDEO_NON_SKIPPABLE_IN_STREAM_AD
# :VIDEO_TRUEVIEW_IN_STREAM_AD
# :VIDEO_RESPONSIVE_AD
# :SMART_CAMPAIGN_AD
# :CALL_AD
# :APP_PRE_REGISTRATION_AD
# :IN_FEED_VIDEO_AD
# :DEMAND_GEN_MULTI_ASSET_AD
# :DEMAND_GEN_CAROUSEL_AD
# :TRAVEL_AD
# :DEMAND_GEN_VIDEO_RESPONSIVE_AD
# :DEMAND_GEN_PRODUCT_AD
# :YOUTUBE_AUDIO_AD
Cómo establecer explícitamente las versiones de la API de Google Ads
También puedes establecer de forma explícita una versión principal de la API en cualquier llamada de fábrica (por ejemplo, v25; las versiones secundarias de la API, como la v25.1, usan el método de versión principal v25):
client.resource.v25.[entity]
client.operation.v25.[operation]
client.service.v25.[service]
client.enum.v25.[enum]