AdWords এবং Merchant Center সাব-অ্যাকাউন্ট তৈরি এবং লিঙ্ক করা

১. ভূমিকা

এই কোডল্যাবে, আপনি শপিং-এর জন্য কন্টেন্ট এপিআই (Content API) এবং অ্যাডওয়ার্ডস এপিআই (AdWords API) নিয়ে কাজ করার কিছু প্রাথমিক বিষয় শিখবেন এবং এমন একটি অ্যাপ্লিকেশন তৈরি করবেন যা উভয়ই ব্যবহার করে। বিশেষ করে, আপনি একটি কমান্ড-লাইন অ্যাপ্লিকেশন তৈরি করবেন যা একটি অ্যাডওয়ার্ডস অ্যাকাউন্ট এবং একটি মার্চেন্ট সেন্টার অ্যাকাউন্ট তৈরি ও লিঙ্ক করবে।

আপনি যা শিখবেন

  • ম্যানেজার অ্যাকাউন্ট দ্বারা পরিচালিত অ্যাডওয়ার্ডস অ্যাকাউন্ট কীভাবে তৈরি করবেন
  • একাধিক ক্লায়েন্ট অ্যাকাউন্ট দ্বারা পরিচালিত মার্চেন্ট সেন্টার অ্যাকাউন্ট কীভাবে তৈরি করবেন
  • মার্চেন্ট সেন্টার অ্যাকাউন্ট থেকে অ্যাডওয়ার্ডস অ্যাকাউন্টে কীভাবে লিঙ্কের জন্য অনুরোধ করবেন
  • অ্যাডওয়ার্ডস অ্যাকাউন্টে অপেক্ষাধীন মার্চেন্ট সেন্টার লিঙ্ক কীভাবে গ্রহণ করবেন।

আপনার যা যা লাগবে

২. প্রস্তুতি গ্রহণ

কোডটি ডাউনলোড করুন

এই কোডল্যাবের সমস্ত কোড ডাউনলোড করতে নিচের লিঙ্কে ক্লিক করুন:

ডাউনলোড করা জিপ ফাইলটি আনপ্যাক করুন। এটি একটি রুট ফোল্ডার ( shopping-account-linking-master ) আনপ্যাক করবে, যার মধ্যে একটি মেভেন প্রজেক্ট এবং আপনার প্রয়োজনীয় সমস্ত রিসোর্স রয়েছে। নিম্নলিখিত সাবডিরেক্টরিগুলো বিশেষভাবে উল্লেখযোগ্য:

  • src/main/java হলো Maven প্রজেক্টের সোর্স রুট এবং এতে আপনার কাজ করার জন্য একটি কোড স্কেলেটন থাকে।
  • src/main/java/solution সম্পূর্ণ সমাধানটি রয়েছে।

প্রয়োজনীয় প্যাকেজ ইনস্টল করুন এবং বিল্ড করুন

আপনি যদি Eclipse বা IntelliJ-এর মতো Maven-সক্ষম IDE ব্যবহার করেন , তাহলে আপনি এক্সট্র্যাক্ট করা ফোল্ডারটিকে একটি Maven প্রজেক্ট হিসেবে ইম্পোর্ট করতে পারেন এবং তারপর প্রজেক্টটি স্বাভাবিকভাবে কম্পাইল করতে পারেন।

আপনি যদি কমান্ড লাইন থেকে Maven ব্যবহার করেন , তাহলে আনপ্যাক করা প্রজেক্টের ( shopping-account-linking-master ) রুট ফোল্ডার থেকে প্রয়োজনীয় প্যাকেজগুলো সংগ্রহ করতে এবং প্রজেক্টটি কম্পাইল করতে নিম্নলিখিত কমান্ডটি চালাতে পারেন:

mvn compile

৩. প্রমাণীকরণ সেট আপ করুন

এই ধাপে আমরা কোনো কোডিং করব না, বরং অ্যাডওয়ার্ডস এপিআই (AdWords API) এবং শপিং-এর জন্য কন্টেন্ট এপিআই (Content API)-এর উপযুক্ত অথেনটিকেশন টোকেন সম্বলিত ফাইলগুলো সেট আপ করব।

অ্যাডওয়ার্ডস এপিআই প্রমাণীকরণ সেট আপ করুন

