Pabrik

factories menyediakan antarmuka tingkat tinggi untuk membuat operasi dan resource dengan library klien.

Metode factory otomatis dibuat untuk semua resource, enum, operasi, dan jenis layanan yang disediakan oleh Google Ads API. Contoh di halaman ini mengasumsikan Anda telah menginisialisasi instance GoogleAdsClient dan customer_id target:

require 'google/ads/google_ads'

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

Operasi

Library ini menyediakan metode praktis client.operation.create_resource.<resource_type>, client.operation.update_resource.<resource_type>, dan client.operation.remove_resource.<resource_type> untuk membuat operasi untuk bekerja dengan Google Ads API.

Contoh berikut membuat resource anggaran kampanye:

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]
)

Perhatikan bahwa objek yang dihasilkan ke blok (budget) adalah instance baru CampaignBudget yang dapat Anda ubah, dan operasi pembuatan yang sesuai untuk CampaignBudgetService akan ditampilkan.

Demikian pula, library ini menyediakan metode praktis untuk memperbarui resource:

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]
)

Panggilan ini menampilkan operasi update yang terbentuk dengan baik dengan mask kolom yang sudah terisi otomatis untuk memperbarui resource di Google Ads API.

Contoh berikut menghapus resource menggunakan jalur resource:

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]
)

Jika Anda lebih memilih untuk mengerjakan operasi sendiri, Anda bisa mendapatkan operasi mentah lalu mengisi kolom secara manual:

operation = client.operation.campaign

Resource

Library ini menyediakan client.resource.<resource_type> untuk melakukan inisialisasi objek resource:

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

Instance baru dari jenis resource yang diminta diberikan ke blok yang diteruskan untuk menetapkan kolom.

Layanan

Library menyediakan client.service.<service_name> untuk mengambil objek klien layanan:

campaign_service = client.service.campaign

Enum

Gunakan sintaksis simbol untuk menyetel kolom enum secara statis (misalnya, campaign.status = :PAUSED). Untuk menghitung semua nilai yang valid untuk enum, gunakan 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

Menetapkan versi Google Ads API secara eksplisit

Anda juga dapat secara eksplisit menetapkan versi API utama pada panggilan factory apa pun (misalnya, v25; rilis API minor seperti v25.1 menggunakan metode versi utama v25):

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