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 l'ensemble des ressources, énumérations, opérations et types de services fournis par l'API Google Ads.

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 facilement des opérations compatibles avec l'API Google Ads.

Voici un exemple de création d'une ressource:

campaign_budget_operation = client.operation.create_resource.campaign_budget do |cb|
  cb.name = client.wrapper.string(
    "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}",
  )

  cb.delivery_method = :STANDARD
  cb.amount_micros = client.wrapper.int64(500000)
end

return_budget = client.service.campaign_budget.mutate_campaign_budgets(
  customer_id,
  [campaign_budget_operation]
)

Notez que l'objet cédé au bloc cb est une nouvelle instance de CampaignBudget que vous pouvez ensuite modifier, et que l'opération de création appropriée pour CampaignBudgetService est renvoyée.

De même, nous proposons des méthodes pratiques pour mettre à jour:

# 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, [update_operation])

# if you have a full resource proto
update_operation = client.operation.update_resource.campaign(campaign) do
  campaign.name = client.wrapper.string(
    "A different interplanetary Cruise #{(Time.new.to_f * 1000).to_i}",
  )
end

campaign_service.mutate_campaigns(customer_id, [update_operation])

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

Voici un exemple de suppression d'une ressource à l'aide d'un chemin d'accès à la ressource:

remove_operation = client.operation.remove_resource.campaign(campaign_resource_name)
campaign_service.mutate_campaigns(customer_id, [remove_operation])

Si vous préférez utiliser l'opération vous-même, vous pouvez obtenir une opération brute, puis remplir manuellement les champs.

operation = client.operation.campaign

Ressources

La bibliothèque fournit client.resource.<resource_type> comme moyen pratique d'initialiser les objets ressource:

campaign.network_settings = client.resource.network_settings do |ns|
  ns.target_google_search = client.wrapper.bool(true)
  ns.target_search_network = client.wrapper.bool(true)
  ns.target_content_network = client.wrapper.bool(false)
  ns.target_partner_search_network = client.wrapper.bool(false)
end

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

Services

La bibliothèque fournit client.service.<service_name> comme moyen pratique d'obtenir les objets de service:

campaign_service = client.service.campaign

Enums

Nous vous recommandons d'utiliser la syntaxe de symbole pour la définition statique des champs d'énumération (par exemple, campaign.status = :PAUSED). Toutefois, si vous souhaitez énumérer toutes les valeurs valides d'une énumération, nous proposons également des méthodes à cet effet:

client.enum.ad_type.each { |x| p x }
    :SHOPPING_PRODUCT_AD
    :GMAIL_AD
    :UNKNOWN
    :UNSPECIFIED
    :CALL_ONLY_AD
    :VIDEO_AD
    :IMAGE_AD
    :EXPANDED_DYNAMIC_SEARCH_AD
    :RESPONSIVE_DISPLAY_AD
    :TEXT_AD
    :LEGACY_RESPONSIVE_DISPLAY_AD
    :LEGACY_APP_INSTALL_AD
    :APP_AD
    :SHOPPING_SMART_AD
    :EXPANDED_TEXT_AD
    :HOTEL_AD
    :RESPONSIVE_SEARCH_AD

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

Vous pouvez également définir explicitement une version:

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