এই কোডল্যাবটি ক্লায়েন্ট লাইব্রেরির মতোই ক্রেডেনশিয়াল লোডিং পদ্ধতি ব্যবহার করে, তাই আপনি যদি আপনার ম্যানেজার অ্যাকাউন্ট দিয়ে ইতিমধ্যেই Google Ads APIs Client Library for Java ব্যবহার করে থাকেন, তাহলে আপনার সেটআপ আগে থেকেই করা থাকার কথা। অন্যথায়, Google Ads APIs Client Library for Java দিয়ে কাজ শুরু করার জন্য ধাপ ১-৩ অনুসরণ করুন।

কন্টেন্ট এপিআই প্রমাণীকরণ সেট আপ করুন

যদি আপনার কাছে আগে থেকেই কোনো সার্ভিস অ্যাকাউন্ট কী না থাকে:

  1. আপনার মাল্টি-ক্লায়েন্ট অ্যাকাউন্টের মার্চেন্ট সেন্টারে যান এবং ওভারফ্লো মেনু থেকে কন্টেন্ট এপিআই (Content API) নির্বাচন করুন: 89507d635c51a3dc.png
  2. প্রমাণীকরণ নির্বাচন করুন, তারপর নীল + বোতামটিতে ক্লিক করুন: c465d8dc314ec158.png
  3. গুগল ক্লাউড প্ল্যাটফর্ম এবং গুগল এপিআই-এর পরিষেবার শর্তাবলী গ্রহণ করার পর, আপনার ব্রাউজার স্বয়ংক্রিয়ভাবে একটি JSON ফাইল ডাউনলোড করবে, যেটিতে আপনার নতুন পরিষেবা অ্যাকাউন্ট কী থাকবে।

এখন একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করে শপিং স্যাম্পলগুলোর জন্য অথেনটিকেশন সেট আপ করার নির্দেশাবলী অনুসরণ করুন। অর্থাৎ, আপনার সার্ভিস অ্যাকাউন্ট কী-এর একটি কপি আপনার হোম ডিরেক্টরির নিম্নলিখিত পাথে থাকতে হবে: shopping-samples/content/service-account.json । আপনার স্যাম্পল কনফিগারেশন সেট আপ করার প্রয়োজন নেই, যদি না আপনি এই কোডল্যাবটি শেষ করার পর স্যাম্পলগুলো চেষ্টা করে দেখতে আগ্রহী হন!

পরীক্ষা করে দেখুন

এখন যেহেতু আপনার অথেনটিকেশন টোকেনগুলো সঠিক জায়গায় আছে, স্যাম্পলগুলো চালানোর চেষ্টা করুন। আপনি যদি কমান্ড লাইনে Maven ব্যবহার করেন, তাহলে নিম্নলিখিত কমান্ডগুলো চালান:

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

যদি সেশন অবজেক্ট সরবরাহ করা হয়নি এমন কোনো ত্রুটির বার্তা পান, তাহলে আপনার প্রমাণীকরণ টোকেনগুলো যথাস্থানে আছে এবং সঠিকভাবে কাজ করছে! অন্যথায়, আপনি যে ত্রুটির বার্তাটি পাবেন, তা থেকে আপনি জানতে পারবেন কোন ক্রেডেনশিয়ালগুলো কাজ করতে ব্যর্থ হয়েছে এবং কোন ফাইলটি ঠিক করতে হবে।

৪. এপিআই-গুলোর সাথে সংযোগ করুন

এখন যেহেতু আপনার কাছে আমাদের ব্যবহৃত দুটি এপিআই-এর জন্য বৈধ অথেনটিকেশন টোকেন রয়েছে, চলুন মূল কোডটি পূরণ করা শুরু করা যাক। আমরা আমাদের অথেনটিকেশন টোকেন ব্যবহার করে সেশন অবজেক্ট তৈরি করার মাধ্যমে শুরু করব। পরবর্তী ধাপগুলোতে, আমরা এই সেশন অবজেক্টগুলো ব্যবহার করে প্রতিটি এপিআই দ্বারা প্রদত্ত বিভিন্ন সার্ভিস এবং মেথড অ্যাক্সেস করব।

একটি কন্টেন্ট এপিআই সেশন অবজেক্ট তৈরি করুন

