Usines

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

Les méthodes d'usine sont générées automatiquement pour toutes les ressources, énumérations, les opérations et les 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 à utiliser 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 = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}"

  cb.delivery_method = :STANDARD
  cb.amount_micros = 500000
end

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

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

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 = "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 bien structurée, avec un champ pour mettre à jour la ressource dans l'API Google Ads.

Voici un exemple de suppression d'une ressource à l'aide d'un chemin de ressource:

remove_operation = client.operation.remove_resource.campaign(campaign_resource_name)
campaign_service.mutate_campaigns(customer_id, [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> comme moyen pratique de pour initialiser les objets "resource" :

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ée est renvoyée au bloc transmis pour définir les champs.

Services

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

campaign_service = client.service.campaign

Enums

Nous vous recommandons d'utiliser la syntaxe des symboles pour définir des champs d'énumération de manière statique. (par exemple, campaign.status = :PAUSED). Toutefois, si vous souhaitez énumérer toutes les valides pour une énumération, nous proposons également des méthodes pour cela:

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.v17.[entity]
client.operation.v17.[operation]
client.service.v17.[service]
client.enum.v17.[enum]