AdWords और Merchant Center उप-खाते बनाना और उन्हें लिंक करना

1. परिचय

इस कोडलैब में, आपको Content API for Shopping और AdWords API के साथ काम करने की कुछ बुनियादी बातें सीखने को मिलेंगी. साथ ही, एक ऐसा ऐप्लिकेशन बनाने की जानकारी भी मिलेगी जो इन दोनों का इस्तेमाल करता हो. खास तौर पर, आप एक कमांड-लाइन ऐप्लिकेशन बनाएंगे, जो एक AdWords खाता और Merchant Center खाता बनाएगा और उन्हें लिंक करेगा.

आपको इनके बारे में जानकारी मिलेगी

  • किसी मैनेजर खाते से मैनेज होने वाले AdWords खाते बनाने का तरीका.
  • एक से ज़्यादा क्लाइंट वाले खाते से मैनेज होने वाले Merchant Center खाते बनाने का तरीका.
  • किसी Merchant Center खाते से किसी AdWords खाते से लिंक करने का अनुरोध करने का तरीका.
  • AdWords खाते में Merchant Center के लंबित लिंक को स्वीकार करने का तरीका.

आपको इन चीज़ों की ज़रूरत होगी

2. सेट अप किया जा रहा है

कोड डाउनलोड करें

इस कोडलैब के लिए सभी कोड डाउनलोड करने के लिए, नीचे दिए गए लिंक पर क्लिक करें:

डाउनलोड की गई ZIP फ़ाइल को अनपैक करें. ऐसा करने से, एक रूट फ़ोल्डर (shopping-account-linking-master) अनपैक हो जाएगा. इस रूट में एक Maven प्रोजेक्ट के साथ-साथ, आपके काम के सभी संसाधन भी होंगे. इन सबडायरेक्ट्री का खास ध्यान रखा जाता है:

  • src/main/java, Maven प्रोजेक्ट का सोर्स रूट है. इसमें काम करने के लिए एक कोड स्केलेटन होता है.
  • src/main/java/solution में पूरा समाधान मौजूद है.

ज़रूरी पैकेज इंस्टॉल करें और बिल्ड

अगर Eclipse या IntelliJ जैसे Maven-अवेयर IDE का इस्तेमाल किया जा रहा है, तो एक्सट्रैक्ट किए गए फ़ोल्डर को Maven प्रोजेक्ट के तौर पर इंपोर्ट किया जा सकता है. साथ ही, प्रोजेक्ट को सामान्य तरीके से कंपाइल किया जा सकता है.

अगर कमांड लाइन से Maven का इस्तेमाल किया जा रहा है, तो ज़रूरी पैकेज वापस पाने के लिए, यहां दिए गए कमांड का इस्तेमाल किया जा सकता है. साथ ही, पैक नहीं किए गए प्रोजेक्ट (shopping-account-linking-master) के रूट फ़ोल्डर से प्रोजेक्ट को कंपाइल किया जा सकता है:

mvn compile

3. पुष्टि करने की सुविधा सेट अप करें

इस चरण में, हम कोई कोडिंग नहीं करेंगे. हालांकि, हम ऐसी फ़ाइलें सेट अप करेंगे जिनमें AdWords API और Content API for Shopping के लिए, पुष्टि करने के सही टोकन मौजूद होंगे.

AdWords API सेट अप करेंuthetication

यह कोडलैब, उसी क्रेडेंशियल का इस्तेमाल करता है जो क्लाइंट लाइब्रेरी में लोड होता है. इसलिए, अगर आपने मैनेजर खाते के साथ, Java के लिए Google Ads API क्लाइंट लाइब्रेरी का इस्तेमाल पहले ही कर लिया है, तो आपका खाता पहले से सेट अप हो जाएगा. इसके अलावा, Java के लिए Google Ads API क्लाइंट लाइब्रेरी का इस्तेमाल शुरू करने के लिए, पहले से तीसरे चरण का पालन करें.

Content API पुष्टि करने की सुविधा सेट अप करना

