Fabriken

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

Factories-Methoden werden automatisch für alle Ressourcen, Enums, Vorgänge und Diensttypen generiert, die über die Google Ads API bereitgestellt werden.

Operations

Die Bibliothek enthält praktische Methoden client.operation.create_resource.<resource_type>, client.operation.update_resource.<resource_type> und client.operation.remove_resource.<resource_type>, um ganz einfach Vorgänge für die Google Ads API zu erstellen.

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

Das an den Block cb übergebene Objekt ist eine neue Instanz von CampaignBudget, die Sie dann bearbeiten können. Es wird der entsprechende Erstellungsvorgang für CampaignBudgetService zurückgegeben.

Außerdem bieten wir einfache Methoden zur Aktualisierung von:

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

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

Hier ist ein Beispiel für das Entfernen einer Ressource über einen Ressourcenpfad:

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> eine bequeme Möglichkeit, Ressourcenobjekte zu initialisieren:

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

Eine neue Instanz des angeforderten Ressourcentyps wird an den übergebenen Block zum Festlegen von Feldern zurückgegeben.

Dienste

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

campaign_service = client.service.campaign

Enums

Wir empfehlen die Verwendung der Symbolsyntax zum statischen Festlegen von Enum-Feldern (z.B. campaign.status = :PAUSED). Wenn Sie jedoch alle gültigen Werte für eine Aufzählung auflisten möchten, bieten wir dafür auch Methoden:

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