সার্ভিস এবং টাইপ গেটার

পাইথনে API ব্যবহার করার জন্য প্রয়োজনীয় সমস্ত প্রোটো ক্লাসের রেফারেন্স আনয়ন করা ভার্বোস হতে পারে এবং প্রোটো বা ডকুমেন্টেশনের রেফারেন্স করার জন্য আপনাকে API সম্পর্কে একটি অন্তর্নিহিত বোঝা বা ঘন ঘন প্রসঙ্গ-সুইচ করতে হবে।

ক্লায়েন্টের get_service এবং get_type পদ্ধতি

এই দুটি গেটার পদ্ধতি আপনাকে API-তে যেকোনো পরিষেবা বা টাইপ অবজেক্ট পুনরুদ্ধার করতে দেয়। get_service পদ্ধতিটি পরিষেবা ক্লায়েন্ট পুনরুদ্ধার করতে ব্যবহৃত হয়। get_type অন্য কোন বস্তুর জন্য ব্যবহার করা হয়। পরিষেবার ক্লায়েন্ট ক্লাসগুলি সংস্করণ পাথ google/ads/googleads/v*/services/services/ অধীনে কোডে সংজ্ঞায়িত করা হয়েছে এবং সমস্ত প্রকারকে বিভিন্ন অবজেক্ট বিভাগের অধীনে সংজ্ঞায়িত করা হয়েছে, google/ads/googleads/v*/common|enums|errors|resources|services/types/ । সংস্করণ ডিরেক্টরির নীচে সমস্ত কোড তৈরি করা হয়েছে, তাই কোডবেসের গঠন পরিবর্তনের ক্ষেত্রে বস্তুগুলি সরাসরি আমদানি করার পরিবর্তে এই পদ্ধতিগুলি ব্যবহার করা একটি সর্বোত্তম অনুশীলন।

GoogleAdsService ক্লায়েন্টের একটি উদাহরণ পুনরুদ্ধার করতে get_service পদ্ধতিটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ এখানে দেওয়া হল।

from google.ads.googleads.client import GoogleAdsClient

# "load_from_storage" loads your API credentials from disk so they
# can be used for service initialization. Providing the optional `version`
# parameter means that the v16 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v16")
googleads_service = client.get_service("GoogleAdsService")

একটি Campaign ইনস্ট্যান্স পুনরুদ্ধার করতে get_type পদ্ধতিটি কীভাবে ব্যবহার করবেন তার একটি উদাহরণ এখানে দেওয়া হল।

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage(version="v16")
campaign = client.get_type("Campaign")

Enums

যদিও আপনি Enums পুনরুদ্ধার করতে get_type পদ্ধতি ব্যবহার করতে পারেন, প্রতিটি GoogleAdsClient উদাহরণে একটি enums বৈশিষ্ট্যও রয়েছে যা get_type পদ্ধতির মতো একই পদ্ধতি ব্যবহার করে গতিশীলভাবে Enums লোড করে। এই ইন্টারফেসটি get_type ব্যবহার করার চেয়ে সহজ এবং সহজে পড়ার উদ্দেশ্যে করা হয়েছে:

client = GoogleAdsClient.load_from_storage(version=v16)

campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED

প্রোটো অবজেক্ট ক্ষেত্রগুলি যেগুলি enums তা পাইথনে নেটিভ এনাম টাইপ দ্বারা উপস্থাপিত হয়। তার মানে আপনি সহজেই সদস্যের মান পড়তে পারবেন। একটি পাইথন রিপ্লেতে পূর্ববর্তী উদাহরণ থেকে campaign উদাহরণের সাথে কাজ করা:

>>> print(campaign.status)
CampaignStatus.PAUSED
>>> type(campaign.status)
<enum 'CampaignStatus'>
>>> print(campaign.status.value)
3

কখনও কখনও উপরে দেখানো হিসাবে enum মানের সাথে সামঞ্জস্যপূর্ণ ক্ষেত্রের নাম জানা দরকারী। আপনি name বৈশিষ্ট্য ব্যবহার করে এই তথ্য অ্যাক্সেস করতে পারেন:

>>> print(campaign.status.name)
'PAUSED'
>>> type(campaign.status.name)
<class 'str'>

আপনার use_proto_plus কনফিগারেশন true বা false সেট করা আছে কিনা তার উপর নির্ভর করে enums-এর সাথে ইন্টারঅ্যাক্ট করা ভিন্ন। দুটি ইন্টারফেসের বিস্তারিত জানার জন্য, protobuf বার্তা ডকুমেন্টেশন দেখুন।

সংস্করণ করা

API এর একাধিক সংস্করণ একই সময়ে বজায় রাখা হয়। যদিও v16 সর্বশেষ সংস্করণ হতে পারে, পূর্ববর্তী সংস্করণগুলি সূর্যাস্ত না হওয়া পর্যন্ত অ্যাক্সেসযোগ্য। লাইব্রেরিতে পৃথক প্রোটো বার্তা ক্লাস অন্তর্ভুক্ত থাকবে যা প্রতিটি সক্রিয় API সংস্করণের সাথে মিলে যায়। একটি নির্দিষ্ট সংস্করণের জন্য একটি বার্তা ক্লাস অ্যাক্সেস করার জন্য একটি ক্লায়েন্ট শুরু করার সময় version কীওয়ার্ড প্যারামিটার সরবরাহ করুন যাতে এটি সর্বদা সেই প্রদত্ত সংস্করণ থেকে উদাহরণ প্রদান করে:

client = GoogleAdsService.load_from_storage(version="/google-ads/api/reference/rpc/v16/")
# The Campaign instance will be from the v16 version of the API.
campaign = client.get_type("Campaign")

get_service এবং get_type পদ্ধতিতে কল করার সময় সংস্করণটি নির্দিষ্ট করাও সম্ভব। এটি করা ক্লায়েন্ট শুরু করার সময় প্রদত্ত সংস্করণটিকে ওভাররাইড করবে:

client = GoogleAdsService.load_from_storage()
# This will load the v16 version of the GoogleAdsService.
googleads_service = client.get_service(
    "GoogleAdsService", version="v16")

client = GoogleAdsService.load_from_storage(version="v16")
# This will load the v14 version of a Campaign.
campaign = client.get_type("Campaign", version="v14")

কোন version কীওয়ার্ড প্যারামিটার প্রদান করা না হলে লাইব্রেরি সর্বশেষ সংস্করণ ব্যবহার করার জন্য ডিফল্ট হবে। সর্বশেষ এবং অন্যান্য উপলব্ধ সংস্করণগুলির একটি আপডেট করা তালিকা API রেফারেন্স ডকুমেন্টেশনের বাম দিকের নেভিগেশন বিভাগে পাওয়া যাবে।