सेवा खाते का वर्कफ़्लो

इस गाइड में, सेवा खातों की मदद से Google Ads API को ऐक्सेस करने का तरीका बताया गया है.

सेवा खाता आपके ऐप्लिकेशन का खाता होता है. यह किसी व्यक्ति का खाता नहीं होता. सेवा खातों में OAuth 2.0 फ़्लो का इस्तेमाल किया जाता है. इसके लिए, उपयोगकर्ता की अनुमति की ज़रूरत नहीं होती. इसके बजाय, एक कुंजी वाली फ़ाइल का इस्तेमाल किया जाता है जिसे सिर्फ़ आपका ऐप्लिकेशन ऐक्सेस कर सकता है.

सेवा खातों का इस्तेमाल करने के दो अहम फ़ायदे हैं:

  • Google Ads API को Google Ads खातों का ऐक्सेस देने की अनुमति, कॉन्फ़िगरेशन के तौर पर दी जाती है. इसके लिए, Google Ads के यूज़र इंटरफ़ेस (यूआई) में दी जाने वाली अनुमति और खाता मैनेजमेंट की सुविधाओं का इस्तेमाल किया जाता है. इससे डेवलपर का काम आसान हो जाता है, क्योंकि उन्हें OAuth 2.0 फ़्लो बनाने और उपयोगकर्ता के इंटरैक्शन, उपयोगकर्ता के क्रेडेंशियल सेव करने, और टोकन मैनेजमेंट से जुड़ी मुश्किलों से निपटने की ज़रूरत नहीं होती.

  • Google Ads खातों को ऐक्सेस करने की अनुमति, किसी उपयोगकर्ता के क्रेडेंशियल से जुड़ी नहीं होती. यह उन मामलों में काम आ सकती है जहां इस तरह की अनुमति, उस कर्मचारी के टीम या कंपनी छोड़ने के बाद भी जारी रहनी चाहिए जिसने मूल रूप से ऐक्सेस की अनुमति दी थी.

खाते के ऐक्सेस का सेटअप

  1. सबसे पहले, सेवा खाता और क्रेडेंशियल बनाएं.

    सेवा खाते की कुंजी को JSON फ़ॉर्मैट में डाउनलोड करें. साथ ही, सेवा खाते का आईडी और ईमेल नोट करें.

  2. एडमिन के तौर पर, अपने Google Ads खाते में साइन इन करें. एडमिन > ऐक्सेस और सुरक्षा पर जाएं.

  3. उपयोगकर्ता टैब में, + बटन पर क्लिक करें.

  4. ईमेल वाले इनपुट बॉक्स में, सेवा खाते का ईमेल डालें. खाते के लिए सही ऐक्सेस लेवल चुनें. ध्यान दें कि सेवा खातों के लिए, सिर्फ़ ईमेल वाला ऐक्सेस लेवल उपलब्ध नहीं है. इसके बाद, खाता जोड़ें बटन पर क्लिक करें.

    सेवा खाते को ऐक्सेस की अनुमति मिल जाती है.

  5. ज़रूरी नहीं: डिफ़ॉल्ट रूप से, सेवा खाते को एडमिन के तौर पर ऐक्सेस की अनुमति नहीं दी जा सकती. कम से कम अधिकारों के सिद्धांत को अपनाएं और एडमिन के तौर पर ऐक्सेस की अनुमति सिर्फ़ तब दें, जब आपके एपीआई कॉल के लिए इसकी ज़रूरत हो. ऐक्सेस को इस तरह अपग्रेड किया जा सकता है:

    • ऐक्सेस लेवल कॉलम में, सेवा खाते के ऐक्सेस लेवल के बगल में मौजूद ड्रॉप-डाउन ऐरो पर क्लिक करें.
    • ड्रॉप-डाउन सूची से एडमिन चुनें.

क्लाइंट लाइब्रेरी का कॉन्फ़िगरेशन

अपनी क्लाइंट लाइब्रेरी को कॉन्फ़िगर करने के तरीके के बारे में निर्देश पाने के लिए, अपनी प्रोग्रामिंग लैंग्वेज से जुड़ा टैब चुनें. अगर आपका सेवा खाता, Google Ads मैनेजर खाते के ज़रिए क्लाइंट खातों को ऐक्सेस करता है, तो login-customer-id (या loginCustomerId) को उस मैनेजर खाते के 10 अंकों वाले ग्राहक आईडी पर भी सेट करें. इसमें हाइफ़न शामिल नहीं होने चाहिए. ज़्यादा जानकारी के लिए, ग्राहक आईडी से लॉग इन करना लेख पढ़ें.

Java

अपने कॉन्फ़िगरेशन में, निजी कुंजी के JSON पाथ को सेट करें. अगर ads.properties फ़ाइल का इस्तेमाल किया जा रहा है, तो यह जोड़ें:

api.googleads.serviceAccountSecretsPath=JSON_KEY_FILE_PATH

ज़्यादा जानकारी के लिए, कॉन्फ़िगरेशन के बारे में बताने वाली गाइड देखें.

.NET

GoogleAdsConfig इंस्टेंस पर, OAuth2Mode और OAuth2SecretsJsonPath सेट करें. इसके बाद, इसका इस्तेमाल करके 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

सबसे पहले, gcloud सीएलआई में सेवा खाते को, चालू क्रेडेंशियल के तौर पर सेट करें.

gcloud auth login --cred-file=JSON_KEY_FILE_PATH

इसके बाद, Google Ads API के लिए OAuth 2.0 का ऐक्सेस टोकन फ़ेच करें.

gcloud auth \
  print-access-token \
  --scopes='https://www.googleapis.com/auth/adwords'

एपीआई कॉल में, ऐक्सेस टोकन का इस्तेमाल किया जा सकता है. यहां दिए गए उदाहरण में, आपके खाते में मौजूद कैंपेन को वापस पाने के लिए, 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"
}