বণিক কেন্দ্র অ্যাকাউন্টগুলির জন্য আপনার ইমেল বিজ্ঞপ্তি পছন্দগুলি পরিচালনা করুন৷

এই নির্দেশিকা ব্যাখ্যা করে যে কীভাবে আপনার বণিক কেন্দ্র অ্যাকাউন্টের ইমেল বিজ্ঞপ্তি পছন্দগুলিকে বণিক API ব্যবহার করে অ-বাধ্যতামূলক ইমেলগুলির জন্য পরিচালনা করবেন৷

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

মার্চেন্ট API শুধুমাত্র "সংবাদ এবং টিপস" ইমেলের জন্য পছন্দগুলি পরিচালনা করতে সহায়তা করে৷

বিশেষ বিবেচনা

  • শুধুমাত্র প্রমাণীকৃত ব্যবহারকারী : আপনি শুধুমাত্র API কলের জন্য প্রমাণীকৃত ব্যবহারকারী অ্যাকাউন্টের জন্য ইমেল পছন্দগুলি পেতে বা আপডেট করতে পারেন। আপনাকে অবশ্যই অনুরোধের পাথে এই ব্যবহারকারীর ইমেল ঠিকানা উল্লেখ করতে হবে (উদাহরণস্বরূপ, user@email.com ) অথবা me উপনাম ব্যবহার করুন।
  • উন্নত অ্যাকাউন্ট : আপনি যদি একজন উন্নত অ্যাকাউন্ট ব্যবহারকারী হন, আপনার ইমেল পছন্দগুলি উন্নত অ্যাকাউন্ট স্তরে সেট করা হয় এবং উন্নত অ্যাকাউন্টে এবং এর সমস্ত উপ-অ্যাকাউন্টগুলিতে প্রয়োগ করা হয়। API ব্যবহার করার সময়, উন্নত অ্যাকাউন্ট ব্যবহারকারীদের তাদের পছন্দগুলি পরিচালনা করার জন্য উন্নত অ্যাকাউন্ট আইডি নির্দিষ্ট করা উচিত।
  • পরিষেবা অ্যাকাউন্ট : পরিষেবা অ্যাকাউন্টগুলি তাদের জন্য ইমেল পছন্দগুলি সেট করা থাকলেও বিজ্ঞপ্তিগুলি পায় না৷
  • UNCONFIRMED অবস্থা : একটি ইমেল পছন্দের জন্য UNCONFIRMED অপ্ট-ইন অবস্থা শুধুমাত্র সার্ভার দ্বারা সেট করা যেতে পারে৷ আপনি API ব্যবহার করে UNCONFIRMED এ একটি পছন্দ সেট করতে পারবেন না। এই পছন্দ সেট করার চেষ্টা করলে একটি ত্রুটি দেখা দেয়। UNCONFIRMED অবস্থা নির্দেশ করে যে একটি নিশ্চিতকরণ ইমেল এমন একজন ব্যবহারকারীকে পাঠানো হয়েছে যিনি নির্বাচন করেছেন, কিন্তু তারা এখনও নিশ্চিতকরণ লিঙ্কে ক্লিক করেননি।

আপনার Merchant Center ইমেল পছন্দ চেক করুন

একটি নির্দিষ্ট মার্চেন্ট সেন্টার অ্যাকাউন্টের জন্য আপনার বর্তমান ইমেল বিজ্ঞপ্তি সেটিংস দেখতে, GetEmailPreferences পদ্ধতি ব্যবহার করুন। আপনাকে আপনার Merchant Center অ্যাকাউন্ট আইডি প্রদান করতে হবে এবং ব্যবহারকারীর জন্য ইমেল ঠিকানা ব্যবহার করতে হবে বা প্রমাণীকৃত ব্যবহারকারীকে নির্দেশ করতে me উপনাম ব্যবহার করতে হবে।

এই অনুরোধটি EmailPreferences রিসোর্স পুনরুদ্ধার করে, যা উপলব্ধ বিজ্ঞপ্তি বিভাগের জন্য আপনার অপ্ট-ইন স্থিতি দেখায়, যেমন news_and_tips

GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences

একটি সফল অনুরোধ আপনার বর্তমান সেটিংস দেখানো EmailPreferences সম্পদ ফেরত দেয়।

নমুনা প্রতিক্রিয়া:

{
  "name": "accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences",
  "news_and_tips": "OPTED_IN"
}

এই কোড নমুনাটি দেখায় কিভাবে আপনার Merchant Center অ্যাকাউন্টের জন্য ইমেল পছন্দগুলি পুনরুদ্ধার করতে হয়।

