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, enums, operaciones y tipos de servicio que proporciona la API de Google Ads. En los ejemplos de esta página, se supone que inicializaste una instancia de GoogleAdsClient y un customer_id objetivo:
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 para trabajar 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 muestra en el bloque (budget) es una instancia nueva de
CampaignBudget que puedes mutar y que se muestra la operación de creación adecuada para CampaignBudgetService.
Del mismo modo, la biblioteca proporciona métodos de conveniencia 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 muestran una operación de actualización bien formada con una máscara de campo rellenada 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, 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 muestra una instancia nueva del tipo de recurso solicitado al bloque pasado para configurar los campos.
Servicios
La biblioteca proporciona client.service.<service_name> para recuperar objetos de cliente de servicio:
campaign_service = client.service.campaign
Enums
Usa la sintaxis de símbolos para configurar de forma estática los campos de enum (por ejemplo, campaign.status = :PAUSED). Para enumerar todos los valores válidos de un enum, usa la fábrica 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 configurar explícitamente las versiones de la API de Google Ads
También puedes configurar explícitamente una versión principal de la API en cualquier llamada de fábrica (por ejemplo, v26; las versiones secundarias de la API, como v25.1, usan el método de versión principal v25):
client.resource.v26.[entity]
client.operation.v26.[operation]
client.service.v26.[service]
client.enum.v26.[enum]