Gestisci le notifiche via email di Merchant Center

Questa guida spiega come utilizzare la risorsa EmailPreferences per gestire le notifiche email di Merchant Center e vedere quali tipi di email riceve il users del tuo account. Per l'elenco completo dei tipi di notifiche via email, consulta il riferimento EmailPreferences.

Puoi utilizzare l'API Merchant solo per gestire le notifiche via email per gli account in cui sei aggiunto come utente.

Per visualizzare o aggiornare le notifiche via email, devi disporre dei seguenti valori:

  • L'indirizzo email dell'utente che riceve le email. Puoi trovare il suo indirizzo email nel campo name della risorsa User.
  • L'ID commerciante dell'account per cui vuoi iniziare o interrompere la ricezione di email. Se l'account commerciante è un account avanzato e l'utente ha accesso all'account avanzato, utilizza l'ID commerciante dell'account avanzato.

Attivare o disattivare le notifiche

Per aggiornare le impostazioni di notifica via email per un account commerciante specifico, chiama accounts.v1beta.accounts.users.updateEmailPreferences con l'ACCOUNT_ID dell'account e l'indirizzo email dell'utente.

Utilizza i seguenti valori per controllare le notifiche via email che l'utente riceve:

  • OPTED_IN: per ricevere notifiche via email per l'account.
  • OPTED_OUT: non ricevere notifiche via email per l'account.

Di seguito è riportata una richiesta di esempio per disattivare le notifiche via email per un account merchant specifico:

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

{
  "newsAndTips": "OPTED_OUT"
}

Per recuperare le preferenze email di un determinato utente, puoi utilizzare il metodo google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest, come mostrato nell'esempio seguente.

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

Visualizzare le notifiche esistenti

Per visualizzare le impostazioni di notifica via email correnti per un utente specifico, chiama accounts.v1beta.accounts.users.getEmailPreferences.

Ecco una richiesta di esempio, in cui ACCOUNT_ID è l'ID commerciante dell'account per cui sono state inviate le notifiche via email e EMAIL_ADDRESS è l'indirizzo email dell'utente che le riceve.

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

Ecco un esempio di risposta di una chiamata andata a buon fine:

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

Per recuperare le preferenze email di un determinato utente, puoi utilizzare il package google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest, come mostrato nell'esempio seguente.

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

Per ulteriori informazioni sulle notifiche via email, consulta Modificare le preferenze email di Merchant Center.