Python-এ API ব্যবহার করার জন্য প্রয়োজনীয় বিভিন্ন প্রোটো ক্লাসের রেফারেন্স ফেচ করা ভার্বোস হতে পারে এবং এর জন্য আপনাকে API-এর অন্তর্নিহিত বিষয়গুলি বুঝতে হবে অথবা প্রোটো বা ডকুমেন্টেশন রেফারেন্স করার জন্য ঘনঘন কনটেক্সট-সুইচ করতে হবে।
ক্লায়েন্টের get_service এবং get_type পদ্ধতি
এই দুটি গেটার পদ্ধতি আপনাকে API-তে যেকোনও পরিষেবা বা টাইপ অবজেক্ট ফিরিয়ে আনতে
অনুমতি দেয়। পরিষেবা ক্লায়েন্ট ফিরিয়ে আনতে get_service পদ্ধতি ব্যবহার করা হয়। get_type অন্য কোনও
অবজেক্টের জন্য ব্যবহার করা হয়। সার্ভিস ক্লায়েন্ট ক্লাস, ভার্সন পাথ google/ads/googleads/v*/services/-এর অধীনে কোডে এবং সব ধরন, বিভিন্ন অবজেক্ট ক্যাটেগরি google/ads/googleads/v*/common|enums|errors|resources|services/types/-এর অধীনে সংজ্ঞায়িত করা হয়। ভার্সন ডিরেক্টরির নিচে থাকা সব
কোড জেনারেট করা হয়, তাই কোডবেসের স্ট্রাকচার পরিবর্তন হলে, অবজেক্ট সরাসরি ইমপোর্ট করার পরিবর্তে এইসব পদ্ধতি ব্যবহার করা
পেশাদার পদ্ধতি হিসেবে বিবেচিত হয়।
GoogleAdsService ক্লায়েন্টের ইনস্ট্যান্স
(অথবা google-ads v28.4.0-এ অ্যাসিঙ্ক্রোনাস GoogleAdsServiceAsyncClient এবং
পরে is_async=True পাস করার মাধ্যমে)
উদ্ধার করতে কীভাবে 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 v26 version of GoogleAdsService will
# be returned.
client = GoogleAdsClient.load_from_storage(version="v26")
googleads_service = client.get_service("GoogleAdsService")
# Supported in google-ads v28.4.0 and later: retrieve an async service client.
googleads_async_service = client.get_service("GoogleAdsService", is_async=True)
Campaign ইনস্ট্যান্স ফিরিয়ে আনতে কীভাবে get_type পদ্ধতি ব্যবহার করতে হয় তা নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v26")
campaign = client.get_type("Campaign")
Enums
আপনি enum ফিরিয়ে আনতে get_type পদ্ধতি ব্যবহার করতে পারেন, প্রতিটি
GoogleAdsClient ইনস্ট্যান্সেও একটি enums অ্যাট্রিবিউট থাকে যা get_type পদ্ধতির মতো একই মেকানিজম ব্যবহার করে
ডায়নামিকভাবে enum লোড করে। get_type ব্যবহার করার চেয়ে
এই ইন্টারফেসটি আরও সহজ এবং পড়তে সুবিধা হয়:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v26")
campaign = client.get_type("Campaign")
campaign.status = client.enums.CampaignStatusEnum.PAUSED
প্রোটো অবজেক্ট ফিল্ড যা enum, তা Python-এ বিল্ট-ইন
enum টাইপ দ্বারা দেখানো হয়। এর অর্থ হল, আপনি সরাসরি মেম্বারের ভ্যালু
পড়তে পারবেন। Python REPL-এ আগের উদাহরণ থেকে 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-এ সেট করা আছে তার উপর নির্ভর করে enum-এর সাথে ইন্টার্যাক্ট করার পদ্ধতি আলাদা হয়। দুটি ইন্টারফেস সম্পর্কে বিস্তারিত জানতে,
protobuf মেসেজ ডকুমেন্টেশন দেখুন।
ভার্সনিং
একই সময়ে API-এর একাধিক ভার্সন ম্যানেজ করা হয়। v26 লেটেস্ট ভার্সন হলেও, আগের ভার্সনগুলি বন্ধ না হওয়া পর্যন্ত
অ্যাক্সেস করা যাবে। লাইব্রেরিতে আলাদা প্রোটো মেসেজ ক্লাস অন্তর্ভুক্ত থাকে
যা প্রতিটি অ্যাক্টিভ API ভার্সনের সাথে সম্পর্কিত। নির্দিষ্ট ভার্সনের জন্য মেসেজ ক্লাস অ্যাক্সেস করতে, ক্লায়েন্ট শুরু করার সময় version কীওয়ার্ড প্যারামিটার প্রদান করুন যাতে এটি সবসময়
প্রদত্ত ভার্সন থেকে ইনস্ট্যান্স ফিরিয়ে দেয়:
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage(version="v26")
# The Campaign instance will be from the v26 version of the API.
campaign = client.get_type("Campaign")
ক্লায়েন্ট শুরু করার সময় আপনি version নির্দিষ্ট না করলে,
get_service ও get_type মেথড কল করার সময় প্রতি কলের জন্য ভার্সন নির্দিষ্ট করতে পারবেন
(মনে রাখবেন যে GoogleAdsClient শুরু করার সময় version সেট করা হলে, এটি get_service বা get_type-এ পাস করা
যেকোনও version আর্গুমেন্টকে ওভাররাইড করে):
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
# This loads the v26 version of the GoogleAdsService.
googleads_service = client.get_service(
"GoogleAdsService", version="v26"
)
# This loads a specific supported API version (such as v23) of a Campaign.
campaign = client.get_type("Campaign", version="v23")
কোনও version কীওয়ার্ড প্যারামিটার প্রদান করা না হলে, লাইব্রেরি ডিফল্ট হিসেবে
আপনার ইনস্টল করা google-ads প্যাকেজ দ্বারা সমর্থিত সর্বোচ্চ API ভার্সন ব্যবহার করে
(লেটেস্ট রিলিজে "v26")। মনে রাখবেন যে মাইনর API রিলিজ
(যেমন v25.1) তাদের মেজর ভার্সন স্ট্রিং
(version="v25") ব্যবহার করে অ্যাক্সেস করা হয়। লেটেস্ট এবং অন্যান্য উপলভ্য ভার্সনের একটি আপডেট করা তালিকা
API রেফারেন্স ডকুমেন্টেশনের বাঁদিকের নেভিগেশন বিভাগে
পাওয়া যাবে।