একটি কন্টেন্ট এপিআই সেশন তৈরি করতে, আমরা একটি 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 অবজেক্টের মাধ্যমে যেকোনো কাঙ্ক্ষিত অপশন সেট করতে হয়।

একটি অ্যাডওয়ার্ডস এপিআই সেশন অবজেক্ট তৈরি করুন

একইভাবে, 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();

পরীক্ষা করে দেখুন

আপনি যদি কমান্ড লাইন থেকে মেভেন প্রজেক্টটি চালান, তাহলে এটি রিবিল্ড ও রান করার জন্য আমরা আগের সেকশনের মতোই একই কমান্ডগুলো ব্যবহার করব:

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

এবার আপনার কোনো ত্রুটি পাওয়ার কথা নয়, যদিও আপনি কোনো গুরুত্বপূর্ণ আউটপুটও পাবেন না। নতুন অ্যাকাউন্ট তৈরি ও লিঙ্ক করার জন্য যখন আমরা এপিআই (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 অ্যাক্সেস করি, যা আমাদেরকে একটি নির্দিষ্ট ম্যানেজার অ্যাকাউন্ট থেকে অ্যাডওয়ার্ডস 'কাস্টমার' (অ্যাকাউন্ট) পরিচালনা করার সুযোগ দেয়।

নতুন অ্যাকাউন্ট সেটিংস নির্দিষ্ট করুন

প্রথমে, আমরা একটি ManagedCustomer অবজেক্ট তৈরি করব, যাতে আমাদের নতুন অ্যাকাউন্টের সেটিংস থাকবে। এই কোডল্যাবের জন্য আমরা একটি টেস্ট অ্যাকাউন্ট তৈরি করব, যার কারেন্সি হবে USD এবং টাইম জোন হবে মার্কিন যুক্তরাষ্ট্রের পশ্চিম উপকূলের সমান।

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");

আমরা একটি র‍্যান্ডম নম্বরও তৈরি করি যা অ্যাকাউন্টের নামে অন্তর্ভুক্ত করা হয়। এর কারণ হলো, আমরা এখানে যে অ্যাডওয়ার্ডস অ্যাকাউন্টটি তৈরি করব, সেটিকে পরে তৈরি করা মার্চেন্ট সেন্টার অ্যাকাউন্টের সাথে মেলানো, যাতে আমাদের সমাধানটি সম্পূর্ণ হয়ে গেলে আমরা সেগুলোকে দৃশ্যত পরীক্ষা করে নিশ্চিত হতে পারি যে দুটি সত্যিই সংযুক্ত হয়েছে।

নতুন পরিচালিত অ্যাকাউন্ট তৈরি করুন

প্রকৃতপক্ষে নতুন অ্যাকাউন্টটি তৈরি করতে, আমরা ManagedCustomerOperation ব্যবহার করে একটি ADD অপারেশন নির্দিষ্ট করব:

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"

সবকিছু ঠিকঠাক থাকলে, আপনি তখনও কোনো ত্রুটি দেখতে পাবেন না এবং এবার আমরা আমাদের তৈরি করা নতুন অ্যাডওয়ার্ডস অ্যাকাউন্টের আইডি দেখতে পাব। আপনার ম্যানেজার অ্যাকাউন্টের জন্য অ্যাডওয়ার্ডস সাইটটি দেখুন এবং সেখানেও নতুন অ্যাকাউন্টটি তালিকাভুক্ত দেখতে পাবেন!

৬. একটি নতুন মার্চেন্ট সেন্টার সাব-অ্যাকাউন্ট তৈরি করুন

এই ধাপে, আমরা মার্চেন্ট সেন্টার সাব-অ্যাকাউন্টটি তৈরি করব, যেটি আমরা গত ধাপে তৈরি করা অ্যাডওয়ার্ডস অ্যাকাউন্টের সাথে লিঙ্ক করব। সাব-অ্যাকাউন্ট তৈরি করার পরে আলাদাভাবে লিঙ্কের জন্য অনুরোধ করার পরিবর্তে, আমরা তৈরির সময়েই লিঙ্কের জন্য অনুরোধ করতে পারি, কারণ সংশ্লিষ্ট অ্যাডওয়ার্ডস অ্যাকাউন্টের আইডি আমাদের কাছে ইতিমধ্যেই রয়েছে।

নতুন সাব-অ্যাকাউন্টের জন্য সেটিংস নির্দিষ্ট করুন।

অ্যাডওয়ার্ডস এপিআই-এর থেকে ভিন্ন, Account মডেল ক্লাসের সেটারগুলো অবজেক্ট রিটার্ন করে, তাই আমরা নতুন Account অবজেক্টের উপর এগুলোতে চেইন কল করতে পারি। আমরা নতুন মার্চেন্ট সেন্টার অ্যাকাউন্টের নামেও অ্যাডওয়ার্ডস অ্যাকাউন্ট তৈরির সময় জেনারেট করা র‍্যান্ডম নম্বরটি ব্যবহার করব।

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")));

এই ধাপের ভূমিকায় যেমন উল্লেখ করা হয়েছে, যেহেতু আমাদের কাছে নতুন ম্যানেজড অ্যাকাউন্টের অ্যাডওয়ার্ডস আইডি ইতিমধ্যেই আছে, তাই আমরা এখন নতুন সাব-অ্যাকাউন্টের জন্য AdwordsLinks -এর তালিকায় সেই আইডিটি যোগ করতে পারি। যখন নতুন সাব-অ্যাকাউন্টটি তৈরি করা হবে, তখন এই লিঙ্কটি স্বয়ংক্রিয়ভাবে অনুরোধ করা হবে এবং অ্যাডওয়ার্ডস এপিআই-তে উপলব্ধ থাকবে।

নতুন সাব-অ্যাকাউন্ট তৈরি করুন

কন্টেন্ট এপিআই-তে, আমরা 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 অবজেক্টটি ওভাররাইট করি, কারণ রিটার্ন করা ভার্সনটিতে একটি গুরুত্বপূর্ণ তথ্য থাকে: নতুন সাব-অ্যাকাউন্টের আইডি। আমরা আমাদের সলিউশনের আউটপুটে সেটি প্রিন্ট করি, যাতে আমরা সলিউশনটি রান করে মার্চেন্ট সেন্টারে নতুন সাব-অ্যাকাউন্টটির অস্তিত্ব যাচাই করতে পারি।

পরীক্ষা করে দেখুন

আগের মতোই, সলিউশনটি রান করার চেষ্টা করুন। যদি আপনি কমান্ড লাইন থেকে Maven ব্যবহার করেন:

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

সবকিছু ঠিকঠাক থাকলে, আপনি তখনও কোনো ত্রুটি দেখতে পাবেন না এবং এবার আমরা নতুন অ্যাডওয়ার্ডস অ্যাকাউন্ট ও নতুন মার্চেন্ট সেন্টার অ্যাকাউন্ট উভয়ের আইডি দেখতে পাব। সেখানে নতুন সাব-অ্যাকাউন্টটি দেখতে আপনার মাল্টি-ক্লায়েন্ট অ্যাকাউন্টের মার্চেন্ট সেন্টারটি পরীক্ষা করুন।

৭. অ্যাডওয়ার্ডস অ্যাকাউন্ট থেকে লিঙ্কটি গ্রহণ করুন।

শেষ ধাপে, আমরা একটি নতুন মার্চেন্ট সেন্টার সাব-অ্যাকাউন্ট তৈরি করেছি এবং একই সাথে আমাদের নতুন অ্যাডওয়ার্ডস অ্যাকাউন্টের লিঙ্কের জন্য অনুরোধ করেছি। এই ধাপে, আমরা অ্যাডওয়ার্ডস এপিআই ব্যবহার করে অনুরোধ করা লিঙ্কটি গ্রহণ করার মাধ্যমে প্রক্রিয়াটি সম্পন্ন করব।

গ্রাহক পরিষেবা অ্যাক্সেস করুন

আগের মতোই, আমরা CustomerService জন্য একটি ক্লায়েন্ট পেতে AdWordsServices ক্লাসটি ব্যবহার করব। তবে, ক্লায়েন্ট তৈরি করার আগে, আমরা প্রথমে আমাদের AdWords সেশন অবজেক্টটি পরিবর্তন করে নেব, যাতে ভবিষ্যতের ব্যবহারগুলো ম্যানেজার অ্যাকাউন্টের পরিবর্তে নতুন ম্যানেজড অ্যাকাউন্টে পরিচালিত হয়। সর্বোপরি, মার্চেন্ট সেন্টার অ্যাকাউন্টটি ম্যানেজার অ্যাকাউন্টের সাথে নয়, বরং ম্যানেজড অ্যাকাউন্টের সাথে একটি লিঙ্কের অনুরোধ করেছিল।

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);

