Fabbriche

factories fornisce un'interfaccia di alto livello per creare operazioni e risorse con la libreria client.

I metodi di fabbrica vengono generati automaticamente per tutte le risorse, gli enum, le operazioni e i tipi di servizio forniti dall'API Google Ads. Gli esempi in questa pagina presuppongono che tu abbia inizializzato un'istanza GoogleAdsClient e un customer_id di destinazione:

require 'google/ads/google_ads'

client = Google::Ads::GoogleAds::GoogleAdsClient.new
customer_id = '1234567890'

Operazioni

La libreria fornisce metodi pratici per creare operazioni per l'utilizzo dell'API Google Ads, tra cui client.operation.create_resource.<resource_type>, client.operation.update_resource.<resource_type> e client.operation.remove_resource.<resource_type>.

L'esempio seguente crea una risorsa budget della campagna:

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]
)

Tieni presente che l'oggetto restituito al blocco (budget) è una nuova istanza di CampaignBudget che puoi modificare e viene restituita l'operazione di creazione appropriata per CampaignBudgetService.

Allo stesso modo, la libreria fornisce metodi pratici per aggiornare le risorse:

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]
)

Queste chiamate restituiscono un'operazione di aggiornamento ben formata con una maschera di campo precompilata per aggiornare la risorsa nell'API Google Ads.

L'esempio seguente rimuove una risorsa utilizzando un percorso della risorsa:

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]
)

Se preferisci lavorare direttamente con l'operazione, puoi ottenere un'operazione non elaborata e poi compilare manualmente i campi:

operation = client.operation.campaign

Risorse

La libreria fornisce client.resource.<resource_type> per inizializzare gli oggetti risorsa:

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

Viene restituita una nuova istanza del tipo di risorsa richiesto al blocco passato per impostare i campi.

Servizi

La libreria fornisce client.service.<service_name> per recuperare gli oggetti client di servizio:

campaign_service = client.service.campaign

Enum

Utilizza la sintassi dei simboli per impostare staticamente i campi enum (ad esempio, campaign.status = :PAUSED). Per enumerare tutti i valori validi per un enum, utilizza la factory 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

Impostare esplicitamente le versioni dell'API Google Ads

Puoi anche impostare esplicitamente una versione principale dell'API in qualsiasi chiamata di fabbrica (ad esempio, v25; le release secondarie dell'API come la v25.1 utilizzano il metodo della versione principale v25):

client.resource.v25.[entity]
client.operation.v25.[operation]
client.service.v25.[service]
client.enum.v25.[enum]