Fabriken

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

Factory-Methoden werden automatisch für alle Ressourcen, Enums, Vorgänge und Diensttypen generiert, die von der Google Ads API bereitgestellt werden. In den Beispielen auf dieser Seite wird davon ausgegangen, dass Sie eine GoogleAdsClient-Instanz und eine 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 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.

Ebenso bietet die Bibliothek 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 vorab ausgefü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 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 Ressourcen objekten:

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 bietet client.service.<service_name> zum Abrufen von Dienstclient objekten:

campaign_service = client.service.campaign

Enums

Verwenden Sie die Symbolsyntax, um Enum-Felder statisch festzulegen (z. B. campaign.status = :PAUSED). Verwenden Sie die client.enum-Factory, 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 Haupt-API-Version für jeden Factory-Aufruf festlegen (z. B. v26). Bei Nebenversionen der API wie v25.1 wird die Hauptversionsmethode v25 verwendet:

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