در گردش کار اصالتسنجی چندکاربره، جریان OAuth خودتان را برای اصالتسنجی کاربران میسازید. انواع مختلفی از برنامهها در اسناد Google Identity مورد بحث قرار گرفتهاند، بههمراه پیکربندی پروژه Google API Console که برای پشتیبانی از هر نوع برنامه نیاز دارید. همه این انواع برنامه توسط Google Ads API پشتیبانی میشوند. جزئیات فنی دیگری که باید بهخاطر داشته باشید عبارتاند از:
برنامهتان را برای درخواست کردن دامنه OAuth 2.0 زیر پیکربندی کنید:
https://www.googleapis.com/auth/adwordsممکن است برنامهتان مجبور باشد ازطرف کاربر درحالیکه آفلاین است، تماسهای API برقرار کند. یک سناریو رایج، بارگیری سنجههای حساب بهصورت آفلاین برای تولید گزارشها و انجام تجزیهوتحلیل حساب است. به همین دلیل، توصیه میکنیم دسترسی آفلاین OAuth درخواست کنید.
فرایند درستیسنجی برنامه OAuth را تکمیل کنید تا برنامهتان درستیسنجی شود.
نمای کلی گردش کار
پیادهسازی گردش کار اصالتسنجی چندکاربره شامل سه مرحله اصلی است:
- هدایت کاربران به صفحه رضایت OAuth: هر کاربر را به نقطه پایانی مجوز OAuth 2.0 Google هدایت کنید و درخواست دسترسی آفلاین و محدوده
https://www.googleapis.com/auth/adwordsرا ارسال کنید. کاربران باید با گذرکلید اصالتسنجی کنند تا جریان مجوز را تکمیل کنند و ژتون بازآوری تولید کنند. - کد مجوز را با کدها مبادله کنید: پساز اینکه کاربر اجازه داد، کد مجوز برگرداندهشده را ضبط کنید و آن را با کد دسترسی و کد بازآوری مبادله کنید.
- ذخیره کردن ژتونها و مقداردهی اولیه مشتری در زمان اجرا: ژتون بازآوری هر کاربر را بهطور ایمن در پایگاه دادهتان ذخیره کنید و اطلاعات اعتباری کاربر را هنگام مقداردهی اولیه نمونه
GoogleAdsClientدر زمان اجرا ارسال کنید.
پیکربندی کتابخانه کارخواه
پساز اینکه کاربر را مجاز کردید و اطلاعات کاربری OAuth 2.0 را دریافت کردید، میتوانید کتابخانه کارخواه را با دنبال کردن دستورالعملهای موجود در برگه مربوط به زبان برنامهنویسیتان پیکربندی کنید.
جاوا
میتوانید نمونه GoogleAdsClient خود را در زمان اجرا بااستفاده از اطلاعات اعتباری که از کاربری که حسابهایش را برای فراخوانیهای API استفاده میکنید، مقداردهی اولیه کنید.
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
.setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
.setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the OAuth credentials which provide Google Ads account
// access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
.build();
برای گزینههای بیشتر، راهنمای پیکربندی را ببینید.
دات نت
میتوانید نمونه GoogleAdsClient خود را در زمان اجرا بااستفاده از اطلاعات اعتباری که از کاربری که حسابهایش را برای فراخوانیهای API استفاده میکنید، مقداردهی اولیه کنید.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID_HERE",
OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE",
OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
LoginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE",
};
GoogleAdsClient client = new GoogleAdsClient(config);
برای گزینههای بیشتر، راهنمای پیکربندی را ببینید.
Python
میتوانید نمونه GoogleAdsClient خود را در زمان اجرا بااستفاده از اطلاعات اعتباری که از کاربری که حسابهایش را برای فراخوانیهای API استفاده میکنید، مقداردهی اولیه کنید.
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
"client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
"client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
برای گزینههای بیشتر، راهنمای پیکربندی را ببینید.
PHP
میتوانید نمونه GoogleAdsClient خود را در زمان اجرا بااستفاده از اطلاعات اعتباری که از کاربری که حسابهایش را برای فراخوانیهای API استفاده میکنید، مقداردهی اولیه کنید.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
برای گزینههای بیشتر، راهنمای پیکربندی را ببینید.
Ruby
میتوانید نمونه GoogleAdsClient خود را در زمان اجرا بااستفاده از اطلاعات اعتباری که از کاربری که حسابهایش را برای فراخوانیهای API استفاده میکنید، مقداردهی اولیه کنید.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
برای گزینههای بیشتر، راهنمای پیکربندی را ببینید.
پرل
میتوانید نمونه GoogleAdsClient خود را در زمان اجرا بااستفاده از اطلاعات اعتباری که از کاربری که حسابهایش را برای فراخوانیهای API استفاده میکنید، مقداردهی اولیه کنید.
my $api_client = Google::Ads::GoogleAds::Client->new({
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_HERE");
برای گزینههای بیشتر، راهنمای پیکربندی را ببینید.
curl
بااستفاده از کارخواه 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://oauth2.googleapis.com/tokenمیتوانید از کد دسترسی در تماسهای میانای برنامهسازی کاربردی خود استفاده کنید. مثال زیر
نشان میدهد که چگونه بااستفاده از روش
GoogleAdsService.SearchStream، گزارش پویش را اجرا کنید تا
پویشهای حسابتان را بازیابی کنید. این راهنما جزئیات
گزارشدهی را پوشش نمیدهد.
curl -i -X POST \
https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds:searchStream \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_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"
}