कॉन्फ़िगरेशन

Java क्लाइंट लाइब्रेरी, आपकी होम डायरेक्ट्री (System.getProperty("user.home") + "/ads.properties" या ~/ads.properties) में ads.properties नाम की कॉन्फ़िगरेशन फ़ाइल ढूंढती है. इस पाथ और फ़ाइल के नाम को रनटाइम में बदला जा सकता है. इसके लिए, GoogleAdsClient बनाते समय इनमें से किसी एक तरीके का इस्तेमाल करें:

  • fromPropertiesFile(PATH_TO_CONFIG_FILE) को कॉल करें. यहां PATH_TO_CONFIG_FILE आपकी कॉन्फ़िगरेशन फ़ाइल का File पाथ और फ़ाइल का नाम है.
  • एनवायरमेंट वैरिएबल GOOGLE_ADS_CONFIGURATION_FILE_PATH को कॉन्फ़िगरेशन फ़ाइल के पाथ और फ़ाइल के नाम पर सेट करें. इसके बाद, fromPropertiesFile() को कॉल करें.

कॉन्फ़िगरेशन फ़ाइल का फ़ॉर्मैट, की-वैल्यू पेयर की स्टैंडर्ड Java Properties फ़ाइल है. चुने गए ऑथेंटिकेशन फ़्लो के हिसाब से, इस्तेमाल की जा सकने वाली कुंजियां अलग-अलग होती हैं.

डेस्कटॉप और वेब ऐप्लिकेशन के फ़्लो के लिए काम करने वाली कुंजियां

अगर एक उपयोगकर्ता या डिवाइस के एक से ज़्यादा उपयोगकर्ता वाला ऐप्लिकेशन फ़्लो इस्तेमाल किया जा रहा है, तो ये कुंजियां काम करती हैं:

# Credential for accessing Google's OAuth servers.
# Provided by console.cloud.google.com.
api.googleads.clientId=INSERT_CLIENT_ID_HERE

# Credential for accessing Google's OAuth servers.
# Provided by console.cloud.google.com.
api.googleads.clientSecret=INSERT_CLIENT_SECRET_HERE

# Renewable OAuth credential associated with 1 or more Google Ads accounts.
api.googleads.refreshToken=INSERT_REFRESH_TOKEN_HERE

# Required for manager accounts only: Specify the login customer ID used to
# authenticate API calls. This will be the customer ID of the authenticated
# manager account. You can also specify this later in code if your application
# uses multiple manager account + OAuth pairs.
#
# api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

# Only required if explicitly instructed by the service documentation.
# api.googleads.linkedCustomerId=INSERT_LINKED_CUSTOMER_ID_HERE

# Maximum allowed response payload size, in bytes.
# Customize this to allow response sizes for GoogleAdsService.search and
# GoogleAdsService.searchStream API calls to exceed the default limit of 64MB.
# api.googleads.maxInboundMessageBytes=INSERT_MAX_INBOUND_MESSAGE_BYTES_HERE

# Specifies whether to use Application Default Credentials.
api.googleads.useApplicationDefaultCredentials=false

सेवा खातों के लिए इस्तेमाल की जा सकने वाली कुंजियां

अगर सेवा खाते वाले फ़्लो का इस्तेमाल किया जा रहा है, तो ये कुंजियां काम करेंगी:

# Path to the service account secrets file in JSON format.
# Provided by console.cloud.google.com.
api.googleads.serviceAccountSecretsPath=INSERT_PATH_TO_JSON_HERE

# Optional: Email address of the user to impersonate when using Google Workspace
# domain-wide delegation. This should be a user who has access to your Google Ads
# account and is in the same Google Workspace domain as the service account.
# api.googleads.serviceAccountUser=INSERT_USER_EMAIL_ADDRESS_HERE

# Required for manager accounts only: Specify the login customer ID used to
# authenticate API calls. This will be the customer ID of the authenticated
# manager account. You can also specify this later in code if your application
# uses multiple manager account + OAuth pairs.
#
# api.googleads.loginCustomerId=INSERT_LOGIN_CUSTOMER_ID_HERE

एनवायरमेंट वैरिएबल का इस्तेमाल करना

यह लाइब्रेरी, Google Ads API की क्लाइंट लाइब्रेरी के सभी स्टैंडर्ड एनवायरमेंट वैरिएबल के साथ काम करती है. यहां दी गई टेबल में, हर कॉन्फ़िगरेशन फ़ाइल प्रॉपर्टी से जुड़े एनवायरमेंट वैरिएबल के बारे में बताया गया है:

