Merchant Center のメール通知を管理する

このガイドでは、EmailPreferences リソースを使用して Merchant Center のメール通知を管理し、アカウントの users が受信するメールの種類を確認する方法について説明します。メール通知の種類の一覧については、EmailPreferences リファレンスをご覧ください。

Merchant API を使用して管理できるのは、自分がユーザーとして追加されているアカウントのメール通知のみです。

メール通知を表示または更新するには、次の値が必要です。

通知のオプトインとオプトアウト

特定の販売者アカウントのメール通知設定を更新するには、アカウントの ACCOUNT_ID とユーザーのメールアドレスを指定して accounts.v1beta.accounts.users.updateEmailPreferences を呼び出します。

ユーザーに送信されるメール通知を制御するには、次の値を使用します。

  • OPTED_IN: アカウントのメール通知を受け取る。
  • OPTED_OUT: アカウントのメール通知を受け取らない。

特定の販売者アカウントのメール通知をユーザーがオプトアウトするリクエストの例を次に示します。

PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences

{
  "newsAndTips": "OPTED_OUT"
}

特定のユーザーのメール設定を取得するには、次のサンプルに示すように google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest メソッドを使用します。

Java

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

既存の通知を表示する

特定のユーザーの現在のメール通知設定を表示するには、accounts.v1beta.accounts.users.getEmailPreferences を呼び出します。

以下にリクエストの例を示します。ACCOUNT_ID はメール通知の対象となるアカウントの販売者 ID、EMAIL_ADDRESS はメールを受信するユーザーのメールアドレスです。

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

呼び出しが成功した場合のレスポンスの例を次に示します。

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

特定のユーザーのメール設定を取得するには、次のサンプルに示すように google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest パッケージを使用します。

Java

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

メール通知の詳細については、Merchant Center のメール設定を変更するをご覧ください。