בדומה לתהליך העבודה של חשבון השירות, תהליך האימות של משתמש יחיד משתמש בתכונות ההרשאה וניהול המשתמשים שמציע ממשק המשתמש של Google Ads כדי להעניק לאפליקציה גישה לכל החשבונות הנדרשים. תהליך העבודה הזה של האימות כולל שני שלבים:
- אתם מעניקים למשתמש אחד גישה לכל חשבונות Google Ads שהאפליקציה אמורה לנהל.
- המשתמש מאשר לאפליקציה לנהל את חשבונות Google Ads שלו בשמו, וכך מעניק לאפליקציה גישה לכל חשבונות Google Ads.
מכיוון שמדובר במשתמש אחד בלבד, אפשר להסתמך על כלים כמו gcloud CLI או על דוגמת הקוד GenerateUserCredential במקום ליצור תהליך אימות משתמש משלכם באמצעות OAuth 2.0.
תרחיש שימוש קשור לתהליך העבודה הזה הוא כשניתן לגשת לחשבונות שלכם באמצעות מספר קטן של התחברויות משתמש (למשל 3-4 משתמשים), ולכן מאמץ הפיתוח לבניית תהליך עבודה מלא של אימות משתמש OAuth לא מוצדק בהשוואה למאמץ שנדרש כדי לקבל הרשאה ל-3-4 משתמשים באמצעות כלי של שורת פקודה כמו gcloud CLI.
חסרונות
יש כמה חסרונות לתהליך הזה בהשוואה לתהליך העבודה של חשבון השירות:
- תהליך העבודה של אימות משתמשים מחייב יצירה של מזהה לקוח וסוד לקוח ב-OAuth 2.0 ב-Google Cloud Console, ולכן הוא כולל יותר שלבי הגדרה מאשר יצירה של חשבון שירות ומפתח.
- יכול להיות שהאפליקציה שלכם תצטרך לעבור תהליך אימות נוסף של אפליקציות ב-Google Cloud.
- אם המשתמש המורשה עוזב את הצוות או החברה, יכול להיות שהאפליקציה תפסיק לפעול אם תסירו את המשתמש מהחשבונות שלכם או תשביתו את חשבון המשתמש. חשבונות שירות לא מקושרים למשתמשים ספציפיים, ולכן הסיכון הזה לא קיים.
- המשתמש שמאשר את חשבון Google Ads צריך לנקוט אמצעי זהירות נוספים, כמו הפעלת אימות דו-שלבי, כדי להגן על חשבון Google שלו מפני פריצה עקב אבטחה לקויה, תוכנות זדוניות או פישינג. חשבונות שירות פגיעים פחות לבעיה הזו, כי חלק משיטות התקיפה האלה לא חלות עליהם ישירות.
יצירת פרטי כניסה
פועלים לפי ההוראות כדי להגדיר מסך הסכמה ל-OAuth עבור האפליקציה ולהוסיף את
https://www.googleapis.com/auth/adwords
כהיקף OAuth 2.0.יוצרים מזהה לקוח וסוד לקוח לפי ההוראות. אחרי שיוצרים את לקוח OAuth 2.0, מורידים את קובץ ה-JSON של הלקוח. לשם כך, קודם לוחצים על סמל ההורדה של לקוח OAuth ואז על הלחצן DOWNLOAD JSON (הורדת JSON) במסך הבא. שומרים את הקובץ בשם
credentials.json
.מזהים חשבון משתמש שיש לו גישה לכל חשבונות Google Ads שרוצים לנהל באמצעות האפליקציה. אם יש חשבונות שחסרה להם גישה, פועלים לפי ההוראות כדי להעניק את הגישה הנדרשת.
מורידים ומתקינים את ה-CLI של gcloud. אחרי ההתקנה, מריצים את הפקודה
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
כדי ליצור טוקן רענון של OAuth 2.0, מפעילים את כלי ה-CLI של 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>קובץ
credentials.json
הוא מהשלב הקודם.הפקודה
gcloud
פותחת חלון כניסה לחשבון Google בחלון דפדפן חדש, ומעבירה אתכם בשלבי האימות של OAuth 2.0. חשוב לוודא שנכנסתם לחשבון בתור המשתמש שבחרתם בשלבים הקודמים. אם האפליקציה לא אומתה, יכול להיות שיוצג מסך אזהרה. במקרים כאלה, אפשר ללחוץ על הקישור הצגת אפשרויות מתקדמות ואז על האפשרות מעבר אל PROJECT_NAME (לא מאומת).אחרי שמאמתים את היקפי ההרשאות, לוחצים על הלחצן המשך כדי להעניק את ההרשאה. הדפדפן עובר אל
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" }
הגדרת ספריית לקוח
בוחרים את הכרטיסייה שמתאימה לשפת התכנות כדי לקבל הוראות להגדרת ספריית הלקוח.
Java
מגדירים את המפתחות הבאים בקובץ 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
אפשרויות נוספות מפורטות במדריך ההגדרה.
.NET
אפשר לאתחל את המופע GoogleAdsClient
בזמן הריצה באמצעות פרטי הכניסה שהתקבלו מהמשתמש שהחשבונות שלו מבצעים קריאות ל-API.
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);
אפשרויות נוספות מפורטות במדריך ההגדרה.
Python
מגדירים את המפתחות הבאים בקובץ 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"
אפשרויות נוספות מפורטות במדריך ההגדרה.
Ruby
מגדירים את המפתחות הבאים בקובץ 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
אפשרויות נוספות מפורטות במדריך ההגדרה.
Perl
מגדירים את המפתחות הבאים בקובץ 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://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"
}