अगर आपके पास पहले से सेवा खाते की कुंजी नहीं है, तो:

  1. एक से ज़्यादा क्लाइंट वाले अपने खाते के लिए, Merchant Center पर जाएं और ओवरफ़्लो मेन्यू में जाकर Content API को चुनें: 89507d635c51a3dc.png
  2. पुष्टि करें चुनें, फिर नीले रंग के + बटन पर क्लिक करें: c465d8dc314ec158.png
  3. Google Cloud Platform और Google API की सेवा की शर्तें स्वीकार करने के बाद, आपका ब्राउज़र अपने-आप एक JSON फ़ाइल डाउनलोड करेगा. इस फ़ाइल में, आपके सेवा खाते की नई कुंजी शामिल होगी.

अब सेवा खाते की मदद से, Shopping के सैंपल के लिए पुष्टि करने की सुविधा सेट अप करने के निर्देशों का पालन करें. इसका मतलब है कि आपके सेवा खाते की कुंजी की कॉपी, आपकी होम डायरेक्ट्री से इस पाथ पर होनी चाहिए: shopping-samples/content/service-account.json. अगर आपको इस कोडलैब को पूरा करने के बाद सैंपल को आज़माने में दिलचस्पी है, तो आपको सैंपल कॉन्फ़िगरेशन सेट अप करने की ज़रूरत नहीं होगी!

इसे आज़माएं

अब आपके पास सही जगहों पर पुष्टि करने वाले टोकन मौजूद हैं, तो सैंपल चलाकर देखें. अगर कमांड लाइन पर Maven का इस्तेमाल किया जा रहा है, तो ये कमांड चलाएं:

mvn compile
mvn exec:java -Dexec.mainClass="SolutionRunner"

अगर आपको सेशन ऑब्जेक्ट के बारे में गड़बड़ी का कोई मैसेज मिलता है, तो इसका मतलब है कि आपके पुष्टि करने वाले टोकन मौजूद हैं और ठीक से काम कर रहे हैं! ऐसा नहीं होने पर, आपको गड़बड़ी का जो मैसेज मिलेगा उससे आपको पता चलेगा कि कौनसे क्रेडेंशियल काम नहीं कर रहे हैं और किस फ़ाइल को ठीक करना है.

4. एपीआई से कनेक्ट करें

अब आपके पास उन दोनों एपीआई के लिए, पुष्टि करने वाले मान्य टोकन मौजूद हैं जिनका हम इस्तेमाल करेंगे. इसलिए, अब असल कोड को भरने के बारे में जानते हैं. हम अपने ऑथेंटिकेशन टोकन का इस्तेमाल करके, सेशन ऑब्जेक्ट बनाने से शुरुआत करेंगे. इसके बाद के चरणों में, हम एपीआई से मिलने वाली अलग-अलग सेवाओं और तरीकों को ऐक्सेस करने के लिए, इन सेशन ऑब्जेक्ट का इस्तेमाल करेंगे.

Content API सेशन ऑब्जेक्ट बनाना

Content API सेशन बनाने के लिए, हम ShoppingContent.Builder ऑब्जेक्ट बनाएंगे. इसके बाद, इसका इस्तेमाल करके सही ShoppingContent ऑब्जेक्ट बनाएंगे. अच्छी बात यह है कि हमें प्रॉपर्टी को बनाने के लिए, पहले से ही कोड स्केलेटन में उपलब्ध है. इसलिए, हमें इसे एक साथ जोड़ना होगा, जैसे:

SolutionRunner.java

// TODO(sessions): Create a ShoppingContent object using ShoppingContent.Builder.
contentApiSession =
    new ShoppingContent.Builder(httpTransport, jsonFactory, contentApiCredential)
        .setApplicationName("Linking AdWords and Merchant Center Accounts Codelab")
        .build();

ऐप्लिकेशन का नाम सेट करना पूरी तरह से ज़रूरी नहीं है. हालांकि, यह दिखाता है कि build() तरीके को कॉल करने से पहले, ShoppingContent.Builder ऑब्जेक्ट से किसी भी मनचाहा विकल्प को कैसे सेट किया जाए.

AdWords API सेशन ऑब्जेक्ट बनाना

