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 permitan trabajar con la API de Google Ads.
En el siguiente ejemplo, se crea un recurso de presupuesto de la 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 en el bloque (budget) es una instancia nueva 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 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 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 de 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 instancia nueva del tipo de recurso solicitado para el bloque pasado para configurar 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 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 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
Establece de forma explícita 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, v26; las versiones secundarias de la API, como la 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]