কারখানা

factories ক্লায়েন্ট লাইব্রেরির সাথে অপারেশন এবং সংস্থান তৈরি করার জন্য একটি উচ্চ-স্তরের ইন্টারফেস সরবরাহ করে।

Google Ads API দ্বারা প্রদত্ত সমস্ত সংস্থান, enums, অপারেশন এবং পরিষেবার ধরনগুলির জন্য কারখানার পদ্ধতিগুলি স্বয়ংক্রিয়ভাবে তৈরি হয়।

অপারেশন

লাইব্রেরি 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 )। যাইহোক, যদি আপনি একটি enum-এর জন্য সমস্ত বৈধ মান গণনা করতে চান, আমরা তার জন্য পদ্ধতিগুলিও প্রদান করি:

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 বিজ্ঞাপন API সংস্করণ সেট করা

আপনি স্পষ্টভাবে একটি সংস্করণ সেট করতে পারেন:

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