জাভা

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferences;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesName;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceClient;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceSettings;
import com.google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/** This class demonstrates how to get the email preferences of a Merchant Center account. */
public class GetEmailPreferencesSample {

  public static void getEmailPreferences(Config config, String email) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    EmailPreferencesServiceSettings emailPreferencesServiceSettings =
        EmailPreferencesServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates EmailPreferences name to identify the EmailPreferences.
    String name =
        EmailPreferencesName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .setEmail(email)
            .build()
            .toString();

    // Calls the API and catches and prints any network failures/errors.
    try (EmailPreferencesServiceClient emailPreferencesServiceClient =
        EmailPreferencesServiceClient.create(emailPreferencesServiceSettings)) {

      // The name has the format: accounts/{account}/users/{user}/emailPreferences
      GetEmailPreferencesRequest request =
          GetEmailPreferencesRequest.newBuilder().setName(name).build();

      System.out.println("Sending get EmailPreferences request:");
      EmailPreferences response = emailPreferencesServiceClient.getEmailPreferences(request);

      System.out.println("Retrieved EmailPreferences below");
      System.out.println(response);
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // The email address of this user. If you want to get the user information
    // Of the user making the Content API request, you can also use "me" instead
    // Of an email address.
    String email = "testUser@gmail.com";
    // String email = "me";

    getEmailPreferences(config, email);
  }
}

পিএইচপি

use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1beta\Client\EmailPreferencesServiceClient;
use Google\Shopping\Merchant\Accounts\V1beta\GetEmailPreferencesRequest;

/**
 * This class demonstrates how to get the email preferences of a Merchant Center account.
 */
class GetEmailPreferences
{
    /**
     * Gets the email preferences of a Merchant Center account.
     *
     * @param array $config
     *      The configuration data used for authentication and getting the acccount ID.
     * @param string $email The email address of this user. If you want to get the user information
     *      of the user making the Merchant API request, you can also use "me" instead
     *      of an email address.
     *
     * @return void
     */
    public static function getEmailPreferencesSample($config, $email): void
    {
        // Gets the OAuth credentials to make the request.
        $credentials = Authentication::useServiceAccountOrTokenFile();

        // Creates options config containing credentials for the client to use.
        $options = ['credentials' => $credentials];

        // Creates a client.
        $emailPreferencesServiceClient = new EmailPreferencesServiceClient($options);

        // Creates EmailPreferences name to identify the EmailPreferences.
        // The name has the format: accounts/{account}/users/{user}/emailPreferences
        $name = "accounts/" . $config['accountId'] . "/users/" . $email . "/emailPreferences";

        // Calls the API and catches and prints any network failures/errors.
        try {
            $request = (new GetEmailPreferencesRequest())
                ->setName($name);

            print "Sending get EmailPreferences request:\n";
            $response = $emailPreferencesServiceClient->getEmailPreferences($request);

            print "Retrieved EmailPreferences below\n";
            print_r($response);
        } catch (ApiException $e) {
            print $e->getMessage();
        }
    }

    /**
     * Helper to execute the sample.
     *
     * @return void
     */
    public function callSample(): void
    {
        $config = Config::generateConfig();
        // The email address of this user. If you want to get the user information
        // Of the user making the Merchant API request, you can also use "me" instead
        // Of an email address.
        // $email = "testUser@gmail.com";
        $email = "me";

        self::getEmailPreferencesSample($config, $email);
    }
}

// Run the script
$sample = new GetEmailPreferences();
$sample->callSample();

পাইথন

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1beta import EmailPreferencesServiceClient
from google.shopping.merchant_accounts_v1beta import GetEmailPreferencesRequest

_ACCOUNT = configuration.Configuration().read_merchant_info()


def get_email_preferences(email_address):
  """Gets the email preferences of a Merchant Center account."""

  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = EmailPreferencesServiceClient(credentials=credentials)

  # Creates EmailPreferences name to identify the EmailPreferences.
  name = (
      "accounts/" + _ACCOUNT + "/users/" + email_address + "/emailPreferences"
  )

  # Creates the request.
  request = GetEmailPreferencesRequest(name=name)

  # Makes the request and catches and prints any error messages.
  try:
    response = client.get_email_preferences(request=request)
    print("Retrieved EmailPreferences below")
    print(response)
  except RuntimeError as e:
    print(e)


if __name__ == "__main__":
  # The email address of this user. If you want to get the user information
  # Of the user making the Content API request, you can also use "me" instead
  # Of an email address.
  # email = "testUser@gmail.com"
  email = "me"

  get_email_preferences(email)

cURL

