חשבונות שירות

במדריך הזה מוסבר איך לגשת אל Google Ads API באמצעות חשבונות שירות.

חשבון שירות הוא חשבון ששייך לאפליקציה ולא למשתמש קצה ספציפי. חשבונות שירות מאפשרים אינטראקציות בין שרתים בין אפליקציית אינטרנט לבין שירות Google. האפליקציה שולחת קריאות ל-Google APIs בשם חשבון השירות, כך שהמשתמשים לא מעורבים באופן ישיר.

חשבונות שירות משתמשים בתהליך OAuth 2.0 שלא דורש הרשאה של בן אדם, אלא בקובץ מפתח שהגישה אליו מותרת רק לאפליקציה שלכם.

השימוש בחשבונות שירות מספק שני יתרונות עיקריים:

  • ההרשאה לגישה ל-Google API מתבצעת כשלב בהגדרה, וכך נמנעים מהסיבוכים שקשורים לזרימות אחרות של OAuth 2.0 שדורשות אינטראקציות עם המשתמש.

  • תהליך האימות של OAuth 2.0 מאפשר לאפליקציה להתחזות למשתמשים אחרים אם יש צורך בכך.

יש שתי דרכים לבצע הרשאה באמצעות חשבונות שירות: ישירות או באמצעות התחזות (לא מומלץ).

[מומלץ] הרשאה עם גישה ישירה לחשבון

באפשרות הזו, אתם נותנים לחשבון השירות גישה ישירה לחשבון Google Ads.

הגדרת גישה לחשבון

  1. מתחילים ביצירת חשבון שירות ופרטי כניסה.

    מורידים את המפתח של חשבון השירות בפורמט JSON ורושמים את המזהה ואת כתובת האימייל של חשבון השירות.

  2. נכנסים לחשבון Google Ads כאדמין. עוברים אל Admin > Access and security (ניהול > אבטחה וגישה).

  3. לוחצים על הלחצן + בכרטיסייה משתמשים.

  4. מקלידים את כתובת האימייל של חשבון השירות בתיבת הקלט Email (אימייל). בוחרים את רמת הגישה המתאימה לחשבון ולוחצים על הלחצן הוספת חשבון. חשוב לדעת שרמות הגישה 'אימייל' ו'אדמין' לא נתמכות בחשבונות שירות.

  5. חשבון השירות מקבל גישה.

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

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

Java

מגדירים את הנתיב של קובץ ה-JSON עם המפתח הפרטי בהגדרות. אם אתם משתמשים בקובץ ads.properties, מוסיפים את השורות הבאות:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

פרטים נוספים זמינים במדריך להגדרה.

‎.NET

מגדירים את המפתחות הבאים ב-App.config / Web.config. פרטים נוספים זמינים במדריך להגדרה.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

Python

מגדירים את הנתיב של קובץ ה-JSON עם המפתח הפרטי בהגדרות. אם משתמשים ב-google-ads.yaml file, במחרוזת 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. פרטים נוספים זמינים במדריך להגדרה.

; 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

[לא מומלץ] הרשאה באמצעות התחזות

באפשרות הזו, אתם מתחזים למשתמש שיש לו גישה לחשבון Google Ads באמצעות חשבון השירות. הגישה הזו רלוונטית רק ללקוחות Google Workspace. חשבון שירות יכול להתחזות רק למשתמשים (כתובות אימייל) באותו Google Workspace.

דרישות מוקדמות

הגדרת גישה לחשבון שירות

התחזות למשתמש נשלטת רק ברמת הדומיין, ולכן כדי להשתמש בחשבונות שירות ובזרימת הצהרות עם Google OAuth 2.0, צריך לרשום דומיין משלכם ב-Google Workspace. לאחר מכן, האפליקציה והמשתמשים שלה יכולים להתחזות לכל משתמש בדומיין.

  1. מתחילים ביצירת חשבון שירות ופרטי כניסה.

    מורידים את המפתח של חשבון השירות בפורמט JSON ורושמים את מזהה חשבון השירות.

  2. משתפים עם האדמין של הדומיין את המזהה של חשבון השירות ואת היקף הגישה של Google Ads API ‏(https://www.googleapis.com/auth/adwords).

    מבקשים מאדמין הדומיין להעניק הרשאה ברמת הדומיין לחשבון השירות שלכם.

  3. אם אתם מנהלי הדומיין, תוכלו להשלים את ההוראות שבמרכז העזרה.

עכשיו אפשר להשתמש בחשבון השירות כדי לגשת לחשבון Google Ads באמצעות תהליך ההצהרה של OAuth 2.0.

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

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

Java

מגדירים בהגדרות את הנתיב של קובץ ה-JSON של המפתח הפרטי ואת מזהה חשבון ההרשאה. אם אתם משתמשים בקובץ ads.properties, מוסיפים את השורות הבאות:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser=IMPERSONATED_EMAIL

פרטים נוספים זמינים במדריך להגדרה.

‎.NET

מגדירים את המפתחות הבאים ב-App.config / Web.config. פרטים נוספים זמינים במדריך ההגדרה.

<add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
<add key="OAuth2SecretsJsonPath" value="JSON_KEY_FILE_PATH" />

<!-- Supply the email address of the user to impersonate. -->
<add key="OAuth2PrnEmail" value="IMPERSONATED_EMAIL" />

Python

מגדירים בהגדרה את הנתיב של קובץ ה-JSON של המפתח הפרטי ואת כתובת האימייל של החשבון שממנו מתבצעת ההתחזות. אם משתמשים ב-google-ads.yaml file, במחרוזת YAML או ב-dict, מוסיפים את הקוד הבא:

json_key_file_path: JSON_KEY_FILE_PATH
impersonated_email: IMPERSONATED_EMAIL

אם אתם משתמשים במשתני סביבה, מוסיפים את השורות הבאות להגדרות או לסביבה של Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

PHP

מגדירים את המפתחות הבאים ב-google_ads_php.ini. פרטים נוספים זמינים במדריך להגדרה.

; For service account flow.
jsonKeyFilePath = "JSON_KEY_FILE_PATH"
scopes = "https://www.googleapis.com/auth/adwords"
impersonatedEmail = "IMPERSONATED_EMAIL"

Ruby

מגדירים את המפתחות הבאים ב-google_ads_config.rb.

c.keyfile = 'JSON_KEY_FILE_PATH'
c.impersonate = 'IMPERSONATED_EMAIL'

Perl

מגדירים את הנתיב של קובץ ה-JSON של המפתח הפרטי ואת מזהה חשבון ההרשאה בהגדרות. אם אתם משתמשים בקובץ googleads.properties, מוסיפים את השורה הבאה:

jsonKeyFilePath=JSON_KEY_FILE_PATH
impersonatedEmail=IMPERSONATED_EMAIL

אם אתם משתמשים במשתני סביבה, מוסיפים את השורות הבאות להגדרות או לסביבה של Bash:

export GOOGLE_ADS_JSON_KEY_FILE_PATH=JSON_KEY_FILE_PATH
export GOOGLE_ADS_IMPERSONATED_EMAIL=IMPERSONATED_EMAIL

חששות לגבי אבטחה

לחשבון השירות יש הרשאות גישה ברמת הדומיין לדומיין Google Workspace שלכם, ולכן חשוב להגן על קובץ המפתח שמאפשר לחשבון השירות לגשת לשירותי Google שהוא מורשה לגשת אליהם. זה נכון במיוחד כי לחשבון השירות הזה יש אפשרות להתחזות לכל משתמש בדומיין.

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