Fábricas

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]