इसी तरह, AdWordsSession ऑब्जेक्ट बनाने के लिए, AdWordsSession.Builder क्लास होती है. दोनों में मुख्य अंतर यह है कि सीधे बिल्डर पर कॉन्फ़िगरेशन के विकल्प सेट करने के बजाय, हम पिछले चरण में सेट अप की गई ads.properties फ़ाइल से उन्हें लोड करने के लिए, fromFile() तरीके का इस्तेमाल करेंगे.

SolutionRunner.java

// TODO(sessions): Create a AdWordsSession object using AdWordsSession.Builder.
adWordsSession =
    new AdWordsSession.Builder()
        .fromFile()
        .withOAuth2Credential(adwordsOAuth2Credential)
        .build();

इसे आज़माएं

Maven प्रोजेक्ट को कमांड लाइन से चलाने पर, हम वही कमांड इस्तेमाल करेंगे जो आखिरी सेक्शन में बताया गया था:

mvn compile
mvn exec:java -Dexec.mainClass="SolutionRunner"

इस बार, आपको कोई गड़बड़ी नहीं मिलेगी. हालांकि, आपको कोई दिलचस्प आउटपुट नहीं मिलेगा. नए खाते बनाने और लिंक करने के लिए, एपीआई को कॉल करते समय हम इस नंबर को जोड़ देंगे.

5. एक नया प्रबंधित AdWords खाता बनाएं

अब जब हमने अपने एपीआई सेशन ऑब्जेक्ट बना लिए हैं, तो हम उन खातों को बनाएंगे और देखेंगे जिन्हें हम लिंक करना चाहते हैं. हम AdWords से शुरुआत करेंगे और अपने मैनेजर खाते के तहत एक टेस्ट खाता बनाएंगे.

ManagedCustomerService को ऐक्सेस करें

AdWords API में, हम पहले स्टैटिक getInstance() तरीके का इस्तेमाल करके AdWordsServices क्लास का इंस्टेंस हासिल करके कई उपलब्ध सेवाओं को ऐक्सेस करते हैं. इस इंस्टेंस का इस्तेमाल करके, हम get() तरीके से इन सेवाओं के लिए क्लाइंट बना सकते हैं. इसमें दो आर्ग्युमेंट इस्तेमाल किए जाते हैं: वह सेशन जिसके लिए क्लाइंट बनाना है और मनचाही सेवा के लिए इंटरफ़ेस.

SolutionRunner.java

// TODO(newAWaccount): Using the ManagedCustomerService, create a new testing AdWords account
// under the given manager account.

AdWordsServicesInterface adWordsServices = AdWordsServices.getInstance();

ManagedCustomerServiceInterface managedCustomerService =
    adWordsServices.get(adWordsSession, ManagedCustomerServiceInterface.class);

यहां हम ManagedCustomerService को ऐक्सेस करते हैं, जिससे हम AdWords के "ग्राहकों" को प्रबंधित कर सकते हैं (खाते).

खाते की नई सेटिंग तय करना

सबसे पहले, हम एक ManagedCustomer ऑब्जेक्ट बनाएंगे, जिसमें हमारे नए खाते की सेटिंग शामिल होंगी. हम इस कोडलैब के लिए एक टेस्ट खाता बनाएंगे, जिसमें इसकी मुद्रा को डॉलर पर और उसका टाइम ज़ोन अमेरिका के पश्चिमी तट पर सेट किया जाएगा.

SolutionRunner.java

Random rand = new Random();
long run = rand.nextLong();

ManagedCustomer newAdWordsAccount = new ManagedCustomer();
newAdWordsAccount.setName(String.format("AdWords Account Created by Run %d", run));
newAdWordsAccount.setTestAccount(true);
newAdWordsAccount.setCurrencyCode("USD");
newAdWordsAccount.setDateTimeZone("America/Los_Angeles");

