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

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

  1. Google Ads API অ্যাক্সেস করতে, আপনাকে নিম্নলিখিত সুযোগের জন্য প্রমাণীকরণের জন্য আপনার অ্যাপ্লিকেশন কনফিগার করতে হবে:

    https://www.googleapis.com/auth/adwords
    
  2. অফলাইনে থাকাকালীন আপনার অ্যাপটিকে ব্যবহারকারীর পক্ষ থেকে API কল করতে হতে পারে৷ রিপোর্ট তৈরি করতে এবং অ্যাকাউন্ট বিশ্লেষণ করতে অফলাইনে অ্যাকাউন্ট মেট্রিক্স ডাউনলোড করা একটি সাধারণ পরিস্থিতি। এই কারণে, আমরা OAuth অফলাইন অ্যাক্সেসের অনুরোধ করার পরামর্শ দিই।

  3. আপনাকে OAuth অ্যাপ যাচাইকরণ প্রক্রিয়ার মধ্য দিয়ে যেতে হবে এবং আপনার অ্যাপকে প্রত্যয়িত করা উচিত।

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

একবার আপনি ব্যবহারকারীকে অনুমোদন দিলে এবং OAuth 2.0 শংসাপত্র প্রাপ্ত হলে, আপনি আপনার প্রোগ্রামিং ভাষার সাথে সম্পর্কিত ট্যাবে নির্দেশাবলী অনুসরণ করে ক্লায়েন্ট লাইব্রেরি কনফিগার করতে পারেন।

জাভা

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

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId(OAUTH_CLIENT_ID)
        .setClientSecret(OAUTH_CLIENT_SECRET)
        .setRefreshToken(REFRESH_TOKEN)
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the developer token which enables API access.
        .setDeveloperToken(DEVELOPER_TOKEN)
        // Sets the OAuth credentials which provide Google Ads account access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
        .build();
``` See the [configuration guide][java-config-guide] for additional options.

.নেট

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

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

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

পাইথন

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

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "REFRESH_TOKEN",
    "client_id": "OAUTH_CLIENT_ID",
    "client_secret": "OAUTH_CLIENT_SECRET"}

client = GoogleAdsClient.load_from_dict(credentials)

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

পিএইচপি

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

$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

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

রুবি

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

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

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

পার্ল

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

my $api_client = Google::Ads::GoogleAds::Client->new({
  developer_token   => "INSERT_DEVELOPER_TOKEN_HERE",
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});

my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");

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

কার্ল

একটি 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"
}