যেমন আমরা একটি নতুন অ্যাডওয়ার্ডস অ্যাকাউন্ট তৈরি করার সময় করেছিলাম, তেমনই আমরা একটি ServiceLink অবজেক্ট তৈরি করব যাতে লিঙ্কের সেটিংস থাকবে, এবং তারপর একটি ServiceLinkOperation অবজেক্ট SET করব যা কাঙ্ক্ষিত অপারেশনটি বর্ণনা করবে। এখানে, আমরা একটি MERCHANT_CENTER অ্যাকাউন্টের পেন্ডিং সার্ভিস লিঙ্কটিকে ACTIVE করতে চাই। serviceLinkId সেটিংয়ের জন্য, আমরা এইমাত্র তৈরি করা মার্চেন্ট সেন্টার অ্যাকাউন্টের আইডি ব্যবহার করব, কারণ অ্যাডওয়ার্ডসে সার্ভিস লিঙ্কের আইডি হিসেবে সেটিই ব্যবহৃত হয়।

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 এবং মার্চেন্ট সেন্টার পরীক্ষা করে পুনরায় যাচাই করুন যে অ্যাকাউন্টগুলো এখন সত্যিই লিঙ্ক করা আছে।

৮. একই বিষয়ের বিভিন্ন রূপ

কোডল্যাবটি সফলভাবে সম্পন্ন করার জন্য অভিনন্দন! এখন যেহেতু আপনার কাছে একটি সম্পূর্ণ কার্যকরী সমাধান আছে, চলুন কিছু উদাহরণ দেখি কীভাবে আপনি এই কোডল্যাবে দেখা আরও API ব্যবহার করার জন্য এটিকে পরিবর্তন বা প্রসারিত করতে পারেন।

