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 customer_id-Ziel initialisiert haben:

require 'google/ads/google_ads'

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

Vorgänge

Die Bibliothek bietet die praktischen Methoden client.operation.create_resource.<resource_type>, client.operation.update_resource.<resource_type> und client.operation.remove_resource.<resource_type>, um Vorgänge für die Arbeit mit der Google Ads API zu erstellen.

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 Objekt, das an den Block (budget) übergeben wird, ist eine neue Instanz von CampaignBudget, die Sie ändern können. Der entsprechende Erstellungsvorgang für CampaignBudgetService wird 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 mithilfe eines Ressourcenpfads 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 den Vorgang lieber selbst ausführen möchten, können Sie einen Rohvorgang abrufen und die Felder dann manuell ausfüllen:

operation = client.operation.campaign

Ressourcen

Die Bibliothek stellt client.resource.<resource_type> zum Initialisieren von Ressourcenobjekten bereit:

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 zum Festlegen von Feldern übergeben.

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). Verwenden Sie die Factory client.enum, um alle gültigen Werte für ein Enum aufzulisten:

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 Hauptversion der API für jeden Factory-Aufruf festlegen (z. B. v26; Nebenversionen der API wie v25.1 verwenden die Methode der Hauptversion v25):

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