कॉन्फ़िगरेशन फ़ाइल प्रॉपर्टी एनवायरमेंट वैरिएबल
api.googleads.clientId GOOGLE_ADS_CLIENT_ID
api.googleads.clientSecret GOOGLE_ADS_CLIENT_SECRET
api.googleads.refreshToken GOOGLE_ADS_REFRESH_TOKEN
api.googleads.serviceAccountSecretsPath GOOGLE_ADS_JSON_KEY_FILE_PATH
api.googleads.serviceAccountUser GOOGLE_ADS_IMPERSONATED_EMAIL
api.googleads.loginCustomerId GOOGLE_ADS_LOGIN_CUSTOMER_ID
api.googleads.linkedCustomerId GOOGLE_ADS_LINKED_CUSTOMER_ID
api.googleads.maxInboundMessageBytes GOOGLE_ADS_MAX_INBOUND_MESSAGE_BYTES
api.googleads.useApplicationDefaultCredentials GOOGLE_ADS_USE_APPLICATION_DEFAULT_CREDENTIALS
api.googleads.developerToken (v46.0.0 और इसके बाद के वर्शन में ज़रूरी नहीं है) GOOGLE_ADS_DEVELOPER_TOKEN

ज़रूरी एनवायरमेंट वैरिएबल सेट करने के बाद, बिल्डर पर fromEnvironment() को कॉल करके, GoogleAdsClient को कॉन्फ़िगर करें:

GoogleAdsClient googleAdsClient =
    GoogleAdsClient.newBuilder()
        .fromEnvironment()
        .build();

कॉन्फ़िगरेशन के तरीकों को एक साथ इस्तेमाल करना

GoogleAdsClient और इसके बिल्डर की मदद से, कॉन्फ़िगरेशन की अलग-अलग रणनीतियों को एक साथ इस्तेमाल किया जा सकता है. उदाहरण के लिए, इंस्टेंस के क्रेडेंशियल और अन्य एट्रिब्यूट के लिए प्रॉपर्टी फ़ाइल को कॉन्फ़िगर करने के लिए, एनवायरमेंट वैरिएबल का इस्तेमाल किया जा सकता है. इसके लिए, यहां दिया गया स्निपेट इस्तेमाल करें:

GoogleAdsClient googleAdsClient =
    GoogleAdsClient.newBuilder()
        .fromEnvironment()
        .fromPropertiesFile()
        .build();

build() को कॉल करने से पहले, बिल्डर के कॉन्फ़िगरेशन के अन्य तरीकों का इस्तेमाल करके, रनटाइम के दौरान और बदलाव किए जा सकते हैं.

डेवलपर टोकन के बंद होने की तारीख

9 सितंबर, 2026 को डेवलपर टोकन की सुविधा बंद होने के बाद, एपीआई के ऐक्सेस लेवल का फ़ैसला, एपीआई सर्वर पर मौजूद आपके Google Cloud प्रोजेक्ट के आधार पर किया जाएगा. डेवलपर टोकन के आधार पर नहीं:

  • कॉन्फ़िगरेशन में बदलाव: अब आपको ads.properties में api.googleads.developerToken या अपने एनवायरमेंट वैरिएबल में GOOGLE_ADS_DEVELOPER_TOKEN की जानकारी देने की ज़रूरत नहीं है. api.googleads.developerToken के बारे में जानकारी देने वाले मौजूदा ऐप्लिकेशन अब भी काम कर रहे हैं, क्योंकि एपीआई सर्वर developer-token हेडर को अनदेखा करते हैं. हालांकि, Google Ads API का आने वाला मुख्य वर्शन इसे अस्वीकार कर देगा.
  • क्लाइंट लाइब्रेरी के वर्शन से जुड़ी ज़रूरी शर्तें: अपने कॉन्फ़िगरेशन से डेवलपर टोकन हटाने के लिए, google-ads-java v46.0.0 या इसके बाद के वर्शन का इस्तेमाल करें. इनमें क्लाइंट-साइड की पुष्टि करने की सुविधा हटा दी गई है. इसके लिए, डेवलपर टोकन की ज़रूरत होती है.
  • अनुमति से जुड़ी गड़बड़ी में बदलाव: अगर सिर्फ़ टेस्ट ऐक्सेस वाला Google Cloud प्रोजेक्ट, प्रोडक्शन Google Ads खाते को कॉल करता है, तो v25 और बाद में Google Ads API AuthorizationError.CLOUD_PROJECT_NOT_APPROVED_FOR_PRODUCTION दिखाता है, जबकि v24 और इससे पहले AuthorizationError.ACTION_NOT_PERMITTED दिखाता है.