অন্যান্য Google API-এর মতো, Google Ads API যাচাইকরণ ও অনুমোদনের জন্য OAuth 2.0 প্রোটোকল ব্যবহার করে। OAuth 2.0 আপনার Google Ads API ক্লায়েন্ট অ্যাপ্লিকেশনকে ব্যবহারকারীর লগ-ইন তথ্য হ্যান্ডেল বা স্টোর না করেই ব্যবহারকারীর Google Ads অ্যাকাউন্ট অ্যাক্সেস করার সুবিধা দেয়।
Google Ads অ্যাক্সেস মডেল সম্পর্কে বোঝা
Google Ads API-এর সাথে কার্যকরভাবে কাজ করতে, Google Ads অ্যাক্সেস মডেল কীভাবে কাজ করে তা বুঝুন। Google Ads অ্যাক্সেস মডেল গাইড দেখুন।
OAuth ওয়ার্কফ্লো
Google Ads API-এর সাথে কাজ করার সময় তিনটি সাধারণ ওয়ার্কফ্লো ব্যবহার করা হয়।
পরিষেবা অ্যাকাউন্ট ফ্লো
আপনার ওয়ার্কফ্লোতে কোনও হিউম্যান ইন্টার্যাকশনের প্রয়োজন না হলে, এই ওয়ার্কফ্লো সাজেস্ট করা হয়। এই ওয়ার্কফ্লোতে কনফিগারেশন ধাপ প্রয়োজন, যেখানে ব্যবহারকারী তার Google Ads অ্যাকাউন্টে পরিষেবা অ্যাকাউন্ট যোগ করেন। তারপর, অ্যাপটি ব্যবহারকারীর Google Ads অ্যাকাউন্ট ম্যানেজ করার জন্য পরিষেবা অ্যাকাউন্টের ক্রেডেনশিয়াল ব্যবহার করতে পারে।
PHP লাইব্রেরি এইভাবে কনফিগার করা যেতে পারে:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withJsonKeyFilePath('INSERT_PATH_TO_JSON_KEY_FILE_HERE')
// Optional in v32.1.0 and later (defaults to
// 'https://www.googleapis.com/auth/adwords').
->withScopes('https://www.googleapis.com/auth/adwords')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->build();
আরও জানতে সার্ভিস অ্যাকাউন্ট ওয়ার্কফ্লো গাইড দেখুন।
সিঙ্গেল-ইউজার যাচাইকরণ ফ্লো
আপনি যদি পরিষেবা অ্যাকাউন্ট ব্যবহার করতে না পারেন, তাহলে এই ওয়ার্কফ্লো ব্যবহার করা হতে পারে। এই ওয়ার্কফ্লোর জন্য দুটি কনফিগারেশন ধাপ প্রয়োজন:
- Google Ads API ব্যবহার করে ম্যানেজ করা হবে এমন সব অ্যাকাউন্টে একজন ব্যবহারকারীকে অ্যাক্সেস দিন। একটি সাধারণ পদ্ধতি হল ব্যবহারকারীকে Google Ads API ম্যানেজার অ্যাকাউন্টে অ্যাক্সেস দেওয়া এবং সেই ম্যানেজার অ্যাকাউন্টের অধীনে সব Google Ads অ্যাকাউন্ট লিঙ্ক করা।
- সেই ব্যবহারকারী তারপর একটি কমান্ড-লাইন টুল চালান যেমন
GenerateUserCredentialsযাতে আপনার অ্যাপকে তার হয়ে তার সমস্ত Google Ads অ্যাকাউন্ট ম্যানেজ করার অনুমতি দেওয়া যায়।
ব্যবহারকারীর OAuth 2.0 ক্রেডেনশিয়াল ব্যবহার করে লাইব্রেরি শুরু করা যেতে পারে, যেমন:
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
আরও জানতে সিঙ্গেল-ইউজার যাচাইকরণ ওয়ার্কফ্লো গাইড দেখুন।
মাল্টি-ইউজার যাচাইকরণ ফ্লো
আপনার অ্যাপ ব্যবহারকারীদের সাইন-ইন করতে এবং তাদের পক্ষ থেকে তাদের Google Ads অ্যাকাউন্ট ম্যানেজ করার জন্য আপনার অ্যাপকে অনুমোদন দিলে, এটিই হল সাজেস্ট করা ওয়ার্কফ্লো। আপনার অ্যাপ প্রতিটি যাচাই করা ব্যবহারকারীর সেশনের জন্য OAuth 2.0 ব্যবহারকারীর ক্রেডেনশিয়াল ডায়নামিকভাবে তৈরি ও ম্যানেজ করে। সাইন-ইন করা ব্যবহারকারীর ক্রেডেনশিয়াল ব্যবহার করে লাইব্রেরি শুরু করা যেতে পারে নিম্নলিখিত উপায়ে:
// Construct credentials dynamically per authenticated user session.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken($userRefreshToken)
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId($userLoginCustomerId)
->build();
আরও জানতে মাল্টি-ইউজার যাচাইকরণ ওয়ার্কফ্লো গাইড দেখুন।
অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল
PHP ক্লায়েন্ট লাইব্রেরিও
অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC)-এর মাধ্যমে যাচাইকরণ সমর্থন করে। OAuth2TokenBuilder-এ অ্যাপ্লিকেশন মোড
(clientId, clientSecret, refreshToken) বা পরিষেবা অ্যাকাউন্ট মোড
(jsonKeyFilePath) ক্রেডেনশিয়াল সেট করা না থাকলে, build()-এ কল করার সময়
অটোমেটিক অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল ব্যবহার করা হয়:
$oAuth2Credential = (new OAuth2TokenBuilder())->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
একাধিক অ্যাকাউন্ট ম্যানেজ করা
একজন ব্যবহারকারীর পক্ষে একাধিক Google Ads অ্যাকাউন্ট ম্যানেজ করা সাধারণ ব্যাপার, হয় অ্যাকাউন্টে সরাসরি অ্যাক্সেসের মাধ্যমে অথবা Google Ads ম্যানেজার অ্যাকাউন্টের মাধ্যমে। PHP ক্লায়েন্ট লাইব্রেরি নিম্নলিখিত কোডের উদাহরণ প্রদান করে যা এই ধরনের পরিস্থিতি কীভাবে সামলাতে হয় তা ব্যাখ্যা করে:
GetAccountHierarchyকোডের উদাহরণ থেকে জানা যায় যে Google Ads ম্যানেজার অ্যাকাউন্টের অধীনে থাকা সব অ্যাকাউন্টের তালিকা কীভাবে পাওয়া যায়।ListAccessibleCustomersকোডের উদাহরণ থেকে জানা যায় যে কোনও ব্যবহারকারীর সরাসরি অ্যাক্সেস আছে এমন সব অ্যাকাউন্টের তালিকা কীভাবে ফিরিয়ে আনা যায়। এইসব অ্যাকাউন্ট তারপরেloginCustomerIdসেটিংয়ের জন্য সঠিক ভ্যালু হিসেবে ব্যবহার করা যাবে।