ফ্যাক্টরি

factories ক্লায়েন্ট লাইব্রেরির মাধ্যমে অপারেশন ও রিসোর্স তৈরি করার জন্য হাই-লেভেল ইন্টারফেস প্রদান করে।

Google Ads API-এর মাধ্যমে প্রদান করা সমস্ত রিসোর্স, এনুম, অপারেশন এবং পরিষেবার ধরনের জন্য ফ্যাক্টরি পদ্ধতি অটোমেটিক তৈরি করা হয়। এই পৃষ্ঠার উদাহরণগুলি ধরে নেয় যে আপনি একটি 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

স্ট্যাটিক্যালি এনাম ফিল্ড সেট করার জন্য সিম্বল সিনট্যাক্স ব্যবহার করুন (যেমন, campaign.status = :PAUSED)। এনামের জন্য সব সঠিক ভ্যালু এনামারেট করতে, 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 ভার্সন স্পষ্টভাবে সেট করুন

এছাড়াও, আপনি যেকোনও ফ্যাক্টরি কলে স্পষ্টভাবে একটি মেজর API ভার্সন সেট করতে পারেন (যেমন, v26; v25.1-এর মতো মাইনর API রিলিজ মেজর ভার্সন পদ্ধতি v25 ব্যবহার করে):

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