Usines

factories fournit une interface de haut niveau pour créer des opérations et des ressources avec la bibliothèque cliente.

Les méthodes de fabrique sont générées automatiquement pour toutes les ressources, énumérations, opérations et types de services fournis par l'API Google Ads. Les exemples de cette page supposent que vous avez initialisé une instance GoogleAdsClient et une customer_id cible :

require 'google/ads/google_ads'

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

Opérations

La bibliothèque fournit des méthodes pratiques client.operation.create_resource.<resource_type>, client.operation.update_resource.<resource_type> et client.operation.remove_resource.<resource_type> pour créer des opérations permettant d'utiliser l'API Google Ads.

L'exemple suivant crée une ressource de budget de campagne :

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

Notez que l'objet transmis au bloc (budget) est une nouvelle instance de CampaignBudget que vous pouvez modifier, et que l'opération de création appropriée pour CampaignBudgetService est renvoyée.

De même, la bibliothèque fournit des méthodes pratiques pour mettre à jour les ressources :

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

Ces appels renvoient une opération de mise à jour bien formée avec un masque de champ prérempli pour mettre à jour la ressource dans l'API Google Ads.

L'exemple suivant supprime une ressource à l'aide d'un chemin d'accès à la ressource :

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 vous préférez travailler vous-même avec l'opération, vous pouvez obtenir une opération brute, puis renseigner manuellement les champs :

operation = client.operation.campaign

Ressources

La bibliothèque fournit client.resource.<resource_type> pour initialiser les objets de ressources :

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

Une nouvelle instance du type de ressource demandé est générée pour le bloc transmis afin de définir les champs.

Services

La bibliothèque fournit client.service.<service_name> pour récupérer les objets clients de service :

campaign_service = client.service.campaign

Enums

Utilisez la syntaxe des symboles pour définir statiquement les champs d'énumération (par exemple, campaign.status = :PAUSED). Pour énumérer toutes les valeurs valides d'une énumération, utilisez la fabrique 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

Définir explicitement les versions de l'API Google Ads

Vous pouvez également définir explicitement une version majeure de l'API sur n'importe quel appel de fabrique (par exemple, v25). Les versions mineures de l'API, telles que la version 25.1, utilisent la méthode de version majeure v25 :

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