একক ব্যবহারকারী প্রমাণীকরণ কর্মপ্রবাহ

পরিষেবা অ্যাকাউন্ট ওয়ার্কফ্লোর মতোই, একক ব্যবহারকারী প্রমাণীকরণ প্রবাহটি Google বিজ্ঞাপন UI দ্বারা প্রদত্ত অনুমোদন এবং ব্যবহারকারী ব্যবস্থাপনা বৈশিষ্ট্যগুলি ব্যবহার করে অ্যাপটিকে সমস্ত প্রয়োজনীয় অ্যাকাউন্টগুলিতে অ্যাক্সেস প্রদান করে। এই প্রমাণীকরণ কর্মপ্রবাহের দুটি ধাপ রয়েছে:

  • আপনি একজন ব্যবহারকারীকে সমস্ত Google বিজ্ঞাপন অ্যাকাউন্টে অ্যাক্সেস দেন যা অ্যাপ দ্বারা পরিচালিত হওয়া উচিত।
  • ব্যবহারকারী আপনার অ্যাপটিকে তাদের পক্ষ থেকে তাদের Google বিজ্ঞাপন অ্যাকাউন্ট পরিচালনা করার অনুমতি দেয়, এইভাবে অ্যাপটিকে সমস্ত Google বিজ্ঞাপন অ্যাকাউন্টে অ্যাক্সেস দেয়।

যেহেতু শুধুমাত্র একজন ব্যবহারকারী জড়িত, তাই আপনি নিজের OAuth 2.0 ব্যবহারকারী প্রমাণীকরণ প্রবাহ তৈরি করার পরিবর্তে gcloud CLI বা GenerateUserCredential কোড উদাহরণের মতো সরঞ্জামগুলির উপর নির্ভর করতে পারেন।

এই ওয়ার্কফ্লোটির একটি সম্পর্কিত ব্যবহারের ক্ষেত্রে হল যখন আপনার অ্যাকাউন্টগুলি মুষ্টিমেয় ব্যবহারকারী লগইনের মাধ্যমে অ্যাক্সেস করা যায় (যেমন 3-4 জন ব্যবহারকারী), তাই gcloud CLI এর মতো একটি কমান্ড লাইন টুল ব্যবহার করে 3-4 জন ব্যবহারকারীর জন্য অনুমোদন পাওয়ার প্রচেষ্টার সাথে তুলনা করলে একটি পূর্ণাঙ্গ OAuth ব্যবহারকারী প্রমাণীকরণ কর্মপ্রবাহ তৈরির উন্নয়ন প্রচেষ্টা ন্যায্য নয়।

অসুবিধা

পরিষেবা অ্যাকাউন্ট কর্মপ্রবাহের সাথে তুলনা করলে এই প্রবাহের কয়েকটি অসুবিধা রয়েছে:

  1. ব্যবহারকারী প্রমাণীকরণ কর্মপ্রবাহের জন্য আপনাকে Google Cloud Console-এ একটি OAuth 2.0 ক্লায়েন্ট আইডি এবং গোপনীয়তা তৈরি করতে হবে, যার জন্য একটি পরিষেবা অ্যাকাউন্ট এবং কী তৈরি করার চেয়ে আরও বেশি কনফিগারেশন পদক্ষেপের প্রয়োজন।
  2. আপনার অ্যাপটিকে অতিরিক্ত একটি Google ক্লাউড অ্যাপ যাচাইকরণ প্রক্রিয়ার মধ্য দিয়ে যেতে হতে পারে।
  3. যদি অনুমোদিত ব্যবহারকারী দল বা কোম্পানি ছেড়ে চলে যান, তাহলে আপনার অ্যাকাউন্ট থেকে ব্যবহারকারীকে সরিয়ে দিলে বা ব্যবহারকারীর অ্যাকাউন্ট নিষ্ক্রিয় করলে আপনার অ্যাপটি কাজ করা বন্ধ করে দিতে পারে। পরিষেবা অ্যাকাউন্টগুলি পৃথক ব্যবহারকারীদের সাথে আবদ্ধ নয়, তাই এই ঝুঁকি এড়ানো যায়।
  4. Google Ads অ্যাকাউন্ট অনুমোদনকারী ব্যবহারকারীর উচিত দুর্বল নিরাপত্তা, ম্যালওয়্যার বা ফিশিংয়ের কারণে তাদের Google অ্যাকাউন্ট ক্ষতিগ্রস্ত না হওয়ার জন্য 2 ফ্যাক্টর প্রমাণীকরণ সক্ষম করার মতো অতিরিক্ত সতর্কতা অবলম্বন করা। পরিষেবা অ্যাকাউন্টগুলি এই সমস্যার জন্য কম ঝুঁকিপূর্ণ কারণ আক্রমণের এই কিছু পদ্ধতি সরাসরি তাদের উপর প্রযোজ্য হয় না।

