אימות והרשאה

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

הסבר על מודל הגישה של Google Ads

כדי לעבוד בצורה יעילה עם Google Ads API, חשוב להבין איך פועל מודל הגישה של Google Ads. מומלץ מאוד לקרוא את המדריך למודל הגישה של Google Ads.

תהליכי עבודה של OAuth

יש שלושה תהליכי עבודה נפוצים שמשמשים לעבודה עם Google Ads API.

תהליך העבודה של חשבון שירות

זהו תהליך העבודה המומלץ אם תהליך העבודה לא דורש אינטראקציה אנושית. תהליך העבודה הזה מחייב שלב הגדרה שבו המשתמש מוסיף חשבון שירות לחשבון Google Ads שלו. לאחר מכן, האפליקציה יכולה להשתמש בפרטי הכניסה של חשבון השירות כדי לנהל את חשבון Google Ads של המשתמש. הספרייה מוגדרת באופן הבא:


// Initialize a GoogleAdsConfig class.
GoogleAdsConfig config = new GoogleAdsConfig()
{
    DeveloperToken = "******",
    OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,
    OAuth2SecretsJsonPath = "PATH_TO_CREDENTIALS_JSON",
    LoginCustomerId = ******
};

// Initialize a GoogleAdsClient class.
GoogleAdsClient client = new GoogleAdsClient(config);

מידע נוסף זמין במדריך לתהליך העבודה עם חשבונות שירות.

תהליך אימות של משתמש יחיד

אפשר להשתמש בתהליך העבודה הזה אם אין לכם אפשרות להשתמש בחשבונות שירות. תהליך העבודה הזה מחייב שני שלבי הגדרה:

  1. נותנים למשתמש יחיד גישה לכל החשבונות שמנוהלים באמצעות Google Ads API. גישה נפוצה היא לתת למשתמש גישה לחשבון ניהול ב-Google Ads API, ולקשר את כל חשבונות Google Ads לחשבון הניהול הזה.
  2. המשתמש מריץ כלי כמו gcloud CLI או דוגמת הקוד GenerateUserCredentials כדי להעניק לאפליקציה הרשאה לנהל בשמו את כל חשבונות Google Ads שלו.

אפשר לאתחל את הספרייה באמצעות פרטי הכניסה של המשתמש ב-OAuth 2.0 באופן הבא:

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);

מידע נוסף זמין במדריך לתהליך העבודה של אימות משתמש יחיד.

תהליך אימות של כמה משתמשים

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

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);

מידע נוסף זמין במדריך לתהליך העבודה של אימות משתמשים מרובים. ספריית הלקוח של ‎ .NET כוללת שתי דוגמאות קוד לעיון:

  1. בדוגמה של קוד AuthenticateInAspNetCoreApplication אפשר לראות איך ליצור אפליקציית אינטרנט שמקבלת אימות משתמש בזמן ריצה כדי לנהל את חשבונות Google Ads שלו בשמו. האפליקציה משתמשת בהרשאות OAuth 2.0 של המשתמש כדי לאחזר את הקמפיינים בחשבון Google Ads שלו.

  2. GenerateUserCredentials היא דוגמה לקוד בשורת הפקודה שממחישה איך לקבל אימות משתמש בזמן ריצה כדי לנהל את חשבונות Google Ads שלו בשמו. אפשר להשתמש בדוגמה הזו של קוד כהפניה ליצירת אפליקציות למחשב שנדרש בהן אימות משתמש.

מה קורה אם המשתמש מנהל כמה חשבונות?

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

  1. בדוגמת הקוד GetAccountHierarchy מוסבר איך לאחזר את רשימת כל החשבונות שמשויכים לחשבון ניהול ב-Google Ads.
  2. בדוגמת הקוד ListAccessibleCustomers מוצג אופן האחזור של רשימת כל החשבונות שלמשתמש יש גישה ישירה אליהם. אפשר להשתמש בחשבונות האלה כערכים תקינים להגדרה LoginCustomerId.