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 सेटिंग के लिए मान्य वैल्यू के तौर पर किया जा सकता है.