Authentication

Google के अन्य एपीआई की तरह, 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 खाते को मैनेज करने के लिए, सेवा खाते के क्रेडेंशियल का इस्तेमाल कर सकता है.

PHP लाइब्रेरी को इस तरह कॉन्फ़िगर किया जा सकता है:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withJsonKeyFilePath('INSERT_PATH_TO_JSON_KEY_FILE_HERE')
    // Optional in v32.1.0 and later (defaults to
    // 'https://www.googleapis.com/auth/adwords').
    ->withScopes('https://www.googleapis.com/auth/adwords')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->build();

ज़्यादा जानने के लिए, सेवा खाते के वर्कफ़्लो की गाइड पढ़ें.

एक उपयोगकर्ता की पुष्टि करने का फ़्लो

अगर सेवा खातों का इस्तेमाल नहीं किया जा सकता, तो इस वर्कफ़्लो का इस्तेमाल किया जा सकता है. इस वर्कफ़्लो के लिए, कॉन्फ़िगरेशन के दो चरण ज़रूरी हैं:

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

उपयोगकर्ता के OAuth 2.0 क्रेडेंशियल का इस्तेमाल करके, लाइब्रेरी को इस तरह शुरू किया जा सकता है:

$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken('INSERT_REFRESH_TOKEN_HERE')
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

ज़्यादा जानने के लिए, एक उपयोगकर्ता के लिए पुष्टि करने से जुड़े वर्कफ़्लो की गाइड देखें.

डिवाइस के एक से ज़्यादा उपयोगकर्ताओं के लिए पुष्टि करने की सुविधा का फ़्लो

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

// Construct credentials dynamically per authenticated user session.
$oAuth2Credential = (new OAuth2TokenBuilder())
    ->withClientId('INSERT_CLIENT_ID_HERE')
    ->withClientSecret('INSERT_CLIENT_SECRET_HERE')
    ->withRefreshToken($userRefreshToken)
    ->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId($userLoginCustomerId)
    ->build();

ज़्यादा जानने के लिए, डिवाइस के एक से ज़्यादा उपयोगकर्ताओं की पुष्टि करने के वर्कफ़्लो की गाइड देखें.

ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल

PHP क्लाइंट लाइब्रेरी, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल (एडीसी) की मदद से पुष्टि करने की सुविधा भी देती है. जब OAuth2TokenBuilder पर न तो ऐप्लिकेशन मोड (clientId, clientSecret, refreshToken) और न ही सेवा खाते के मोड (jsonKeyFilePath) के क्रेडेंशियल सेट किए गए हों, तब build() को कॉल करने पर, अपने-आप ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल किया जाता है:

$oAuth2Credential = (new OAuth2TokenBuilder())->build();

$googleAdsClient = (new GoogleAdsClientBuilder())
    ->withOAuth2Credential($oAuth2Credential)
    ->withLoginCustomerId('INSERT_LOGIN_CUSTOMER_ID_HERE')
    ->build();

एक से ज़्यादा खाते प्रबंधित करना

आम तौर पर, कोई उपयोगकर्ता एक से ज़्यादा Google Ads खाते मैनेज करता है. इसके लिए, वह खातों को सीधे ऐक्सेस करता है या Google Ads मैनेजर खाते का इस्तेमाल करता है. PHP क्लाइंट लाइब्रेरी, यहां दिए गए कोड के उदाहरण उपलब्ध कराती है. इनसे पता चलता है कि इस तरह के मामलों को कैसे मैनेज किया जाता है:

  1. GetAccountHierarchy कोड के इस उदाहरण में, Google Ads मैनेजर खाते से जुड़े सभी खातों की सूची पाने का तरीका बताया गया है.
  2. ListAccessibleCustomers कोड के उदाहरण में दिखाया गया है कि किसी उपयोगकर्ता के पास जिन खातों का सीधा ऐक्सेस है उनकी सूची कैसे वापस पाई जाती है. इसके बाद, इन खातों का इस्तेमाल loginCustomerId सेटिंग के लिए मान्य वैल्यू के तौर पर किया जा सकता है.