مشابه گردش کار حساب سرویس ، جریان احراز هویت تک کاربر از ویژگیهای مجوز و مدیریت کاربر ارائه شده توسط Google Ads UI برای اعطای دسترسی به برنامه به همه حسابهای ضروری استفاده میکند. این گردش کار احراز هویت دو مرحله دارد:
- شما به یک کاربر اجازه دسترسی به همه حسابهای Google Ads را میدهید که باید توسط برنامه مدیریت شوند.
- کاربر به برنامه شما اجازه میدهد تا حسابهای Google Ads خود را از طرف او مدیریت کند، بنابراین به برنامه اجازه میدهد به همه حسابهای Google Ads دسترسی داشته باشد.
از آنجایی که فقط یک کاربر درگیر است، میتوانید به جای ایجاد جریان احراز هویت کاربر OAuth 2.0 به ابزارهایی مانند gcloud CLI یا مثال کد GenerateUserCredential تکیه کنید.
یک مورد استفاده مرتبط برای این گردش کاری زمانی است که می توان به حساب های شما از طریق تعداد انگشت شماری از ورود به سیستم کاربر (به عنوان مثال 3-4 کاربر) دسترسی داشت، بنابراین تلاش توسعه برای ایجاد یک گردش کار احراز هویت کاربر OAuth کامل در مقایسه با تلاش برای دریافت مجوز برای 3-4 کاربر با استفاده از یک ابزار خط فرمان مانند gcloud CLI توجیه پذیر نیست.
معایب
این جریان در مقایسه با گردش کار حساب سرویس دارای چند معایب است:
- گردش کار احراز هویت کاربر به شما نیاز دارد که یک شناسه مشتری OAuth 2.0 و یک رمز در Google Cloud Console ایجاد کنید، که به مراحل پیکربندی بیشتری نسبت به ایجاد حساب و کلید سرویس نیاز دارد.
- ممکن است برنامه شما مجبور باشد یک فرآیند تأیید اعتبار Google Cloud App اضافی را طی کند.
- اگر کاربر مجاز تیم یا شرکت را ترک کند، در صورت حذف کاربر از حساب های خود یا غیرفعال کردن حساب کاربری، ممکن است برنامه شما از کار بیفتد. حسابهای سرویس به کاربران فردی وابسته نیستند، بنابراین از این خطر جلوگیری میشود.
- کاربری که به حساب Google Ads مجوز می دهد باید اقدامات احتیاطی بیشتری مانند فعال کردن احراز هویت دو عاملی برای دفاع در برابر در معرض خطر قرار گرفتن حساب Google خود به دلیل در معرض خطر قرار گرفتن به دلیل امنیت ضعیف، بدافزار یا فیشینگ انجام دهد. حسابهای سرویس کمتر در برابر این مشکل آسیبپذیر هستند، زیرا برخی از این حالتهای حمله مستقیماً برای آنها اعمال نمیشود.
اعتبارنامه تولید کنید
دستورالعملها را برای پیکربندی صفحه رضایت OAuth برای برنامه خود دنبال کنید و
https://www.googleapis.com/auth/adwords
به عنوان محدوده OAuth 2.0 اضافه کنید.با دنبال کردن دستورالعمل ها ، یک شناسه مشتری و راز مشتری ایجاد کنید. هنگامی که مشتری OAuth 2.0 را ایجاد کردید، ابتدا فایل JSON مشتری را با کلیک کردن روی نماد دانلود مشتری OAuth و سپس دکمه DOWNLOAD JSON در صفحه زیر دانلود کنید. فایل را به عنوان
credentials.json
ذخیره کنید.حساب کاربری را شناسایی کنید که به تمام حسابهای Google Ads که میخواهید با استفاده از برنامهتان مدیریت کنید، دسترسی دارد. اگر حسابهایی با دسترسی از دست رفته وجود دارد، دستورالعملها را برای دادن دسترسی لازم دنبال کنید.
gcloud CLI را دانلود و نصب کنید . پس از نصب، با اجرای دستور
gcloud version
از خط فرمان، بررسی کنید که ابزار به درستی کار می کند. خروجی ممکن است به صورت زیر باشد.:~$ gcloud version Google Cloud SDK 492.0.0 alpha 2024.09.06 beta 2024.09.06 bq 2.1.8 bundled-python3-unix 3.11.9 core 2024.09.06 enterprise-certificate-proxy 0.3.2 gcloud-crc32c 1.0.0 gsutil 5.30
با اجرای ابزار gcloud CLI یک نشانه بهروزرسانی OAuth 2.0 ایجاد کنید:
gcloud auth application-default
login --scopes=https://www.googleapis.com/auth/adwords,https://www.googleapis.com/auth/cloud-platform
--client-id-file=<path_to_credentials.json>فایل
credentials.json
مربوط به مرحله قبل است.دستور
gcloud
یک پنجره ورود به حساب Google را در یک پنجره مرورگر جدید باز می کند و شما را از مراحل احراز هویت OAuth 2.0 راهنمایی می کند. اطمینان حاصل کنید که به عنوان کاربری که از مراحل قبلی انتخاب کرده اید وارد سیستم شوید. اگر برنامه شما تأیید نشده باشد، ممکن است یک صفحه هشدار مشاهده کنید. در چنین مواردی، میتوانید روی پیوند نمایش پیشرفته کلیک کنید و روی گزینه Go to PROJECT_NAME (تأیید نشده) کلیک کنید.بعد از اینکه دامنه ها را تأیید کردید، برای اعطای مجوز، روی دکمه Continue کلیک کنید. مرورگر به
https://cloud.google.com/sdk/auth_success
میرود که نشان میدهد احراز هویت با موفقیت انجام شده است. صفحه پیغام زیر را نمایش می دهد:Authorization code granted. Close this tab.
دستور
gcloud
پیام زیر را چاپ می کند:Credentials saved to file: [/****/.config/gcloud/application_default_credentials.json]
حالا فایل
application_default_credentials.json
را باز کنید. محتوای آن باید مشابه موارد زیر باشد:{ "account": "", "client_id": "******.apps.googleusercontent.com", "client_secret": "******", "refresh_token": "******", "type": "authorized_user", "universe_domain": "googleapis.com" }
پیکربندی کتابخانه مشتری
برگه مربوط به زبان برنامه نویسی خود را برای دستورالعمل های نحوه پیکربندی کتابخانه مشتری خود انتخاب کنید.
جاوا
کلیدهای زیر را در فایل ads.properties
خود پیکربندی کنید.
api.googleads.clientId=INSERT_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.
دات نت
میتوانید نمونه GoogleAdsClient
خود را در زمان اجرا، با استفاده از اعتبارنامههایی که از کاربری دریافت کردهاید، مقداردهی اولیه کنید.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.APPLICATION,
OAuth2ClientId = "INSERT_OAUTH2_CLIENT_ID",
OAuth2ClientSecret = "INSERT_OAUTH2_CLIENT_SECRET",
OAuth2RefreshToken = "INSERT_OAUTH2_REFRESH_TOKEN",
...
};
GoogleAdsClient client = new GoogleAdsClient(config);
برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.
پایتون
کلیدهای زیر را در فایل google-ads.yaml
خود پیکربندی کنید.
client_id: INSERT_OAUTH2_CLIENT_ID_HERE
client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
refresh_token: INSERT_REFRESH_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.
PHP
کلیدهای زیر را در google_ads_php.ini
خود پیکربندی کنید.
[GOOGLE_ADS]
loginCustomerId = "INSERT_LOGIN_CUSTOMER_ID_HERE"
[OAUTH2]
clientId = "INSERT_OAUTH2_CLIENT_ID_HERE"
clientSecret = "INSERT_OAUTH2_CLIENT_SECRET_HERE"
refreshToken = "INSERT_OAUTH2_REFRESH_TOKEN_HERE"
برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.
روبی
کلیدهای زیر را در فایل google_ads_config.rb
خود پیکربندی کنید.
Google::Ads::GoogleAds::Config.new do |c| c.client_id = 'INSERT_CLIENT_ID_HERE' c.client_secret = 'INSERT_CLIENT_SECRET_HERE' c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE' c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE' c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE' end
برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.
پرل
کلیدهای زیر را در فایل googleads.properties
خود پیکربندی کنید.
clientId=INSERT_OAUTH2_CLIENT_ID_HERE clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE
برای گزینه های اضافی به راهنمای پیکربندی مراجعه کنید.
حلقه کردن
با استفاده از یک سرویس گیرنده 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
اکنون می توانید از نشانه دسترسی در تماس های 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"
}