يتناول هذا الدليل كيفية الوصول إلى واجهة Google Ads API باستخدام حسابات الخدمة.
حساب الخدمة هو حساب يخص تطبيقك بدلاً من مستخدم نهائي فردي. تستخدم حسابات الخدمة مسار OAuth 2.0 لا يتطلّب تفويضًا من مستخدم، بل تستخدم بدلاً من ذلك ملف مفتاح لا يمكن لتطبيقك الوصول إليه إلا.
يوفر استخدام حسابات الخدمة ميزتَين رئيسيتَين:
يتم تفويض الوصول إلى حسابات "إعلانات Google" من خلال واجهة Google Ads API كخطوة إعداد، وذلك بالاستفادة من ميزات التفويض وإدارة الحسابات التي توفّرها واجهة مستخدم "إعلانات Google". يوفّر ذلك جهد المطوّرين من خلال عدم الحاجة إلى إنشاء مسارات OAuth 2.0 والتعامل مع التعقيدات التي تتضمّن تفاعلاً مع المستخدم، وتخزين بيانات اعتماد المستخدم، وما إلى ذلك.
لا يرتبط تفويض الوصول إلى حسابات "إعلانات Google" ببيانات اعتماد المستخدم الفردية، ما قد يكون مفيدًا في الحالات التي يُتوقّع فيها استمرار هذا التفويض حتى إذا غادر الموظف الذي منح إذن الوصول في الأصل الفريق أو الشركة.
إعداد الوصول إلى الحساب
ابدأ بـ إنشاء حساب خدمة وبيانات اعتماد.
نزِّل مفتاح حساب الخدمة بتنسيق JSON واحتفِظ بمعرّف حساب الخدمة وبريده الإلكتروني.
سجِّل الدخول إلى حسابك على "إعلانات Google" بصفتك مشرفًا. انتقِل إلى المشرف > الوصول والأمان.
انقر على الزر + ضمن علامة التبويب المستخدمون.

اكتب البريد الإلكتروني لحساب الخدمة في مربّع الإدخال البريد الإلكتروني. اختَر مستوى الوصول المناسب إلى الحساب وانقر على الزر إضافة حساب.

تم منح حساب الخدمة إذن الوصول.

[اختياري] لا يمكنك منح إذن وصول المشرف إلى حساب خدمة بشكلٍ تلقائي. إذا كانت طلبات بيانات واجهة برمجة التطبيقات تتطلّب إذن وصول المشرف، يمكنك ترقية إذن الوصول على النحو التالي.
- انقر على السهم المنسدل بجانب مستوى وصول حساب الخدمة في عمود مستوى الوصول.
- اختَر المشرف من القائمة المنسدلة.
إعداد مكتبة العميل
اختَر علامة التبويب التي تتوافق مع لغة البرمجة للحصول على تعليمات حول كيفية إعداد مكتبة العميل.
جافا
اضبط مسار JSON للمفتاح الخاص في الإعدادات. إذا كنت تستخدم ملف ads.properties، أضِف ما يلي:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
راجِع دليل الإعداد لمزيد من التفاصيل.
NET.
اضبط OAuth2Mode وOAuth2SecretsJsonPath على مثيل GoogleAdsConfig واستخدِمه لتهيئة عنصر GoogleAdsClient.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_JSON_SECRETS_PATH",
...
};
GoogleAdsClient client = new GoogleAdsClient(config);
راجِع دليل الإعداد لمزيد من التفاصيل.
Python
اضبط مسار JSON للمفتاح الخاص في الإعدادات. إذا كنت تستخدم
google-ads.yaml file أو سلسلة YAML أو dict، أضِف ما يلي:
json_key_file_path: JSON_KEY_FILE_PATH
إذا كنت تستخدم متغيّرات البيئة، أضِف ما يلي إلى إعدادات Bash أو البيئة:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
PHP
اضبط المفاتيح التالية في ملف google_ads_php.ini. راجِع
دليل الإعداد لمزيد من
التفاصيل.
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
Ruby
اضبط المفاتيح التالية في ملف google_ads_config.rb.
c.keyfile = 'JSON_KEY_FILE_PATH'
Perl
اضبط مسار JSON للمفتاح الخاص ومعرّف الحساب المفوض في الإعدادات.
إذا كنت تستخدم ملف googleads.properties، أضِف ما يلي:
jsonKeyFilePath=JSON_KEY_FILE_PATH
إذا كنت تستخدم متغيّرات البيئة، أضِف ما يلي إلى إعدادات Bash أو البيئة:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
curl
ابدأ بضبط حساب الخدمة كبيانات الاعتماد النشطة في gcloud CLI.
gcloud auth login --cred-file=PATH_TO_CREDENTIALS_JSONبعد ذلك، احصل على رمز مميّز للوصول إلى OAuth 2.0 من أجل واجهة Google Ads API.
gcloud auth \
print-access-token \
--scopes='https://www.googleapis.com/auth/adwords'يمكنك الآن استخدام رمز الوصول المميّز في طلبات بيانات واجهة برمجة التطبيقات. يوضّح المثال التالي
كيفية تشغيل تقرير حملة باستخدام طريقة
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"
}