בתהליך עבודה של אימות משתמשים מרובים, אתם יוצרים תהליך OAuth משלכם כדי לאמת את המשתמשים. במאמרי העזרה של Google Identity מפורטים כמה סוגי אפליקציות, וגם הגדרות הפרויקט ב-Google API Console שנדרשות כדי לתמוך בכל סוג אפליקציה. כל סוגי האפליקציות האלה נתמכים ב-Google Ads API. הפרטים הטכניים הנוספים שחשוב לזכור:
מגדירים את האפליקציה כך שתבקש את היקף ההרשאות הבא של OAuth 2.0:
https://www.googleapis.com/auth/adwordsיכול להיות שהאפליקציה תצטרך לבצע קריאות ל-API בשם המשתמש כשהוא במצב אופליין. תרחיש נפוץ הוא הורדת מדדי החשבון אופליין כדי ליצור דוחות ולבצע ניתוח של החשבון. לכן מומלץ לבקש גישה אופליין ל-OAuth.
משלימים את תהליך האימות של אפליקציית OAuth כדי לאמת את האפליקציה.
סקירה כללית של תהליך העבודה
הטמעה של תהליך עבודה לאימות של משתמשים מרובים כוללת שלושה שלבים עיקריים:
- הפניית משתמשים למסך ההסכמה של OAuth: מפנים כל משתמש לנקודת הקצה של ההרשאה של Google OAuth 2.0, ומבקשים את היקף ההרשאות
https://www.googleapis.com/auth/adwordsוגישה אופליין. המשתמשים צריכים לבצע אימות באמצעות מפתח גישה כדי להשלים את תהליך ההרשאה וליצור טוקן רענון. - החלפת קוד ההרשאה בטוקנים: אחרי שהמשתמש נותן הרשאה, מתעדים את קוד ההרשאה שהוחזר ומחליפים אותו בטוקן גישה ובטוקן רענון.
- אחסון טוקנים והפעלת הלקוח בזמן הריצה: מאחסנים באופן מאובטח את טוקן הרענון של כל משתמש במאגר הנתונים, ומעבירים את פרטי הכניסה של המשתמש כשמפעילים את המכונה של
GoogleAdsClientבזמן הריצה.
הגדרת ספריית הלקוח
אחרי שנותנים הרשאה למשתמש ומקבלים את פרטי הכניסה ל-OAuth 2.0, אפשר להגדיר את ספריית הלקוח לפי ההוראות בכרטיסייה שמתאימה לשפת התכנות.
Java
אתם יכולים להפעיל את המכונה של GoogleAdsClient בזמן הריצה, באמצעות פרטי הכניסה שקיבלתם מהמשתמש שבחשבונות שלו אתם מבצעים קריאות ל-API.
UserCredentials credentials =
UserCredentials.newBuilder()
.setClientId("INSERT_OAUTH2_CLIENT_ID_HERE")
.setClientSecret("INSERT_OAUTH2_CLIENT_SECRET_HERE")
.setRefreshToken("INSERT_OAUTH2_REFRESH_TOKEN_HERE")
.build();
// Creates a GoogleAdsClient with the provided credentials.
GoogleAdsClient client =
GoogleAdsClient.newBuilder()
// Sets the OAuth credentials which provide Google Ads account
// access.
.setCredentials(credentials)
// Optional: sets the login customer ID.
.setLoginCustomerId(Long.valueOf("INSERT_LOGIN_CUSTOMER_ID_HERE"))
.build();
אפשרויות נוספות מפורטות במדריך ההגדרה.
.NET
אתם יכולים להפעיל את המכונה של GoogleAdsClient בזמן הריצה, באמצעות פרטי הכניסה שקיבלתם מהמשתמש שבחשבונות שלו אתם מבצעים קריאות ל-API.
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
אתם יכולים להפעיל את המכונה של GoogleAdsClient בזמן הריצה, באמצעות פרטי הכניסה שקיבלתם מהמשתמש שבחשבונות שלו אתם מבצעים קריאות ל-API.
from google.ads.googleads.client import GoogleAdsClient
credentials = {
"login_customer_id": "INSERT_LOGIN_CUSTOMER_ID_HERE",
"refresh_token": "INSERT_OAUTH2_REFRESH_TOKEN_HERE",
"client_id": "INSERT_OAUTH2_CLIENT_ID_HERE",
"client_secret": "INSERT_OAUTH2_CLIENT_SECRET_HERE",
"use_proto_plus": True,
}
client = GoogleAdsClient.load_from_dict(credentials)
אפשרויות נוספות מפורטות במדריך ההגדרה.
PHP
אתם יכולים להפעיל את המכונה של GoogleAdsClient בזמן הריצה, באמצעות פרטי הכניסה שקיבלתם מהמשתמש שבחשבונות שלו אתם מבצעים קריאות ל-API.
$oAuth2Credential = (new OAuth2TokenBuilder())
->withClientId('INSERT_OAUTH2_CLIENT_ID_HERE')
->withClientSecret('INSERT_OAUTH2_CLIENT_SECRET_HERE')
->withRefreshToken('INSERT_OAUTH2_REFRESH_TOKEN_HERE')
->build();
$googleAdsClient = (new GoogleAdsClientBuilder())
->withOAuth2Credential($oAuth2Credential)
->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
->build();
אפשרויות נוספות מפורטות במדריך ההגדרה.
Ruby
אתם יכולים להפעיל את המכונה של GoogleAdsClient בזמן הריצה, באמצעות פרטי הכניסה שקיבלתם מהמשתמש שבחשבונות שלו אתם מבצעים קריאות ל-API.
client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|
config.client_id = 'INSERT_OAUTH2_CLIENT_ID_HERE'
config.client_secret = 'INSERT_OAUTH2_CLIENT_SECRET_HERE'
config.refresh_token = 'INSERT_OAUTH2_REFRESH_TOKEN_HERE'
config.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
end
אפשרויות נוספות מפורטות במדריך ההגדרה.
Perl
אתם יכולים להפעיל את המכונה של GoogleAdsClient בזמן הריצה, באמצעות פרטי הכניסה שקיבלתם מהמשתמש שבחשבונות שלו אתם מבצעים קריאות ל-API.
my $api_client = Google::Ads::GoogleAds::Client->new({
login_customer_id => "INSERT_LOGIN_CUSTOMER_ID_HERE"
});
my $oauth2_handler = $api_client->get_oauth2_applications_handler();
$oauth2_handler->set_client_id("INSERT_OAUTH2_CLIENT_ID_HERE");
$oauth2_handler->set_client_secret("INSERT_OAUTH2_CLIENT_SECRET_HERE");
$oauth2_handler->set_refresh_token("INSERT_OAUTH2_REFRESH_TOKEN_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אתם יכולים להשתמש בטוקן הגישה בקריאות ל-API. בדוגמה הבאה מוסבר איך להריץ דוח קמפיינים באמצעות השיטה 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"
}