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

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

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

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

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

অপূর্ণতা

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

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

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

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

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

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

  4. জিক্লাউড সিএলআই ডাউনলোড এবং ইনস্টল করুন । একবার ইনস্টল হয়ে গেলে, কমান্ড লাইন প্রম্পট থেকে 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 প্রমাণীকরণ পদক্ষেপের মাধ্যমে নিয়ে যায়। নিশ্চিত করুন যে আপনি আগের পদক্ষেপগুলি থেকে নির্বাচিত ব্যবহারকারী হিসাবে সাইন ইন করেছেন৷ আপনার অ্যাপ যাচাই করা না হলে, আপনি একটি সতর্কতা স্ক্রীন দেখতে পারেন। এই ধরনের ক্ষেত্রে, অ্যাডভান্সড লিঙ্ক প্রদর্শন করুন এবং PROJECT_NAME (অযাচাই করা) বিকল্পে যান ক্লিক করা নিরাপদ।

  7. আপনি সুযোগ যাচাই করার পরে, অনুমতি দিতে অবিরত বোতামে ক্লিক করুন। ব্রাউজারটি 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
 

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

কার্ল

একটি OAuth 2.0 অ্যাক্সেস টোকেন আনতে একটি HTTP ক্লায়েন্ট ব্যবহার করে শুরু করুন। এই গাইড 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/v21/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"
}