শংসাপত্র তৈরি করুন

  1. আপনার অ্যাপ্লিকেশনের জন্য একটি OAuth সম্মতি স্ক্রিন কনফিগার করতে নির্দেশাবলী অনুসরণ করুন এবং OAuth 2.0 স্কোপ হিসেবে https://www.googleapis.com/auth/adwords যোগ করুন। বিস্তারিত জানার জন্য আপনার OAuth সম্মতি স্ক্রিন সেট আপ করা দেখুন।

  2. নির্দেশাবলী অনুসরণ করে একটি ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট তৈরি করুন। OAuth 2.0 ক্লায়েন্ট তৈরি করার পরে, ক্লায়েন্টের JSON ফাইলটি ডাউনলোড করুন প্রথমে এর ডাউনলোড OAuth ক্লায়েন্ট আইকনে ক্লিক করে এবং তারপর নিম্নলিখিত স্ক্রিনে DOWNLOAD JSON বোতামে ক্লিক করে। ফাইলটি credentials.json হিসাবে সংরক্ষণ করুন।

  3. আপনার অ্যাপ ব্যবহার করে পরিচালনা করতে চান এমন সমস্ত Google বিজ্ঞাপন অ্যাকাউন্টে অ্যাক্সেস আছে এমন একটি ব্যবহারকারী অ্যাকাউন্ট শনাক্ত করুন। যদি এমন কোনও অ্যাকাউন্ট থাকে যার অ্যাক্সেস নেই, তাহলে প্রয়োজনীয় অ্যাক্সেস দেওয়ার জন্য নির্দেশাবলী অনুসরণ করুন।

  4. gcloud CLI ডাউনলোড করে ইনস্টল করুন । ইনস্টল হয়ে গেলে, কমান্ড লাইন প্রম্পট থেকে gcloud version কমান্ডটি চালিয়ে টুলটি সঠিকভাবে কাজ করছে কিনা তা যাচাই করুন। আউটপুটটি নিম্নরূপ দেখতে পারে।

    :~$ gcloud version
    Google Cloud SDK 492.0.0
    alpha 2024.09.06
    beta 2024.09.06
    bq 2.1.8
    bundled-python3-unix 3.11.9
    core 2024.09.06
    enterprise-certificate-proxy 0.3.2
    gcloud-crc32c 1.0.0
    gsutil 5.30
  5. gcloud CLI টুলটি ব্যবহার করে একটি OAuth 2.0 রিফ্রেশ টোকেন তৈরি করুন:

    gcloud auth application-default 
    login --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
    --client-id-file=<path_to_credentials.json>

    credentials.json ফাইলটি পূর্ববর্তী ধাপ থেকে নেওয়া।

  6. gcloud কমান্ডটি একটি নতুন ব্রাউজার উইন্ডোতে একটি Google অ্যাকাউন্ট লগইন উইন্ডো খুলবে এবং আপনাকে OAuth 2.0 প্রমাণীকরণ ধাপগুলি অতিক্রম করতে সাহায্য করবে। পূর্ববর্তী ধাপগুলি থেকে নির্বাচিত ব্যবহারকারী হিসেবে সাইন ইন করতে ভুলবেন না। যদি আপনার অ্যাপটি যাচাই না করা হয়, তাহলে আপনি একটি সতর্কতা স্ক্রিন দেখতে পাবেন। এই ধরনের ক্ষেত্রে, Show Advanced লিঙ্কে ক্লিক করে Go to PROJECT_NAME (যাচাই না করা) বিকল্পে ক্লিক করা নিরাপদ।

  7. স্কোপগুলি যাচাই করার পরে, অনুমতি প্রদানের জন্য Continue বোতামে ক্লিক করুন। ব্রাউজারটি https://cloud.google.com/sdk/auth_success এ নেভিগেট করে, যা ইঙ্গিত করে যে প্রমাণীকরণ সফল হয়েছে। পৃষ্ঠাটি নিম্নলিখিত বার্তাটি প্রদর্শন করে:

    Authorization code granted. Close this tab.

    gcloud কমান্ডটি নিম্নলিখিত বার্তাটি প্রিন্ট করে:

    Credentials saved to file: [/****/.config/gcloud/application_default_credentials.json]

    এখন application_default_credentials.json ফাইলটি খুলুন। এর বিষয়বস্তুগুলি নিম্নলিখিতগুলির মতো হওয়া উচিত:

    {
    "account": "",
    "client_id": "******.apps.googleusercontent.com",
    "client_secret": "******",
    "refresh_token": "******",
    "type": "authorized_user",
    "universe_domain": "googleapis.com"
    }
    

