گردش کار اصالت‌سنجی تک‌کاربر

مشابه گردش کار حساب خدمات، جریان اصالت‌سنجی تک‌کاربره از ویژگی‌های مدیریت کاربر و مجوز ارائه‌شده توسط واسط کاربری Google Ads استفاده می‌کند تا به برنامه اجازه دسترسی به همه حساب‌های لازم را بدهد. این گردش کار اصالت‌سنجی دو مرحله دارد:

  • به یک کاربر اجازه دسترسی به همه حساب‌های Google Ads را که باید توسط برنامه مدیریت شوند می‌دهید.
  • کاربر به برنامه شما اجازه می‌دهد حساب‌های Google Ads او را ازطرف او مدیریت کند، بنابراین به برنامه اجازه دسترسی به همه حساب‌های Google Ads را می‌دهد.

ازآنجایی‌که فقط یک کاربر درگیر است، می‌توانید به‌جای ساختن جریان اصالت‌سنجی کاربر OAuth 2.0 خودتان، به ابزارهایی مانند gcloud CLI یا نمونه کد GenerateUserCredential تکیه کنید.

مورد استفاده مرتبط برای این گردش کار زمانی است که حساب‌های شما ازطریق تعداد کمی ورود به سیستم کاربر (مثلاً ۳ تا ۴ کاربر) قابل‌دسترسی باشد، بنابراین تلاش توسعه برای ساختن گردش کار اصیل‌سازی چندکاربری OAuth کامل در مقایسه با تلاش برای دریافت مجوز برای ۳ تا ۴ کاربر بااستفاده از ابزار خط فرمان مثل gcloud CLI توجیهی ندارد.

معایب

این جریان درمقایسه با گردش کار حساب سرویس چند عیب دارد:

  1. گردش کار اصالت‌سنجی کاربر مستلزم این است که شناسه و رمز مشتری OAuth 2.0 را در «کنسول Google Cloud» ایجاد کنید، که به مراحل پیکربندی بیشتری نسبت به ایجاد حساب سرویس و کلید نیاز دارد.
  2. اگر کاربر مجاز تیم یا شرکت را ترک کند، درصورت برداشتن کاربر از حساب‌هایتان یا غیرفعال کردن حساب کاربر، ممکن است برنامه شما از کار بیفتد. حساب‌های سرویس به کاربران فردی مرتبط نیستند، بنابراین از این خطر اجتناب می‌شود.
  3. کاربری که حساب Google Ads را مجاز می‌کند باید گذرکلیدها را فعال کند تا از «حساب Google» خود دربرابر به‌خطر افتادن به‌دلیل امنیت ضعیف، بدافزار، یا فیشینگ محافظت کند. حساب‌های سرویس برای فعال کردن گذرکلید الزامی نیستند و دربرابر این مشکل آسیب‌پذیری کمتری دارند زیرا برخی‌از این روش‌های حمله مستقیماً برای آن‌ها کاربرد ندارد.

تولید کردن اطلاعات کاربری

  1. برای برنامه خود صفحه کسب رضایت OAuth را پیکربندی کنید و https://www.googleapis.com/auth/adwords را به‌عنوان محدوده OAuth 2.0 اضافه کنید. برای جزئیات بیشتر، راه‌اندازی صفحه کسب رضایت OAuth را ببینید.

  2. با دنبال کردن دستورالعمل‌ها، شناسه کارخواه و رمز کارخواه ایجاد کنید. پس‌از ایجاد کلاینت OAuth 2.0، فایل JSON کلاینت را با کلیک کردن روی دکمه بارگیری JSON در گفتگوی تأیید بارگیری کنید. فایل را با نام credentials.json ذخیره کنید.

  3. حساب کاربری‌ای را که به همه حساب‌های Google Ads موردنظرتان برای مدیریت بااستفاده از برنامه‌تان دسترسی دارد شناسایی کنید. اگر حساب‌هایی وجود دارد که دسترسی ندارند، دسترسی حساب را به آن کاربر اعطا کنید.

  4. 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
    
  5. با اجرای ابزار gcloud CLI با فایل credentials.json از مرحله قبلی، یک ژتون بازآوری OAuth 2.0 تولید کنید. ارسال --client-id-file الزامی است تا ژتون بازآوری تحت پروژه «کنسول Google API» شما صادر شود، نه پروژه پیش‌فرض gcloud CLI:

    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
  6. فرمان gcloud پنجره ورود به سیستم «حساب Google» را در پنجره مرورگر جدیدی باز می‌کند و شما را در مراحل اصالت‌سنجی OAuth 2.0 راهنمایی می‌کند. مطمئن شوید به‌عنوان کاربری که در مراحل قبلی انتخاب کردید به سیستم وارد شوید. اگر برنامه‌تان تأیید نشده باشد، ممکن است صفحه هشدار ببینید. در این موارد، کلیک کردن روی پیوند پیشرفته و کلیک کردن روی گزینه رفتن به PROJECT_NAME (ناامن) بی‌خطر است.

  7. پس‌از درستی‌سنجی دامنه‌ها، روی دکمه ادامه کلیک کنید تا اجازه دهید. مرورگر به 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"
    }
    

پیکربندی کتابخانه کارخواه

برگه مربوط به زبان برنامه‌نویسی‌تان را انتخاب کنید تا دستورالعمل‌های مربوط به نحوه پیکربندی کتابخانه کارخواه را ببینید. اگر کاربر مجاز شما ازطریق حساب مدیر Google Ads به حساب‌های مشتری دسترسی دارد، login-customer-id (یا loginCustomerId) را روی شناسه مشتری ۱۰ رقمی آن حساب مدیر بدون خط تیره تنظیم کنید.

جاوا

کلیدهای زیر را در فایل ads.properties پیکربندی کنید.

api.googleads.clientId=INSERT_OAUTH2_CLIENT_ID_HERE
api.googleads.clientSecret=INSERT_OAUTH2_CLIENT_SECRET_HERE
api.googleads.refreshToken=INSERT_OAUTH2_REFRESH_TOKEN_HERE
api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

برای گزینه‌های بیشتر، راهنمای پیکربندی را ببینید.

دات نت

اعتبارنامه‌های OAuth 2.0 را در نمونه GoogleAdsConfig تنظیم کنید و از آن برای مقداردهی اولیه شیء GoogleAdsClient استفاده کنید.

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

کلیدهای زیر را در فایل google-ads.yaml پیکربندی کنید.

client_id: INSERT_OAUTH2_CLIENT_ID_HERE
client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE
refresh_token: INSERT_OAUTH2_REFRESH_TOKEN_HERE
login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE
use_proto_plus: True

برای گزینه‌های بیشتر، راهنمای پیکربندی را ببینید.

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"

برای گزینه‌های بیشتر، راهنمای پیکربندی را ببینید.

Ruby

کلیدهای زیر را در فایل google_ads_config.rb پیکربندی کنید.

Google::Ads::GoogleAds::Config.new do |c|
  c.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
  c.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
  c.refresh_token = 'INSERT_OAUTH2_REFRESH_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://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"
}