অন্যান্য 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সেটিংয়ের জন্য সঠিক ভ্যালু হিসেবে ব্যবহার করা যাবে।