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]