תהליך עבודה של אימות משתמשים מרובים

בתהליך העבודה של אימות משתמשים מרובים, אתם יוצרים תהליך OAuth משלכם כדי לאמת את המשתמשים. במסמכי Google Identity מפורטים סוגים שונים של אפליקציות, וגם הגדרות הפרויקט ב-Google Cloud Console שנדרשות כדי לתמוך בסוג האפליקציה. כל סוגי האפליקציות האלה נתמכים על ידי Google Ads API. פרטים טכניים נוספים שחשוב לזכור:

  1. כדי לגשת אל Google Ads API, צריך להגדיר את האפליקציה כך שתבצע אימות להיקף הבא:

    https://www.googleapis.com/auth/adwords
    
  2. יכול להיות שהאפליקציה תצטרך לבצע קריאות ל-API בשם המשתמש בזמן שהוא במצב אופליין. תרחיש נפוץ הוא הורדה של מדדי חשבון במצב אופליין כדי ליצור דוחות ולבצע ניתוח של החשבון. לכן מומלץ לבקש [גישה אופליין ל-OAuth][oauth-offline-access].

  3. צריך לעבור את [תהליך האימות של אפליקציית OAuth][app-verification] ולקבל אישור לאפליקציה.

הגדרת ספריית לקוח

אחרי שמאשרים את המשתמש ומקבלים פרטי כניסה מסוג OAuth 2.0, אפשר להגדיר את ספריית הלקוח לפי ההוראות בכרטיסייה שמתאימה לשפת התכנות שלכם.

Java

אפשר לאתחל את המופע של GoogleAdsClient בזמן הריצה באמצעות פרטי הכניסה שהתקבלו מהמשתמשים שהחשבונות שלהם מבוצעות קריאות ל-API.

UserCredentials credentials =
    UserCredentials.newBuilder()
        .setClientId(OAUTH_CLIENT_ID)
        .setClientSecret(OAUTH_CLIENT_SECRET)
        .setRefreshToken(REFRESH_TOKEN)
        .build();

// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
    GoogleAdsClient.newBuilder()
        // Sets the developer token which enables API access.
        .setDeveloperToken(DEVELOPER_TOKEN)
        // Sets the OAuth credentials which provide Google Ads account access.
        .setCredentials(credentials)
        // Optional: sets the login customer ID.
        .setLoginCustomerId(Long.valueOf(LOGIN_CUSTOMER_ID))
        .build();
``` See the [configuration guide][java-config-guide] for additional options.

‎.NET

אפשר לאתחל את המופע של GoogleAdsClient בזמן הריצה באמצעות פרטי הכניסה שהתקבלו מהמשתמשים שהחשבונות שלהם מבוצעות קריאות ל-API.

GoogleAdsConfig googleAdsConfig = new GoogleAdsConfig()
{
    DeveloperToken = DEVELOPER_TOKEN,
    LoginCustomerId = LOGIN_CUSTOMER_ID,
    OAuth2ClientId = OAUTH_CLIENT_ID,
    OAuth2ClientSecret = OAUTH_CLIENT_SECRET,
    OAuth2RefreshToken = REFRESH_TOKEN,
};

GoogleAdsClient googleAdsClient = new GoogleAdsClient(googleAdsConfig);

אפשרויות נוספות מפורטות ב[מדריך ההגדרה][dotnet-config-guide].

Python

אפשר לאתחל את המופע של GoogleAdsClient בזמן הריצה באמצעות פרטי הכניסה שהתקבלו מהמשתמשים שהחשבונות שלהם מבוצעות קריאות ל-API.

from google.ads.googleads.client import GoogleAdsClient

credentials = {
    "developer_token": "INSERT_DEVELOPER_TOKEN_HERE",
    "login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
    "refresh_token": "REFRESH_TOKEN",
    "client_id": "OAUTH_CLIENT_ID",
    "client_secret": "OAUTH_CLIENT_SECRET"}

client = GoogleAdsClient.load_from_dict(credentials)

אפשרויות נוספות מפורטות ב[מדריך ההגדרה][python-config-guide].

PHP

אפשר לאתחל את המופע של GoogleAdsClient בזמן הריצה באמצעות פרטי הכניסה שהתקבלו מהמשתמשים שהחשבונות שלהם מבוצעות קריאות ל-API.

$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_CLIENT_ID_HERE')
->withClientSecret('INSERT_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withDeveloperToken('INSERT_DEVELOPER_TOKEN_HERE')
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

אפשרויות נוספות מפורטות ב[מדריך ההגדרה][php-config-guide].

Ruby

אפשר לאתחל את המופע של GoogleAdsClient בזמן הריצה באמצעות פרטי הכניסה שהתקבלו מהמשתמשים שהחשבונות שלהם מבוצעות קריאות ל-API.

  client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
    config.client_id = 'INSERT_CLIENT_ID_HERE'
    config.client_secret = 'INSERT_CLIENT_SECRET_HERE'
    config.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
    config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
    config.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
  end

אפשרויות נוספות מפורטות ב[מדריך ההגדרה][ruby-config-guide].

Perl

אפשר לאתחל את המופע של GoogleAdsClient בזמן הריצה באמצעות פרטי הכניסה שהתקבלו מהמשתמשים שהחשבונות שלהם מבוצעות קריאות ל-API.

my $api_client = Google::Ads::GoogleAds::Client->new({
  developer_token   => "INSERT_DEVELOPER_TOKEN_HERE",
  login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});

my $oauth2_applications_handler = $api_client->get_oauth2_applications_handler();
$oauth2_applications_handler->set_client_id("INSERT_CLIENT_ID");
$oauth2_applications_handler->set_client_secret("INSERT_CLIENT_SECRET");
$oauth2_applications_handler->set_refresh_token("INSERT_REFRESH_TOKEN");

אפשרויות נוספות מפורטות ב[מדריך ההגדרה][perl-config-guide].

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://www.googleapis.com/oauth2/v3/token

עכשיו אפשר להשתמש באסימון הגישה בקריאות ל-API. בדוגמה הבאה מוצג אופן ההפעלה של דוח קמפיינים באמצעות השיטה GoogleAdsService.SearchStream כדי לאחזר את הקמפיינים בחשבון. במדריך הזה לא מוסבר בפירוט על דיווח.

curl -i -X POST https://googleads.googleapis.com/v24/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"
}

[oauth-offline-access]: /identity/protocols/oauth2/web-server#offline [app-verification]: //support.google.com/cloud/answer/13461325 [dotnet-config-guide]: /google-ads/api/docs/client-libs/dotnet/configuration [java-config-guide]: /google-ads/api/docs/client-libs/java/config-file [python-config-guide]: /google-ads/api/docs/client-libs/python/configuration [php-config-guide]: /google-ads/api/docs/client-libs/php/configuration [ruby-config-guide]: /google-ads/api/docs/client-libs/ruby/configuration [perl-config-guide]: /google-ads/api/docs/client-libs/perl/configuration