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

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

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

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

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

معایب

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

  • گردش کار اصالت‌سنجی کاربر مستلزم این است که شناسه مشتری OAuth 2.0 و کلید مخفی در «کنسول Google API» ایجاد کنید که این کار به مراحل پیکربندی بیشتری نسبت به ایجاد حساب سرویس و کلید نیاز دارد.
  • اگر کاربر مجاز تیم یا شرکت را ترک کند، درصورت برداشتن کاربر از حساب‌هایتان یا غیرفعال کردن حساب کاربری، ممکن است برنامه‌تان از کار بیفتد. حساب‌های سرویس به کاربران فردی مرتبط نیستند، بنابراین این خطر وجود ندارد.
  • برای محافظت دربرابر به‌خطر افتادن حساب ازطریق بدافزار یا رمزگیری، کاربری که حساب Google Ads را مجاز می‌کند باید هنگام تولید کردن ژتون‌های بازآوری OAuth 2.0 با گذرکلید اصالت‌سنجی کند. حساب‌های سرویس به گذرکلید نیاز ندارند و دربرابر حملات هدفمند به کاربر، مثل رمزگیری، آسیب‌پذیری کمتری دارند.

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

  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:

    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

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

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://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"
}