हम एक रैंडम नंबर भी बना देते हैं, जिसे हम खाते के नाम में शामिल कर लेते हैं. ऐसा इसलिए है, ताकि हम यहां बनाए गए AdWords खाते का मिलान उस Merchant Center खाते से कर सकें, जिसे हम बाद में बनाएंगे, ताकि हमारा समाधान पूरा होने के बाद हम उन खातों की ठीक से जांच कर सकें और यह पक्का कर सकें कि दोनों आपस में लिंक हैं.

मैनेज किया जा रहा नया खाता बनाना

असल में नया खाता बनाने के लिए, हम ADD ऑपरेशन तय करने के लिए ManagedCustomerOperation का इस्तेमाल करेंगे:

SolutionRunner.java

ManagedCustomerOperation operation = new ManagedCustomerOperation();
operation.setOperand(newAdWordsAccount);
operation.setOperator(Operator.ADD);

इसके बाद, हम ManagedCustomerService ऑब्जेक्ट में से mutate() तरीके का इस्तेमाल करके कार्रवाई करेंगे. यह तरीका काम करने के लिए कई कार्रवाइयां करता है, लेकिन यहां हम सिर्फ़ एक कार्रवाई करना चाहते हैं. mutate() तरीके का नतीजा एक ऐसी वैल्यू होती है जिसमें ManagedCustomer की सूची शामिल होती है; यहां दिखाई गई सूची में एक ग्राहक होगा, यानी वह नया खाता जो हमने बनाया है. हम उस नए खाते का आईडी, आने वाले समय में इस्तेमाल करने के लिए हासिल कर लेंगे. साथ ही, हम उसे प्रिंट भी कर देंगे, ताकि हम उसे अपने समाधान के आउटपुट के तौर पर देख सकें.

SolutionRunner.java

ManagedCustomerReturnValue result =
    managedCustomerService.mutate(new ManagedCustomerOperation[] {operation});
Long adWordsId = result.getValue()[0].getCustomerId();
System.out.printf("Created new AdWords account %d%n", adWordsId);

इसे आज़माएं

पहले की तरह ही, समाधान को चलाने की कोशिश करें. अगर कमांड लाइन से Maven का इस्तेमाल किया जा रहा है, तो:

mvn compile
mvn exec:java -Dexec.mainClass="SolutionRunner"

सब कुछ ठीक होने के बाद भी आपको कोई गड़बड़ी नहीं दिखाई देगी और इस बार हम अपने बनाए नए AdWords खाते की आईडी देखेंगे. अपने मैनेजर खाते के लिए AdWords साइट की जांच करें. वहां आपको नया खाता भी दिखेगा!

6. Merchant Center का नया उप-खाता बनाएं

इस चरण में, हम Merchant Center उप-खाता बनाएंगे, जिसे हम उस AdWords खाते से लिंक करेंगे जो हमने अंतिम चरण में बनाया था. उप-खाता बनाने के बाद अलग से लिंक का अनुरोध करने के बजाय, हम बनाते समय लिंक का अनुरोध कर सकते हैं, क्योंकि हमारे पास संबंधित AdWords खाते का आईडी पहले से ही मौजूद है.

नए उप-खाते के लिए सेटिंग तय करें

AdWords API के उलट, Account मॉडल क्लास के सेटर ऑब्जेक्ट दिखाते हैं, ताकि हम अपने कॉल को नए Account ऑब्जेक्ट पर उनके लिए चेन कर सकें. हम AdWords खाता बनाते समय जनरेट किए गए किसी भी नंबर का इस्तेमाल, नए Merchant Center खाते के नाम में भी करेंगे.

SolutionRunner.java

Account newMcAccount = new Account()
    .setName(String.format("Merchant Center Account Created by Run %d", run))
    .setAdwordsLinks(
        ImmutableList.of(
            new AccountAdwordsLink()
                .setAdwordsId(BigInteger.valueOf(adWordsId))
                .setStatus("active")));

जैसा कि इस चरण के परिचय में बताया गया है, क्योंकि मैनेज किए जा रहे नए खाते के लिए हमारे पास पहले से ही AdWords आईडी है, इसलिए हम उस आईडी को नए उप-खाते के लिए AdwordsLinks की सूची में जोड़ सकते हैं. नया उप-खाता बनने पर, इस लिंक का अनुरोध अपने-आप किया जाएगा और यह AdWords API में उपलब्ध होगा.

