במדריך הזה מוסבר איך לגשת ל-Google Ads API באמצעות חשבונות שירות.
חשבון שירות הוא חשבון ששייך לאפליקציה שלכם, ולא למשתמש קצה ספציפי. חשבונות שירות משתמשים בהרשאה באמצעות OAuth 2.0 שלא דורשת אישור אנושי, אלא משתמשת בקובץ מפתח שרק לאפליקציה שלכם יש גישה אליו.
לשימוש בחשבונות שירות יש שני יתרונות מרכזיים:
כדי להעניק ל-Google Ads API הרשאת גישה לחשבונות Google Ads, צריך לבצע שלב הגדרה שבו משתמשים בתכונות של ההרשאה וניהול החשבון שזמינות בממשק המשתמש של Google Ads. כך המפתחים לא צריכים ליצור הרשאה באמצעות OAuth 2.0 ולהתמודד עם סיבוכים שקשורים לאינטראקציה עם המשתמשים, לאחסון פרטי הכניסה של המשתמשים ולניהול אסימונים.
ההרשאה לגישה לחשבונות Google Ads לא קשורה לפרטי הכניסה של משתמשים ספציפיים. זה יכול להיות שימושי במקרים שבהם ההרשאה הזו צפויה להימשך גם אם העובד שנתן את ההרשאה לגישה במקור עוזב את הצוות או את החברה.
הגדרת גישה לחשבון
קודם כל, יוצרים חשבון שירות ופרטי כניסה.
מורידים את המפתח של חשבון השירות בפורמט JSON, ורושמים את המזהה ואת כתובת האימייל של חשבון השירות.
נכנסים לחשבון Google Ads כאדמין. עוברים לקטע ניהול > אבטחה וגישה.
לוחצים על הכפתור + בכרטיסייה משתמשים.
מקלידים את כתובת האימייל של חשבון השירות בתיבת הקלט Email. בוחרים את רמת הגישה המתאימה לחשבון (שימו לב שחשבונות שירות לא תומכים ברמת הגישה אימייל בלבד) ולוחצים על הכפתור הוספת חשבון.
לחשבון השירות ניתנת גישה.
אופציונלי: כברירת מחדל, אי אפשר לתת הרשאת אדמין לחשבון שירות. פעלו לפי העיקרון של הרשאות מינימליות ותנו גישת אדמין רק אם הקריאות ל-API דורשות זאת. כדי לשדרג את הגישה:
- בעמודה Access level, לוחצים על החץ לתפריט נפתח לצד רמת הגישה של חשבון השירות.
- בוחרים באפשרות אדמין מהרשימה הנפתחת.
הגדרת ספריית הלקוח
כדי לקבל הוראות להגדרת ספריית הלקוח, בחרו את הכרטיסייה שמתאימה לשפת התכנות שלכם. אם חשבון השירות שלכם ניגש לחשבונות לקוח דרך חשבון ניהול ב-Google Ads, צריך להגדיר גם את login-customer-id (או loginCustomerId) למספר הלקוח בן 10 הספרות של חשבון הניהול הזה בלי מקפים (ראו מזהה לקוח לצורך התחברות).
Java
מגדירים את הנתיב של קובץ ה-JSON של המפתח הפרטי בהגדרות. אם משתמשים בקובץ ads.properties, צריך להוסיף את הקוד הבא:
api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
פרטים נוספים זמינים במדריך להגדרה.
.NET
מגדירים את OAuth2Mode ו-OAuth2SecretsJsonPath במופע של GoogleAdsConfig ומשתמשים בו כדי להפעיל את האובייקט GoogleAdsClient.
GoogleAdsConfig config = new GoogleAdsConfig()
{
OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
OAuth2SecretsJsonPath = "JSON_KEY_FILE_PATH",
// ...
};
GoogleAdsClient client = new GoogleAdsClient(config);
פרטים נוספים זמינים במדריך להגדרה.
Python
מגדירים את הנתיב של קובץ ה-JSON של המפתח הפרטי בהגדרות. אם משתמשים בקובץ google-ads.yaml, במחרוזת YAML או ב-dict, צריך להוסיף את הקוד הבא:
json_key_file_path: JSON_KEY_FILE_PATH
אם אתם משתמשים במשתני סביבה, הוסיפו את הקוד הבא להגדרות או לסביבה של Bash:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
פרטים נוספים זמינים במדריך להגדרה.
PHP
מגדירים את המפתחות הבאים בקובץ google_ads_php.ini.
[OAUTH2]
; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
פרטים נוספים זמינים במדריך להגדרה.
Ruby
מגדירים את המפתחות הבאים בקובץ google_ads_config.rb.
c.keyfile = 'JSON_KEY_FILE_PATH'
פרטים נוספים זמינים במדריך להגדרה.
Perl
מגדירים את הנתיב של קובץ ה-JSON של המפתח הפרטי בהגדרות. אם אתם משתמשים בקובץ googleads.properties, הוסיפו את הקוד הבא:
jsonKeyFilePath=JSON_KEY_FILE_PATH
אם אתם משתמשים במשתני סביבה, הוסיפו את הקוד הבא להגדרות או לסביבה של Bash:
export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
פרטים נוספים זמינים במדריך להגדרה.
curl
קודם כל, מגדירים את חשבון השירות כפרטי הכניסה הפעילים ב-CLI של gcloud.
gcloud auth login --cred-file=JSON_KEY_FILE_PATHבשלב הבא, מאחזרים טוקן גישה מסוג OAuth 2.0 ל-Google Ads API.
gcloud auth \
print-access-token \
--scopes='https://www.googleapis.com/auth/adwords'אתם יכולים להשתמש בטוקן הגישה בקריאות ל-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"
}