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.

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 de 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, et 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 = "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 valide, 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 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 d'initialiser des 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ée est renvoyée au bloc transmis pour définir les champs.

Services

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

campaign_service = client.service.campaign

Enums

Nous vous recommandons d'utiliser la syntaxe des symboles pour définir statiquement les champs d'énumération (par exemple, campaign.status = :PAUSED). Toutefois, si vous souhaitez énumérer toutes les valeurs valides d'une énumération, nous fournissons é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.v19.[entity]
client.operation.v19.[operation]
client.service.v19.[service]
client.enum.v19.[enum]