Fabriken

factories bietet eine allgemeine Schnittstelle zum Erstellen von Vorgängen und Ressourcen mit der Clientbibliothek.

Für alle Ressourcen, Enums, Vorgänge und Diensttypen, die von der Google Ads API bereitgestellt werden, werden automatisch Factory-Methoden generiert.

Vorgänge

Die Bibliothek bietet die Convenience-Methoden client.operation.create_resource.<resource_type>, client.operation.update_resource.<resource_type> und client.operation.remove_resource.<resource_type>, mit denen sich ganz einfach Vorgänge für die Google Ads API erstellen lassen.

Hier ist ein Beispiel für das Erstellen einer 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]
)

Das Objekt, das für den Block cb verwendet wird, ist eine neue Instanz von CampaignBudget, die Sie dann ändern können. Der entsprechende Erstellungsvorgang für CampaignBudgetService wird zurückgegeben.

Ähnlich wie beim Erstellen von Ressourcen bieten wir auch für das Aktualisieren von Ressourcen Convenience-Methoden an:

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

Diese Aufrufe geben einen wohlgeformten Aktualisierungsvorgang mit einer vorausgefüllten Feldmaske zurück, um die Ressource in der Google Ads API zu aktualisieren.

Hier sehen Sie ein Beispiel für das Entfernen einer Ressource mithilfe eines Ressourcenpfads:

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

Wenn Sie lieber selbst mit dem Vorgang arbeiten möchten, können Sie einen Rohvorgang abrufen und die Felder dann manuell ausfüllen.

operation = client.operation.campaign

Ressourcen

Die Bibliothek bietet client.resource.<resource_type> als praktische Möglichkeit zum Initialisieren von Ressourcenobjekten:

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

Dem übergebenen Block wird eine neue Instanz des angeforderten Ressourcentyps zum Festlegen von Feldern übergeben.

Dienste

Die Bibliothek bietet client.service.<service_name> als praktische Möglichkeit, Dienstobjekte abzurufen:

campaign_service = client.service.campaign

Enums

Wir empfehlen, die Symbol-Syntax zum statischen Festlegen von Enum-Feldern zu verwenden (z.B. campaign.status = :PAUSED). Wenn Sie jedoch alle gültigen Werte für eine Enumeration auflisten möchten, stellen wir auch Methoden dafür bereit:

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

Google Ads API-Versionen explizit festlegen

Sie können auch explizit eine Version festlegen:

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