फ़ैक्ट्री

factories क्लाइंट लाइब्रेरी की मदद से, ऑपरेशन और संसाधन बनाने के लिए एक हाई-लेवल इंटरफ़ेस उपलब्ध कराता है.

Google Ads API की ओर से उपलब्ध कराए गए सभी संसाधनों, enum, कार्रवाइयों, और सेवा टाइप के लिए फ़ैक्ट्री के तरीके अपने-आप जनरेट होते हैं. इस पेज पर दिए गए उदाहरणों में, यह माना गया है कि आपने GoogleAdsClient इंस्टेंस और टारगेट customer_id को चालू कर दिया है:

require 'google/ads/google_ads'

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

कार्रवाइयां

यह लाइब्रेरी, Google Ads API के साथ काम करने के लिए client.operation.create_resource.<resource_type>, client.operation.update_resource.<resource_type>, और client.operation.remove_resource.<resource_type> जैसे सुविधाजनक तरीके उपलब्ध कराती है.

यहां कैंपेन का बजट रिसॉर्स बनाने का उदाहरण दिया गया है:

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

ध्यान दें कि ब्लॉक (budget) को दिया गया ऑब्जेक्ट, CampaignBudget का एक नया इंस्टेंस है. इसमें बदलाव किया जा सकता है. साथ ही, CampaignBudgetService के लिए सही क्रिएट ऑपरेशन वापस आ जाता है.

इसी तरह, लाइब्रेरी संसाधनों को अपडेट करने के लिए सुविधाजनक तरीके उपलब्ध कराती है:

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

इन कॉल से, अपडेट करने की अच्छी तरह से तैयार की गई कार्रवाई मिलती है. इसमें पहले से भरा हुआ फ़ील्ड मास्क होता है. इसका इस्तेमाल, Google Ads API में मौजूद संसाधन को अपडेट करने के लिए किया जाता है.

यहां दिए गए उदाहरण में, रिसॉर्स पाथ का इस्तेमाल करके किसी रिसॉर्स को हटाया गया है:

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

अगर आपको खुद से कार्रवाई करनी है, तो आपको रॉ ऑपरेशन मिल सकता है. इसके बाद, फ़ील्ड में मैन्युअल तरीके से जानकारी भरी जा सकती है:

operation = client.operation.campaign

संसाधन

लाइब्रेरी, संसाधन ऑब्जेक्ट को शुरू करने के लिए client.resource.<resource_type> उपलब्ध कराती है:

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

अनुरोध किए गए संसाधन टाइप का नया इंस्टेंस, पास किए गए ब्लॉक को फ़ील्ड सेट करने के लिए दिया जाता है.

सेवाएं

यह लाइब्रेरी, सेवा क्लाइंट ऑब्जेक्ट को वापस पाने के लिए client.service.<service_name> उपलब्ध कराती है:

campaign_service = client.service.campaign

Enums

enum फ़ील्ड को स्टैटिक तौर पर सेट करने के लिए, सिंबल सिंटैक्स का इस्तेमाल करें. उदाहरण के लिए, campaign.status = :PAUSED. किसी enum के लिए सभी मान्य वैल्यू की गिनती करने के लिए, 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

Google Ads API के वर्शन साफ़ तौर पर सेट करना

किसी भी फ़ैक्ट्री कॉल पर एपीआई का मुख्य वर्शन भी सेट किया जा सकता है. उदाहरण के लिए, v25; v25.1 जैसे एपीआई के माइनर रिलीज़, मुख्य वर्शन के तरीके v25 का इस्तेमाल करते हैं:

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