फ़ैक्ट्री

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

Google Ads API से मिलने वाले सभी संसाधनों, ईएनएम, ऑपरेशन, और सेवा टाइप के लिए फ़ैक्ट्री तरीके अपने-आप जनरेट होते हैं.

ऑपरेशंस

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

यहां संसाधन बनाने का एक उदाहरण दिया गया है:

campaign_budget_operation = client.operation.create_resource.campaign_budget do |cb|
  cb.name = client.wrapper.string(
    "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}",
  )

  cb.delivery_method = :STANDARD
  cb.amount_micros = client.wrapper.int64(500000)
end

return_budget = client.service.campaign_budget.mutate_campaign_budgets(
  customer_id,
  [campaign_budget_operation]
)

ध्यान दें कि ब्लॉक cb से मिलने वाला ऑब्जेक्ट, CampaignBudget का एक नया इंस्टेंस है. इसमें बदलाव किया जा सकता है और CampaignBudgetService के लिए सही 'बनाएं' कार्रवाई मिलती है.

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

# 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, [update_operation])

# if you have a full resource proto
update_operation = client.operation.update_resource.campaign(campaign) do
  campaign.name = client.wrapper.string(
    "A different interplanetary Cruise #{(Time.new.to_f * 1000).to_i}",
  )
end

campaign_service.mutate_campaigns(customer_id, [update_operation])

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

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

remove_operation = client.operation.remove_resource.campaign(campaign_resource_name)
campaign_service.mutate_campaigns(customer_id, [remove_operation])

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

operation = client.operation.campaign

रिसॉर्स

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

campaign.network_settings = client.resource.network_settings do |ns|
  ns.target_google_search = client.wrapper.bool(true)
  ns.target_search_network = client.wrapper.bool(true)
  ns.target_content_network = client.wrapper.bool(false)
  ns.target_partner_search_network = client.wrapper.bool(false)
end

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

सेवाएं

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

campaign_service = client.service.campaign

Enums

हमारा सुझाव है कि enum फ़ील्ड को स्टैटिक रूप से सेट करने के लिए, सिंबल सिंटैक्स का इस्तेमाल करें (जैसे, campaign.status = :PAUSED). हालांकि, अगर आपको किसी एनम में सभी मान्य वैल्यू की गिनती करनी है, तो हम इसके लिए भी तरीके उपलब्ध कराते हैं:

client.enum.ad_type.each { |x| p x }
    :SHOPPING_PRODUCT_AD
    :GMAIL_AD
    :UNKNOWN
    :UNSPECIFIED
    :CALL_ONLY_AD
    :VIDEO_AD
    :IMAGE_AD
    :EXPANDED_DYNAMIC_SEARCH_AD
    :RESPONSIVE_DISPLAY_AD
    :TEXT_AD
    :LEGACY_RESPONSIVE_DISPLAY_AD
    :LEGACY_APP_INSTALL_AD
    :APP_AD
    :SHOPPING_SMART_AD
    :EXPANDED_TEXT_AD
    :HOTEL_AD
    :RESPONSIVE_SEARCH_AD

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

आप साफ़ तौर पर वर्शन भी सेट कर सकते हैं:

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