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]