इस गाइड में बिना यूआरएल वाले REST एंडपॉइंट को सीधे कॉल करने के उदाहरण दिए गए हैं क्लाइंट लाइब्रेरी का इस्तेमाल करने पर.
ज़रूरी शर्तें
नीचे दिए गए सभी सैंपल, कॉपी करके बैश में चिपकाने के लिए हैं शेल curl कमांड इस्तेमाल करके).
आपको डेवलपर टोकन, test वर्शन की भी ज़रूरत है खाते का ऐक्सेस देना ठीक है, और Google Ads मैनेजर खाते में कम से कम एक क्लाइंट खाता होना चाहिए.
एनवायरमेंट वैरिएबल
खाते के क्रेडेंशियल और आईडी यहां डालें. इसके बाद, उसे कॉपी करके अपने टर्मिनल का इस्तेमाल करके, बाद के उदाहरणों में इस्तेमाल किए गए एनवायरमेंट वैरिएबल को कॉन्फ़िगर करें. अनुमति गाइड में OAuth 2.0 ऐक्सेस टोकन.
API_VERSION="17"
DEVELOPER_TOKEN="DEVELOPER_TOKEN"
OAUTH2_ACCESS_TOKEN="OAUTH_ACCESS_TOKEN"
MANAGER_CUSTOMER_ID="MANAGER_CUSTOMER_ID"
CUSTOMER_ID="CUSTOMER_ID"
अन्य वैकल्पिक ऑब्जेक्ट आईडी
नीचे दिए गए कुछ उदाहरण पहले से मौजूद बजट या कैंपेन के लिए हैं. अगर आपको मौजूदा ऑब्जेक्ट के आईडी हैं, जिन्हें इन उदाहरणों के साथ इस्तेमाल किया जा सकता है. उन्हें नीचे डालें.
BUDGET_ID=BUDGET_ID
CAMPAIGN_ID=CAMPAIGN_ID
अगर ऐसा नहीं है, तो दो म्यूटेट - उदाहरण बनाएं विकल्प एक नया बजट बना देगा और कैंपेन चुनें.
खोजें
क्वेरी कुकबुक वाली गाइड में कई रिपोर्टिंग ऐसे नमूने जो कुछ डिफ़ॉल्ट Google Ads स्क्रीन से संबंधित होते हैं और इस गाइड में इस्तेमाल किए गए एनवायरमेंट वैरिएबल की तरह ही करें. हमारी इंटरैक्टिव क्वेरी बिल्डर टूल इंटरैक्टिव तरीके से कस्टम क्वेरी बनाने के लिए भी यह एक बेहतरीन संसाधन है.
पेज पर नंबर डाला गया
यह search
तरीका, पेज पर नंबर डालने की सुविधा का इस्तेमाल करता है. इसमें 10,000 आइटम का तय साइज़ होता है और
query
के साथ-साथ एक page_token
दिया गया है.
cURL
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:search" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data '{ "query": " SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED' ", "page_token":"${PAGE_TOKEN}" }'
जीएक्यूएल
SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED'
स्ट्रीमिंग
searchStream
तरीका सभी नतीजों को एक ही रिस्पॉन्स में स्ट्रीम करता है, इसलिए
pageSize
फ़ील्ड का इस्तेमाल नहीं किया जा सकता.
cURL
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data '{ "query": " SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED' " }'
जीएक्यूएल
SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED'
बदलाव
एक से ज़्यादा बदलाव करने वाली कार्रवाइयों (create
, update
या remove
) को
operations
कलेक्शन में जानकारी अपने-आप भरते हुए, सिंगल JSON अनुरोध का मुख्य हिस्सा.
बनाएं
यह उदाहरण एक ही अनुरोध में शेयर किए गए दो कैंपेन के बजट बनाता है.
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaignBudgets:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'create': { 'name': 'My Campaign Budget #${RANDOM}', 'amountMicros': 500000, } }, { 'create': { 'name': 'My Campaign Budget #${RANDOM}', 'amountMicros': 500000, } } ] }"
अगले उदाहरण में, मौजूदा कैंपेन बजट का BUDGET_ID
इस्तेमाल किया गया है; आप कर सकते हैं
पिछले चरण के आउटपुट से कॉपी और पेस्ट करें.
BUDGET_ID=BUDGET_ID
दूसरे संसाधनों से जुड़े संसाधन ऐसा करते हैं:
संसाधन नाम. नीचे बनाया गया कैंपेन
स्ट्रिंग वैल्यू वाले संसाधन नाम से campaignBudget
का रेफ़रंस देता है.
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaigns:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'create': { 'status': 'PAUSED', 'advertisingChannelType': 'SEARCH', 'geoTargetTypeSetting': { 'positiveGeoTargetType': 'PRESENCE_OR_INTEREST', 'negativeGeoTargetType': 'PRESENCE_OR_INTEREST' }, 'name': 'My Search campaign #${RANDOM}', 'campaignBudget': 'customers/${CUSTOMER_ID}/campaignBudgets/${BUDGET_ID}', 'targetSpend': {} } } ] }"
अपडेट
update
कार्रवाइयों का इस्तेमाल करके, मौजूदा ऑब्जेक्ट के एट्रिब्यूट अपडेट करें. अगला
उदाहरण के लिए, किसी मौजूदा कैंपेन का इस्तेमाल किया गया हो; आप पिछले आइटम से कॉपी करके चिपका सकते हैं
चरण का आउटपुट.
CAMPAIGN_ID=CAMPAIGN_ID
सभी अपडेट के लिए एक updateMask
फ़ील्ड की आवश्यकता होती है, जो कॉमा-सेपरेटेड लिस्ट होती है
अनुरोध में कौन-से JSON एट्रिब्यूट होने चाहिए, जिन्हें इस तरह लागू किया जाना चाहिए
अपडेट. एट्रिब्यूट की जानकारी updateMask
में दी गई है, लेकिन वे अनुरोध में मौजूद नहीं हैं
शरीर को किसी वस्तु से साफ़ किया जाता है. एट्रिब्यूट, updateMask
में शामिल नहीं हैं, लेकिन मौजूद हैं
अनुरोध के मुख्य हिस्से में, इन्हें अनदेखा कर दिया जाता है.
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaigns:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'update': { 'resourceName': 'customers/${CUSTOMER_ID}/campaigns/${CAMPAIGN_ID}', 'name': 'A changed campaign name #${RANDOM}', }, 'updateMask': 'name' } ], }"
हटाएं
ऑब्जेक्ट को remove
कार्रवाई के तौर पर हटाने के लिए, उनके रिसॉर्स का नाम बताया जाता है.
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaigns:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'remove': 'customers/${CUSTOMER_ID}/campaigns/${CAMPAIGN_ID}' } ], }"
कुछ हद तक गड़बड़ियां हुईं
जब एक ही अनुरोध में कई कार्रवाइयां होती हैं, तो वैकल्पिक तौर पर बताएं
partialFailure
. अगर true
, सफल ऑपरेशन किए जाते हैं और
अमान्य कार्रवाइयों से जुड़ी गड़बड़ियां. अगर false
, अनुरोध की सभी कार्रवाइयां
तभी सफल होना चाहिए, जब वे सभी मान्य हों.
अगला उदाहरण किसी मौजूदा कैंपेन का इस्तेमाल करता है; कॉपी करके चिपकाने के बाद, आउटपुट का उदाहरण बनाता है.
CAMPAIGN_ID=CAMPAIGN_ID
नीचे दिए गए अनुरोध में दो कार्रवाइयां हैं. हम
बिडिंग की रणनीति का इस्तेमाल किया जा सकता है और अगली रणनीति,
अमान्य ID वाला अभियान. क्योंकि दूसरी कार्रवाई की वजह से गड़बड़ी होती है (
कैंपेन आईडी अमान्य है) और partialFailure
को false
पर सेट किया गया है, इसलिए
पहला ऑपरेशन भी विफल हो जाता है और मौजूदा अभियान की बोली कार्यनीति
अपडेट नहीं हुआ.
curl --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaigns:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'partialFailure': false, 'operations': [ { 'update': { 'resourceName': 'customers/${CUSTOMER_ID}/campaigns/${CAMPAIGN_ID}', 'manualCpc': { 'enhancedCpcEnabled': false } }, 'updateMask': 'manual_cpc.enhanced_cpc_enabled' }, { 'remove': 'customers/${CUSTOMER_ID}/campaigns/INVALID_CAMPAIGN_ID' } ] }"
ग्रुप में शामिल किए गए ऑपरेशन
googleAds:mutate
तरीका, ऑपरेशन के ग्रुप को इस तरीके से भेजने की सुविधा देता है
कई तरह के संसाधन होते हैं. आप विभिन्न प्रकार की कई संक्रियाएं भेज सकते हैं
कार्रवाइयों के क्रम को एक साथ चेन करें, जिसे एक ग्रुप के रूप में पूरा किया जाना चाहिए.
कार्रवाइयों का सेट तब सफल होता है, जब कोई कार्रवाई पूरी न हो या कोई कार्रवाई पूरी न हो पाए
एकल संचालन विफल.
इस उदाहरण में कैंपेन बजट, कैंपेन, विज्ञापन ग्रुप, और कार्रवाइयों के एक सेट के रूप में एक साथ विज्ञापन कर सकें. बाद में होने वाली हर कार्रवाई पर निर्भर करती है क्लिक करें. अगर एक भी फ़ेल होता है, तो कार्रवाइयों का पूरा ग्रुप फ़ेल हो जाता है.
नेगेटिव पूर्णांक (-1
, -2
, -3
) का इस्तेमाल, संसाधन में प्लेसहोल्डर के तौर पर किया जाता है
नाम और उन्हें क्रम से मिलने वाले नतीजों के साथ रनटाइम के दौरान डाइनैमिक तौर पर भर दिया जाता है
के संचालन का एक उदाहरण है.
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'mutateOperations': [ { 'campaignBudgetOperation': { 'create': { 'resourceName': 'customers/${CUSTOMER_ID}/campaignBudgets/-1', 'name': 'My Campaign Budget #${RANDOM}', 'deliveryMethod': 'STANDARD', 'amountMicros': 500000, 'explicitlyShared': false } } }, { 'campaignOperation': { 'create': { 'resourceName': 'customers/${CUSTOMER_ID}/campaigns/-2', 'status': 'PAUSED', 'advertisingChannelType': 'SEARCH', 'geoTargetTypeSetting': { 'positiveGeoTargetType': 'PRESENCE_OR_INTEREST', 'negativeGeoTargetType': 'PRESENCE_OR_INTEREST' }, 'name': 'My Search campaign #${RANDOM}', 'campaignBudget': 'customers/${CUSTOMER_ID}/campaignBudgets/-1', 'targetSpend': {} } } }, { 'adGroupOperation': { 'create': { 'resourceName': 'customers/${CUSTOMER_ID}/adGroups/-3', 'campaign': 'customers/${CUSTOMER_ID}/campaigns/-2', 'name': 'My ad group #${RANDOM}', 'status': 'PAUSED', 'type': 'SEARCH_STANDARD' } } }, { 'adGroupAdOperation': { 'create': { 'adGroup': 'customers/${CUSTOMER_ID}/adGroups/-3', 'status': 'PAUSED', 'ad': { 'responsiveSearchAd': { 'headlines': [ { 'pinned_field': 'HEADLINE_1', 'text': 'An example headline' }, { 'text': 'Another example headline' }, { 'text': 'Yet another headline' } ], 'descriptions': [ { 'text': 'An example description' }, { 'text': 'Another example description' } ], 'path1': 'all-inclusive', 'path2': 'deals' }, 'finalUrls': ['https://www.example.com'] } } } } ] }"
खाते का मैनेजमेंट
खाते बनाना
createCustomerClient
तरीके का इस्तेमाल करके नए खाते बनाएं. ध्यान दें कि यूआरएल
इसके लिए, क्लाइंट खाते के आईडी के बजाय, मैनेजर खाते के आईडी की ज़रूरत होती है. नया क्लाइंट
खाता, मैनेजर खाते के तहत बनाया जाता है.
curl f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${MANAGER_CUSTOMER_ID}:createCustomerClient" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'customerClient': { 'descriptiveName': 'My Client #${RANDOM}', 'currencyCode': 'USD', 'timeZone': 'America/New_York' } }"
ऐक्सेस किए जा सकने वाले खातों की लिस्टिंग
सूची पाने के लिए, listAccessibleCustomers
तरीके से GET
का आसान अनुरोध करें
ऐसे Google Ads खातों की संख्या जिनको दिए गए OAuth 2.0 ऐक्सेस टोकन से ऐक्सेस किया जा सकता है. कोई मैनेजर नहीं
इस अनुरोध में, अपने क्लाइंट खाते के आईडी का इस्तेमाल करें.
curl -f --request GET "https://googleads.googleapis.com/v${API_VERSION}/customers:listAccessibleCustomers" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \
बाइनरी ऐसेट अपलोड करना
assets:mutate
तरीके का इस्तेमाल, अपलोड और मैनेज करने के लिए किया जाता है
ऐसेट. इमेज जैसा बाइनरी डेटा, इस कोड से एन्कोड किया जाता है
पैडिंग (जगह) के साथ स्टैंडर्ड base64 एन्कोडिंग का इस्तेमाल करने वाली स्ट्रिंग. स्टैंडर्ड या
पैडिंग (जगह) के साथ या उसके बिना, यूआरएल को सुरक्षित रखने वाले base64 एन्कोडिंग को स्वीकार किया जाता है.
सैंपल को छोटा रखने के लिए, यह उदाहरण एक पिक्सल के GIF को कोड में बदल देता है. व्यावहारिक तौर पर,
data
पेलोड काफ़ी ज़्यादा हैं.
base64
कमांड लाइन उपयोगिता (इसका हिस्सा है) का इस्तेमाल करें
GNU की कोर सुविधाएं)
एक पिक्सल की GIF इमेज को कोड में बदलने के लिए.
base64 1pixel.gif
एपीआई अनुरोध में, base64 कोड में बदली गई वैल्यू को data
एट्रिब्यूट के तौर पर शामिल किया जाता है.
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/assets:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'create': { 'name': 'My image asset #${RANDOM}', 'type': 'IMAGE', 'imageAsset': { 'data': 'R0lGODlhAQABAAAAACH5BAEAAAAALAAAAAABAAEAAAIA' } } } ] }"