管理 Merchant Center 電子郵件通知

本指南將說明如何使用 EmailPreferences 資源管理 Merchant Center 電子郵件通知,以及查看帳戶users收到的電子郵件類型。如需電子郵件通知類型的完整清單,請參閱 EmailPreferences 參考資料

您只能使用 Merchant API 管理新增為使用者的帳戶電子郵件通知。

如要查看或更新電子郵件通知,您需要下列值:

  • 收到電子郵件的使用者電子郵件地址。您可以在 User 資源的 name 欄位中找到電子郵件地址。
  • 商家 ID 是指要開始或停止接收電子郵件的帳戶。如果商家帳戶是進階帳戶,且使用者有權存取進階帳戶,請使用進階帳戶的商家 ID。

選擇加入或退出通知

如要更新特定商家帳戶的電子郵件通知設定,請使用帳戶的 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 電子郵件接收設定」。