curl --location \
'https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences' \
--header 'Authorization: Bearer <API_TOKEN>'

আপনার Merchant Center ইমেল পছন্দ পরিবর্তন করুন

আপনার ইমেল বিজ্ঞপ্তি পছন্দগুলি পরিবর্তন করতে, যেমন "সংবাদ এবং টিপস" ইমেলগুলি অপ্ট ইন বা আউট করার জন্য, UpdateEmailPreferences পদ্ধতি ব্যবহার করুন৷

আপনার অনুরোধে, আপনি Merchant Center অ্যাকাউন্ট আইডি প্রদান করবেন এবং ব্যবহারকারীর ইমেলের জন্য আপনার ইমেল ঠিকানা (বা me উপনাম) ব্যবহার করবেন। অনুরোধের মূল অংশে EmailPreferences অবজেক্ট থাকা উচিত এবং news_and_tips ক্ষেত্রের জন্য নির্বাচিত opt_in_state সহ। আপনি কোন পছন্দ পরিবর্তন করছেন তা নির্দেশ করতে update_mask ক্যোয়ারী প্যারামিটারে আপনাকে অবশ্যই news_and_tips উল্লেখ করতে হবে।

এই ক্রিয়াটি নির্দিষ্ট মার্চেন্ট সেন্টার অ্যাকাউন্টের জন্য প্রমাণীকৃত ব্যবহারকারীর ইমেল পছন্দগুলি আপডেট করে৷ উদাহরণস্বরূপ, OPTED_OUTnews_and_tips সেট করা আপনাকে সেই অ্যাকাউন্টের জন্য "সংবাদ এবং টিপস" ইমেলগুলি গ্রহণ করা থেকে বিরত করে৷

PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences?update_mask=news_and_tips

নমুনা অনুরোধ পেলোড ("সংবাদ এবং টিপস" অপ্ট আউট করতে):

{
  "name": "accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences",
  "news_and_tips": "OPTED_OUT"
}

একটি সফল অনুরোধ আপডেট করা EmailPreferences রিসোর্স ফেরত দেয়।

নমুনা প্রতিক্রিয়া:

{
  "name": "accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences",
  "news_and_tips": "OPTED_OUT"
}

এই কোড নমুনাটি দেখায় কিভাবে আপনার Merchant Center অ্যাকাউন্টের জন্য ইমেল পছন্দগুলি আপডেট করতে হয়, উদাহরণস্বরূপ "সংবাদ এবং টিপস" ইমেলগুলিতে অপ্ট-ইন করতে৷

জাভা

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.protobuf.FieldMask;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferences;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferences.OptInState;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesName;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceClient;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceSettings;
import com.google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to update a EmailPreferences to OPT_IN to News and Tips. This service
 * only permits retrieving and updating email preferences for the authenticated user.
 */
public class UpdateEmailPreferencesSample {

  public static void updateEmailPreferences(Config config, String email) throws Exception {

    GoogleCredentials credential = new Authenticator().authenticate();

    EmailPreferencesServiceSettings emailPreferencesServiceSettings =
        EmailPreferencesServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates EmailPreferences name to identify EmailPreferences.
    String name =
        EmailPreferencesName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .setEmail(email)
            .build()
            .toString();

    // Create a EmailPreferences with the updated fields.
    EmailPreferences emailPreferences =
        EmailPreferences.newBuilder().setName(name).setNewsAndTips(OptInState.OPTED_IN).build();

    FieldMask fieldMask = FieldMask.newBuilder().addPaths("news_and_tips").build();

    try (EmailPreferencesServiceClient emailPreferencesServiceClient =
        EmailPreferencesServiceClient.create(emailPreferencesServiceSettings)) {

      UpdateEmailPreferencesRequest request =
          UpdateEmailPreferencesRequest.newBuilder()
              .setEmailPreferences(emailPreferences)
              .setUpdateMask(fieldMask)
              .build();

      System.out.println("Sending Update EmailPreferences request");
      EmailPreferences response = emailPreferencesServiceClient.updateEmailPreferences(request);
      System.out.println("Updated EmailPreferences Name below");
      System.out.println(response.getName());
    } catch (Exception e) {
      System.out.println(e);
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    // The email address of this user. If you want to get the user information
    // Of the user making the Content API request, you can also use "me" instead
    // Of an email address.
    // String email = "testUser@gmail.com";
    String email = "me";

    updateEmailPreferences(config, email);
  }
}

পিএইচপি

use Google\ApiCore\ApiException;
use Google\Protobuf\FieldMask;
use Google\Shopping\Merchant\Accounts\V1beta\Client\EmailPreferencesServiceClient;
use Google\Shopping\Merchant\Accounts\V1beta\EmailPreferences;
use Google\Shopping\Merchant\Accounts\V1beta\EmailPreferences\OptInState;
use Google\Shopping\Merchant\Accounts\V1beta\UpdateEmailPreferencesRequest;

/**
 * This class demonstrates how to update a EmailPreferences to OPT_IN to News and Tips. This service
 * only permits retrieving and updating email preferences for the authenticated user.
 */
class UpdateEmailPreferences
{