ক্লায়েন্ট লাইব্রেরি কনফিগারেশন

আপনার ক্লায়েন্ট লাইব্রেরি কীভাবে কনফিগার করবেন তার নির্দেশাবলীর জন্য আপনার প্রোগ্রামিং ভাষার সাথে সম্পর্কিত ট্যাবটি নির্বাচন করুন।

জাভা

আপনার ads.properties ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

অতিরিক্ত বিকল্পের জন্য কনফিগারেশন গাইড দেখুন।

.নেট

আপনি যে ব্যবহারকারীর অ্যাকাউন্টে API কল করছেন তার কাছ থেকে প্রাপ্ত শংসাপত্র ব্যবহার করে রানটাইমের সময় আপনার GoogleAdsClient ইনস্ট্যান্সটি শুরু করতে পারেন।

GoogleAdsConfig config = new GoogleAdsConfig()
{
    OAuth2Mode = OAuth2Flow.APPLICATION,
    OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID",
    OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET",
    OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN",
    ...
};
GoogleAdsClient client = new GoogleAdsClient(config);

অতিরিক্ত বিকল্পের জন্য কনফিগারেশন গাইড দেখুন।

পাইথন

আপনার google-ads.yaml ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

client_id: INSERT_OAUTH2_CLIENT_ID_HERE
client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
refresh_token: INSERT_REFRESH_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE

অতিরিক্ত বিকল্পের জন্য কনফিগারেশন গাইড দেখুন।

পিএইচপি

আপনার google_ads_php.ini এ নিম্নলিখিত কীগুলি কনফিগার করুন।

[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"

[OAUTH2]
clientId = "INSERT_OAUTH2_CLIENT_ID_HERE"
clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE"
refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"

অতিরিক্ত বিকল্পের জন্য কনফিগারেশন গাইড দেখুন।

রুবি

আপনার google_ads_config.rb ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

  Google::Ads::GoogleAds::Config.new do |c|
     c.client_id = 'INSERT_CLIENT_ID_HERE'
     c.client_secret = 'INSERT_CLIENT_SECRET_HERE'
     c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
     c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
     c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
  end

অতিরিক্ত বিকল্পের জন্য কনফিগারেশন গাইড দেখুন।

পার্ল

আপনার googleads.properties ফাইলে নিম্নলিখিত কীগুলি কনফিগার করুন।

 clientId=INSERT_OAUTH2_CLIENT_ID_HERE
 clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
 refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
 loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
 

অতিরিক্ত বিকল্পের জন্য কনফিগারেশন গাইড দেখুন।

কার্ল করা

একটি HTTP ক্লায়েন্ট ব্যবহার করে একটি OAuth 2.0 অ্যাক্সেস টোকেন আনয়ন করে শুরু করুন। এই নির্দেশিকাটি curl কমান্ড ব্যবহার করে।

curl \
  --data "grant_type=refresh_token" \
  --data "client_id=CLIENT_ID" \
  --data "client_secret=CLIENT_SECRET" \
  --data "refresh_token=REFRESH_TOKEN" \
  https://www.googleapis.com/oauth2/v3/token

এখন আপনি আপনার API কলগুলিতে অ্যাক্সেস টোকেন ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে GoogleAdsService.SearchStream পদ্ধতি ব্যবহার করে আপনার অ্যাকাউন্টে প্রচারাভিযানগুলি পুনরুদ্ধার করতে একটি প্রচারাভিযান প্রতিবেদন চালাতে হয়। এই নির্দেশিকাটি রিপোর্টিংয়ের বিশদ বিবরণ কভার করে না।

curl -i -X POST https://googleads.googleapis.com/v22/customers/CUSTOMER_ID/googleAds:searchStream \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer ACCESS_TOKEN" \
   -H "developer-token: DEVELOPER_TOKEN" \
   -H "login-customer-id: LOGIN_CUSTOMER_ID" \
   --data-binary "@query.json"

query.json এর বিষয়বস্তু নিম্নরূপ:

{
  "query": "SELECT campaign.id, campaign.name, campaign.network_settings.target_content_network FROM campaign ORDER BY campaign.id"
}