Gerenciar notificações por e-mail do Merchant Center

Este guia explica como usar o recurso EmailPreferences para gerenciar suas notificações por e-mail do Merchant Center e ver quais tipos de e-mails a users da sua conta recebe. Para conferir a lista completa de tipos de notificação por e-mail, consulte a referência do EmailPreferences.

Só é possível usar a API Merchant para gerenciar notificações por e-mail em contas em que você foi adicionado como usuário.

Para conferir ou atualizar as notificações por e-mail, você precisa dos seguintes valores:

  • O endereço de e-mail do usuário que recebe os e-mails. Você pode encontrar o endereço de e-mail no campo name do recurso User.
  • O ID do comerciante da conta para começar ou parar de receber e-mails. Se a conta do comerciante for uma conta avançada e o usuário tiver acesso a ela, use o ID do comerciante da conta avançada.

Ativar ou desativar as notificações

Para atualizar as configurações de notificação por e-mail de uma conta de comerciante específica, chame accounts.v1beta.accounts.users.updateEmailPreferences com o ACCOUNT_ID da conta e o endereço de e-mail do usuário.

Use os valores a seguir para controlar as notificações por e-mail que o usuário recebe:

  • OPTED_IN: receber notificações por e-mail da conta.
  • OPTED_OUT: não receber notificações por e-mail da conta.

Confira um exemplo de solicitação para desativar as notificações por e-mail de uma conta de comerciante específica:

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

{
  "newsAndTips": "OPTED_OUT"
}

Para extrair as preferências de e-mail de um usuário específico, use o método google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest, conforme mostrado no exemplo a seguir.

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

Conferir notificações

Para conferir as configurações de notificação por e-mail atuais de um usuário específico, chame accounts.v1beta.accounts.users.getEmailPreferences.

Confira um exemplo de solicitação, em que ACCOUNT_ID é o ID do comerciante da conta relacionada às notificações por e-mail e EMAIL_ADDRESS é o endereço de e-mail do usuário que recebe os e-mails.

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

Confira um exemplo de resposta de uma chamada bem-sucedida:

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

Para recuperar as preferências de e-mail de um usuário específico, use o pacote google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest, conforme mostrado no exemplo a seguir.

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

Para mais informações sobre as notificações por e-mail, consulte Mudar as preferências de e-mail do Merchant Center.