    /**
     * Updates email preferences to OPT_IN to News and Tips.
     *
     * @param array $config
     *      The configuration data used for authentication and getting the acccount ID.
     * @param string $email The email address of this user. If you want to get the user information
     *      of the user making the Merchant API request, you can also use "me" instead
     *      of an email address.
     *
     * @return void
     */
    public static function updateEmailPreferencesSample($config, $email): void
    {
        // Gets the OAuth credentials to make the request.
        $credentials = Authentication::useServiceAccountOrTokenFile();

        // Creates options config containing credentials for the client to use.
        $options = ['credentials' => $credentials];

        // Creates a client.
        $emailPreferencesServiceClient = new EmailPreferencesServiceClient($options);

        // Creates EmailPreferences name to identify the EmailPreferences.
        // The name has the format: accounts/{account}/users/{user}/emailPreferences
        $name = "accounts/" . $config['accountId'] . "/users/" . $email . "/emailPreferences";

        // Create a EmailPreferences with the updated fields.
        $emailPreferences = (new EmailPreferences())
            ->setName($name)
            ->setNewsAndTips(OptInState::OPTED_OUT);

        $fieldMask = (new FieldMask())
            ->setPaths(['news_and_tips']);

        try {
            $request = (new UpdateEmailPreferencesRequest())
                ->setEmailPreferences($emailPreferences)
                ->setUpdateMask($fieldMask);

            print "Sending Update EmailPreferences request\n";
            $response = $emailPreferencesServiceClient->updateEmailPreferences($request);
            print "Updated EmailPreferences Name below\n";
            print $response->getName() . "\n";
        } catch (ApiException $e) {
            print $e->getMessage();
        }
    }

    /**
     * Helper to execute the sample.
     *
     * @return void
     */
    public function callSample(): void
    {
        $config = Config::generateConfig();
        // The email address of this user. If you want to get the user information
        // Of the user making the Merchant API request, you can also use "me" instead
        // Of an email address.
        // $email = "testUser@gmail.com";
        $email = "me";

        self::updateEmailPreferencesSample($config, $email);
    }
}

// Run the script
$sample = new UpdateEmailPreferences();
$sample->callSample();

পাইথন

from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.protobuf import field_mask_pb2
from google.shopping.merchant_accounts_v1beta import EmailPreferences
from google.shopping.merchant_accounts_v1beta import EmailPreferencesServiceClient
from google.shopping.merchant_accounts_v1beta import UpdateEmailPreferencesRequest


FieldMask = field_mask_pb2.FieldMask
_ACCOUNT = configuration.Configuration().read_merchant_info()


def update_email_preferences(email_address):
  """Updates a EmailPreferences to OPT_IN to News and Tips."""

  # Gets OAuth Credentials.
  credentials = generate_user_credentials.main()

  # Creates a client.
  client = EmailPreferencesServiceClient(credentials=credentials)

  # Creates EmailPreferences name to identify EmailPreferences.
  name = (
      "accounts/" + _ACCOUNT + "/users/" + email_address + "/emailPreferences"
  )

  # Create a EmailPreferences with the updated fields.
  email_preferences = EmailPreferences(
      name=name, news_and_tips=EmailPreferences.OptInState.OPTED_IN
  )

  # Create field mask
  field_mask = FieldMask(paths=["news_and_tips"])

  # Creates the request.
  request = UpdateEmailPreferencesRequest(
      email_preferences=email_preferences, update_mask=field_mask
  )

  # Makes the request and catches and prints any error messages.
  try:
    response = client.update_email_preferences(request=request)
    print("Updated EmailPreferences Name below")
    print(response.name)
  except RuntimeError as e:
    print(e)


if __name__ == "__main__":
  # The email address of this user. If you want to get the user information
  # of the user making the Content API request, you can also use "me" instead
  # of an email address.
  # email = "testUser@gmail.com"
  email = "me"

  update_email_preferences(email)

cURL

curl --location --request PATCH \
'https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences?update_mask=news_and_tips' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_TOKEN>' \
--data '{
  "name": "accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences",
  "news_and_tips": "OPTED_IN"
}'