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. In den Beispielen auf dieser Seite wird davon ausgegangen, dass Sie eine GoogleAdsClient-Instanz und ein Ziel customer_id initialisiert haben:

require 'google/ads/google_ads'

client = Google::Ads::GoogleAds::GoogleAdsClient.new
customer_id = '1234567890'

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> zum Erstellen von Vorgängen für die Google Ads API.

Im folgenden Beispiel wird eine Kampagnenbudget-Ressource erstellt:

campaign_budget_operation =
  client.operation.create_resource.campaign_budget do |budget|
    budget.name = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}"
    budget.delivery_method = :STANDARD
    budget.amount_micros = 500_000
  end

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

Das an den Block übergebene Objekt (budget) ist eine neue Instanz von CampaignBudget, die Sie ändern können. Außerdem wird der entsprechende Erstellungsvorgang für CampaignBudgetService zurückgegeben.

Die Bibliothek bietet auch praktische Methoden zum Aktualisieren von Ressourcen:

campaign_service = client.service.campaign

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

# If you have a full resource proto:
update_operation = client.operation.update_resource.campaign(campaign) do |camp|
  camp.name = "A different Cruise #{(Time.new.to_f * 1000).to_i}"
end

campaign_service.mutate_campaigns(
  customer_id: customer_id,
  operations: [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.

Im folgenden Beispiel wird eine Ressource über einen Ressourcenpfad entfernt:

campaign_service = client.service.campaign
remove_operation =
  client.operation.remove_resource.campaign(campaign_resource_name)
campaign_service.mutate_campaigns(
  customer_id: customer_id,
  operations: [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> 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

Eine neue Instanz des angeforderten Ressourcentyps wird an den übergebenen Block übergeben, um Felder festzulegen.

Dienste

Die Bibliothek stellt client.service.<service_name> zum Abrufen von Dienstclientobjekten bereit:

campaign_service = client.service.campaign

Enums

Verwenden Sie die Symbol-Syntax, um Enum-Felder statisch festzulegen (z. B. campaign.status = :PAUSED). Wenn Sie alle gültigen Werte für ein Enum auflisten möchten, verwenden Sie die Factory client.enum:

client.enum.ad_type.each { |ad_type| p ad_type }
# Output:
# :UNSPECIFIED
# :UNKNOWN
# :TEXT_AD
# :EXPANDED_TEXT_AD
# :EXPANDED_DYNAMIC_SEARCH_AD
# :HOTEL_AD
# :SHOPPING_SMART_AD
# :SHOPPING_PRODUCT_AD
# :VIDEO_AD
# :IMAGE_AD
# :RESPONSIVE_SEARCH_AD
# :LEGACY_RESPONSIVE_DISPLAY_AD
# :APP_AD
# :LEGACY_APP_INSTALL_AD
# :RESPONSIVE_DISPLAY_AD
# :LOCAL_AD
# :HTML5_UPLOAD_AD
# :DYNAMIC_HTML5_AD
# :APP_ENGAGEMENT_AD
# :SHOPPING_COMPARISON_LISTING_AD
# :VIDEO_BUMPER_AD
# :VIDEO_NON_SKIPPABLE_IN_STREAM_AD
# :VIDEO_TRUEVIEW_IN_STREAM_AD
# :VIDEO_RESPONSIVE_AD
# :SMART_CAMPAIGN_AD
# :CALL_AD
# :APP_PRE_REGISTRATION_AD
# :IN_FEED_VIDEO_AD
# :DEMAND_GEN_MULTI_ASSET_AD
# :DEMAND_GEN_CAROUSEL_AD
# :TRAVEL_AD
# :DEMAND_GEN_VIDEO_RESPONSIVE_AD
# :DEMAND_GEN_PRODUCT_AD
# :YOUTUBE_AUDIO_AD

Google Ads API-Versionen explizit festlegen

Sie können auch explizit eine Haupt-API-Version für einen beliebigen Factory-Aufruf festlegen, z. B. v25. Bei Neben-API-Releases wie v25.1 wird die Hauptversionsmethode v25 verwendet:

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