नया उप-खाता बनाना

Content API में, हम Accounts सेवा को ऐक्सेस करने के लिए, सेशन ऑब्जेक्ट के accounts() तरीके को कॉल करते हैं. इसके बाद, कोई ऑपरेशन ऑब्जेक्ट सेट अप करने के बजाय, सीधे insert() तरीके को कॉल करते हैं. इस तरीके में दो आर्ग्युमेंट इस्तेमाल किए जाते हैं: एक से ज़्यादा क्लाइंट वाले उस खाते का आईडी जिससे नया उप-खाता बनाना है और Account ऑब्जेक्ट, जिसमें अपने हिसाब से सेटिंग मौजूद हैं:

SolutionRunner.java

newMcAccount = contentApiSession.accounts().insert(mcaId, newMcAccount).execute();

System.out.printf("Created new Merchant Center account %s%n", newMcAccount.getId());

insert() तरीका, एक Account ऑब्जेक्ट दिखाता है, जिसमें नए उप-खाते की सेटिंग होती है. हम अपने मूल Account ऑब्जेक्ट को ओवरराइट कर देते हैं, क्योंकि वापस किए गए वर्शन में एक ज़रूरी जानकारी शामिल होती है: नए उप-खाते का आईडी. हम उसे अपने समाधान से आउटपुट में प्रिंट करते हैं, ताकि हम अपना समाधान चला सकें और फिर पुष्टि कर सकें कि Merchant Center में नया उप-खाता मौजूद है.

इसे आज़माएं

पहले की तरह ही, समाधान को चलाने की कोशिश करें. अगर कमांड लाइन से Maven का इस्तेमाल किया जा रहा है, तो:

mvn compile
mvn exec:java -Dexec.mainClass="SolutionRunner"

सब कुछ ठीक होने पर, आपको अब भी कोई गड़बड़ी नहीं दिखेगी. इस बार हम नए AdWords खाते और नए Merchant Center खाते, दोनों के आईडी देखेंगे. एक से ज़्यादा क्लाइंट वाले अपने खाते के Merchant Center खाते पर जाकर नया उप-खाता देखें.

7. AdWords खाते से लिंक स्वीकार करें

आखिरी चरण में, हमने Merchant Center का एक नया उप-खाता बनाया. साथ ही, उसी समय हमारे नए AdWords खाते से भी लिंक करने का अनुरोध किया. इस चरण में, हम अनुरोध किए गए लिंक को स्वीकार करने के लिए, AdWords API का इस्तेमाल करके प्रोसेस पूरी करेंगे.

CustomerService को ऐक्सेस करें

पहले की तरह ही, हम CustomerService का क्लाइंट पाने के लिए AdWordsServices क्लास का इस्तेमाल करेंगे. हालांकि, क्लाइंट बनाने से पहले, हम पहले अपने AdWords सेशन का ऑब्जेक्ट बदलते हैं, ताकि आने वाले समय में इन ऐप्लिकेशन का इस्तेमाल, मैनेजर खाते के बजाय नए मैनेज किए जा रहे खाते पर किया जा सके. आखिर में, Merchant Center खाते ने मैनेज किए जा रहे खाते से लिंक करने का अनुरोध किया, न कि मैनेजर खाते से.

SolutionRunner.java

// TODO(acceptLink): Using the mutateServiceLinks method in CustomerService, accept the
// proposed link between the new AdWords account and the new Merchant Center account.

adWordsSession.setClientCustomerId(adWordsId.toString());

CustomerServiceInterface customerService =
    adWordsServices.get(adWordsSession, CustomerServiceInterface.class);

जैसे कि जब हम नया AdWords खाता बनाते हैं, तब हम एक ServiceLink ऑब्जेक्ट बनाते हैं, जिसमें लिंक सेटिंग शामिल होती हैं और फिर एक ServiceLinkOperation ऑब्जेक्ट बनाते हैं, जो मनचाहे ऑपरेशन के बारे में बताता है. यहां हम, मंज़ूरी बाकी वाले सेवा लिंक को MERCHANT_CENTER खाते से और SET को ACTIVE में ले जाना चाहते हैं. serviceLinkId सेटिंग के लिए, हम अपने अभी-अभी बनाए गए Merchant Center खाते की आईडी का इस्तेमाल करेंगे, जैसा कि AdWords में सेवा लिंक के आईडी के लिए किया जाता है.

