في سير عمل مصادقة تعدد المستخدمين، يمكنك إنشاء مسار OAuth الخاص بك لمصادقة المستخدمين. تتوفّر أنواع تطبيقات متعدّدة تمت مناقشتها كجزء من مستندات "هوية Google"، وإعداد مشروع Google Cloud Console الذي تحتاج إليه لدعم نوع التطبيق هذا. تتوافق واجهة Google Ads API مع جميع أنواع التطبيقات هذه. في ما يلي التفاصيل الفنية الإضافية التي يجب أخذها في الاعتبار:
للوصول إلى Google Ads API، عليك ضبط تطبيقك للمصادقة في النطاق التالي:
https://www.googleapis.com/auth/adwordsقد يحتاج تطبيقك إلى إجراء طلبات إلى واجهة برمجة التطبيقات نيابةً عن المستخدم أثناء عدم اتصاله بالإنترنت. السيناريو الشائع هو تنزيل مقاييس الحساب بلا إنترنت لإنشاء التقارير وإجراء إحصاءات الحساب. لهذا السبب، ننصحك بطلب [الوصول بلا إنترنت إلى OAuth][oauth-offline-access].
عليك اتّباع [عملية التحقّق من تطبيق OAuth][app-verification] والحصول على شهادة اعتماد لتطبيقك.
إعداد مكتبة العميل
بعد منح الإذن للمستخدم والحصول على بيانات اعتماد OAuth 2.0، يمكنك ضبط مكتبة العميل باتّباع التعليمات في علامة التبويب التي تتوافق مع لغة البرمجة التي تستخدمها.
جافا
يمكنك تهيئة مثيل 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.
NET.
يمكنك تهيئة مثيل 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);
راجِع [دليل الإعداد][dotnet-config-guide] للاطّلاع على خيارات إضافية.
Python
يمكنك تهيئة مثيل 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)
راجِع [دليل الإعداد][python-config-guide] للاطّلاع على خيارات إضافية.
PHP
يمكنك تهيئة مثيل 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();
راجِع [دليل الإعداد][php-config-guide] للاطّلاع على خيارات إضافية.
Ruby
يمكنك تهيئة مثيل 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
راجِع [دليل الإعداد][ruby-config-guide] للاطّلاع على خيارات إضافية.
Perl
يمكنك تهيئة مثيل 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");
راجِع [دليل الإعداد][perl-config-guide] للاطّلاع على خيارات إضافية.
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://www.googleapis.com/oauth2/v3/tokenيمكنك الآن استخدام رمز الوصول في طلباتك إلى واجهة برمجة التطبيقات. يوضّح المثال التالي
كيفية تشغيل تقرير حملة باستخدام طريقة
GoogleAdsService.SearchStream لاسترداد
الحملات في حسابك. لا يغطّي هذا الدليل تفاصيل إعداد التقارير
.
curl -i -X POST https://googleads.googleapis.com/v25/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"
}
[oauth-offline-access]: /identity/protocols/oauth2/web-server#offline [app-verification]: //support.google.com/cloud/answer/13461325 [dotnet-config-guide]: /google-ads/api/docs/client-libs/dotnet/configuration [java-config-guide]: /google-ads/api/docs/client-libs/java/config-file [python-config-guide]: /google-ads/api/docs/client-libs/python/configuration [php-config-guide]: /google-ads/api/docs/client-libs/php/configuration [ruby-config-guide]: /google-ads/api/docs/client-libs/ruby/configuration [perl-config-guide]: /google-ads/api/docs/client-libs/perl/configuration