این راهنما نحوه دسترسی به API گوگل ادز با حسابهای سرویس را مورد بحث قرار میدهد.
یک حساب کاربری سرویس ، حسابی است که به جای یک کاربر نهایی، متعلق به برنامه شماست. حسابهای کاربری سرویس از جریان OAuth 2.0 استفاده میکنند که نیازی به مجوز انسانی ندارد و در عوض از یک فایل کلیدی استفاده میکنند که فقط برنامه شما میتواند به آن دسترسی داشته باشد.
استفاده از حسابهای کاربری سرویس دو مزیت کلیدی ارائه میدهد:
مجوز دسترسی API گوگل ادز به حسابهای گوگل ادز به عنوان یک مرحله پیکربندی انجام میشود و از ویژگیهای مجوز و مدیریت حساب ارائه شده توسط رابط کاربری گوگل ادز بهره میبرد. این امر با عدم نیاز به ساخت جریانهای OAuth 2.0 و مقابله با پیچیدگیهایی که شامل تعامل با کاربر، ذخیره اعتبارنامههای کاربر و غیره میشود، در تلاش توسعهدهندگان صرفهجویی میکند.
مجوز دسترسی به حسابهای گوگل ادز به اعتبارنامههای کاربران وابسته نیست، که این موضوع میتواند در مواردی مفید باشد که انتظار میرود چنین مجوزی حتی در صورت ترک تیم یا شرکت توسط کارمندی که در ابتدا اجازه دسترسی را داده است، ادامه یابد.
تنظیمات دسترسی به حساب
با ایجاد یک حساب کاربری سرویس و اعتبارنامهها شروع کنید.
کلید حساب سرویس را با فرمت JSON دانلود کنید و شناسه و ایمیل حساب سرویس را یادداشت کنید.
به عنوان مدیر وارد حساب گوگل ادز خود شوید. به بخش مدیریت > دسترسی و امنیت بروید.
روی دکمه + در زیر تب کاربران کلیک کنید.

ایمیل حساب کاربری سرویس را در کادر ورودی ایمیل تایپ کنید. سطح دسترسی مناسب به حساب را انتخاب کرده و روی دکمه افزودن حساب کلیک کنید.

به حساب کاربری سرویس دسترسی داده میشود.

[اختیاری] به طور پیشفرض، شما نمیتوانید به یک حساب کاربری سرویس، دسترسی مدیر بدهید. اگر فراخوانیهای API شما نیاز به دسترسی مدیر دارد، میتوانید دسترسی را به شرح زیر ارتقا دهید.
- روی فلش کشویی کنار سطح دسترسی حساب سرویس در ستون سطح دسترسی کلیک کنید.
- از لیست کشویی، گزینه مدیریت (Admin) را انتخاب کنید.
پیکربندی کتابخانه کلاینت
برای دستورالعملهای مربوط به نحوه پیکربندی کتابخانه کلاینت، برگه مربوط به زبان برنامهنویسی خود را انتخاب کنید.
جاوا
مسیر JSON کلید خصوصی را در پیکربندی خود تنظیم کنید. اگر از فایل ads.properties استفاده میکنید، موارد زیر را اضافه کنید:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
برای جزئیات بیشتر به راهنمای پیکربندی مراجعه کنید.
دات نت
OAuth2Mode و OAuth2SecretsJsonPath را روی نمونه GoogleAdsConfig تنظیم کنید و از آن برای مقداردهی اولیه شیء GoogleAdsClient استفاده کنید.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "PATH_TO_JSON_SECRETS_PATH",
...
};
GoogleAdsClient client = new GoogleAdsClient(config);
برای جزئیات بیشتر به راهنمای پیکربندی مراجعه کنید.
پایتون
مسیر 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
پی اچ پی
کلیدهای زیر را در google_ads_php.ini خود پیکربندی کنید. برای جزئیات بیشتر به راهنمای پیکربندی مراجعه کنید.
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
روبی
کلیدهای زیر را در google_ads_config.rb خود پیکربندی کنید.
c.keyfile = 'JSON_KEY_FILE_PATH'
پرل
مسیر کلید خصوصی JSON و شناسه حساب نماینده را در پیکربندی خود تنظیم کنید. اگر از فایل googleads.properties استفاده میکنید، موارد زیر را اضافه کنید:
jsonKeyFilePath=JSON_KEY_FILE_PATH
اگر از متغیرهای محیطی استفاده میکنید، موارد زیر را به پیکربندی یا محیط Bash خود اضافه کنید:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
حلقه زدن
با تنظیم حساب کاربری سرویس به عنوان اعتبارنامه فعال در gcloud CLI شروع کنید.
gcloud auth login --cred-file=PATH_TO_CREDENTIALS_JSONدر مرحله بعد، یک توکن دسترسی OAuth 2.0 برای API تبلیغات گوگل دریافت کنید.
gcloud auth \
print-access-token \
--scopes='https://www.googleapis.com/auth/adwords'اکنون میتوانید از توکن دسترسی در فراخوانیهای API خود استفاده کنید. مثال زیر نحوه اجرای گزارش کمپین را با استفاده از متد GoogleAdsService.SearchStream برای بازیابی کمپینهای موجود در حساب شما نشان میدهد. این راهنما جزئیات گزارشدهی را پوشش نمیدهد.
curl -i -X POST https://googleads.googleapis.com/v22/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"
}