কোডল্যাবে, আমরা চতুরতার সাথে প্রথমে অ্যাডওয়ার্ডস অ্যাকাউন্টটি তৈরি করেছিলাম, যাতে মার্চেন্ট সেন্টার অ্যাকাউন্ট তৈরি করার সময় লিঙ্কের জন্য অনুরোধ করতে আমরা এর তথ্য ব্যবহার করতে পারি। তবে, যদি মার্চেন্ট সেন্টার অ্যাকাউন্টটি আগে থেকেই বিদ্যমান থাকে, তাহলে আপনাকে এর পরিবর্তে সেটির কনফিগারেশন আপডেট করতে হবে। আপনার কোডটি পরিবর্তন করে প্রথমে মার্চেন্ট সেন্টার অ্যাকাউন্টটি তৈরি করার চেষ্টা করুন, এবং তারপর অ্যাডওয়ার্ডস অ্যাকাউন্টটি তৈরি করার পরে ফিরে এসে লিঙ্কের জন্য অনুরোধ করতে সেটির কনফিগারেশন আপডেট করুন।

বর্তমানে, অ্যাপ্লিকেশনটি শুধুমাত্র এপিআই কলে কোনো ত্রুটি না থাকাকেই সফলতার লক্ষণ হিসেবে গণ্য করে। নতুন মার্চেন্ট সেন্টার এবং অ্যাডওয়ার্ডস অ্যাকাউন্টগুলোর লিঙ্ক তথ্য যাচাই করতে উদাহরণটি আরও বিস্তৃত করে দেখুন যে লিঙ্কটি আসলেই সক্রিয় আছে কিনা।

সারা বিশ্ব তোমার হাতের মুঠোয়।

আপনি যদি অন্য কোনো পরিবর্তনের কথা ভেবে থাকেন, তবে সেগুলো চেষ্টা করে দেখুন! আপনার ধারণাগুলোর জন্য যদি রেফারেন্স কোডের প্রয়োজন হয়, তাহলে Google Shopping স্যাম্পলগুলো এবং Google Ads Java ক্লায়েন্ট লাইব্রেরি সোর্সের examples ডিরেক্টরিটি দেখে নিতে পারেন।