SolutionRunner.java

ServiceLink serviceLink = new ServiceLink();
serviceLink.setServiceLinkId(newMcAccount.getId().longValue());
serviceLink.setLinkStatus(ServiceLinkLinkStatus.ACTIVE);
serviceLink.setServiceType(ServiceType.MERCHANT_CENTER);

ServiceLinkOperation op = new ServiceLinkOperation();
op.setOperator(Operator.SET);
op.setOperand(serviceLink);

आखिर में, हम कार्रवाई करने के लिए, CustomerService ऑब्जेक्ट के mutateServiceLinks() तरीके को कॉल करेंगे. पहले की तरह, इसमें सर्विस लिंक से जुड़ी अलग-अलग कार्रवाइयां करने की ज़रूरत पड़ती है. इस बार, यह तरीका सेवा लिंक की सूची (संभावित रूप से बदले गए) सेवा लिंक की सूची सीधे तौर पर दिखाता है, ताकि हम सिर्फ़ उस सूची पर लूप करके अपने समाधान के नतीजे को प्रिंट कर दें. हमने सिर्फ़ एक कार्रवाई के बारे में बताया है, इसलिए आउटपुट में सिर्फ़ एक लिंक प्रिंट होने की उम्मीद है.

SolutionRunner.java

ServiceLink[] mutatedServiceLinks =
    customerService.mutateServiceLinks(new ServiceLinkOperation[] {op});
for (ServiceLink mutatedServiceLink : mutatedServiceLinks) {
  System.out.printf(
      "Service link with service link ID %d, type '%s' updated to status: %s.%n",
      mutatedServiceLink.getServiceLinkId(),
      mutatedServiceLink.getServiceType(),
      mutatedServiceLink.getLinkStatus());
}

इसे आज़माएं

पहले की तरह ही, समाधान को चलाने की कोशिश करें. अगर कमांड लाइन से Maven का इस्तेमाल किया जा रहा है, तो:

mvn compile
mvn exec:java -Dexec.mainClass="SolutionRunner"

अगर सब ठीक रहता है, तो भी आपको कोई गड़बड़ी नहीं दिखेगी. साथ ही, इस बार हम यह भी बताएंगे कि सेवा लिंक को चालू करने के लिए अपडेट कर दिया गया था. AdWords और Merchant Center की जांच करें और दोबारा जांच करें कि ये खाते अब लिंक हैं या नहीं.

8. किसी थीम के अलग-अलग वर्शन

कोडलैब (कोड बनाना सीखना) पूरा करने के लिए बधाई! अब जब आपके पास पूरी तरह से काम करने वाला समाधान है, तो आइए इस बारे में कुछ उदाहरण देखते हैं कि इस कोडलैब में देखे गए ज़्यादा से ज़्यादा एपीआई का इस्तेमाल करने के लिए, आप इसे कैसे बदल सकते हैं या बढ़ा सकते हैं.

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

फ़िलहाल, यह ऐप्लिकेशन सिर्फ़ एपीआई कॉल की गड़बड़ियों को ही सफलता का संकेत मानता है. नए Merchant Center और AdWords खातों की लिंक जानकारी की जांच करने के लिए उदाहरण का विस्तार करके देखें और देखें कि लिंक वाकई में सक्रिय है या नहीं.

पूरी दुनिया आपका ऑइस्टर

अगर आपको लगता है कि आपके चैनल में कुछ और बदलाव किए जा सकते हैं, तो उन्हें आज़माकर देखें! अगर आपको अपने आइडिया के लिए रेफ़रंस कोड की ज़रूरत है, तो Google Ads Java क्लाइंट लाइब्रेरी सोर्स में Google Shopping के सैंपल और examples डायरेक्ट्री देखें.