Ce guide explique comment utiliser la ressource EmailPreferences
pour gérer vos notifications par e-mail Merchant Center et voir les types d'e-mails que reçoivent les users
de votre compte.
Pour obtenir la liste complète des types de notifications par e-mail, consultez la documentation de référence sur EmailPreferences
.
Vous ne pouvez utiliser l'API Merchant que pour gérer les notifications par e-mail pour les comptes auxquels vous êtes ajouté en tant qu'utilisateur.
Pour afficher ou mettre à jour les notifications par e-mail, vous avez besoin des valeurs suivantes:
- Adresse e-mail de l'utilisateur qui reçoit les e-mails. Vous trouverez son adresse e-mail dans le champ
name
de la ressourceUser
. - Référence marchand du compte pour lequel vous souhaitez commencer ou arrêter de recevoir des e-mails. Si le compte marchand est un compte avancé et que l'utilisateur a accès à ce compte, utilisez l'ID du marchand du compte avancé.
Activer ou désactiver les notifications
Pour mettre à jour les paramètres de notification par e-mail d'un compte marchand spécifique, appelez accounts.v1beta.accounts.users.updateEmailPreferences
avec l'ACCOUNT_ID
du compte et l'adresse e-mail de l'utilisateur.
Utilisez les valeurs suivantes pour contrôler les notifications par e-mail que l'utilisateur reçoit:
OPTED_IN
: recevoir des notifications par e-mail pour le compte.OPTED_OUT
: vous ne recevez pas de notifications par e-mail pour le compte.
Voici un exemple de requête permettant de désactiver les notifications par e-mail pour un compte marchand spécifique:
PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
{
"newsAndTips": "OPTED_OUT"
}
Pour récupérer les préférences de messagerie d'un utilisateur particulier, vous pouvez utiliser la méthode google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest
, comme illustré dans l'exemple suivant.
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);
}
}
Afficher les notifications existantes
Pour afficher les paramètres de notification par e-mail actuels d'un utilisateur spécifique, appelez accounts.v1beta.accounts.users.getEmailPreferences
.
Voici un exemple de requête, dans laquelle ACCOUNT_ID
est l'ID du marchand du compte concerné par les notifications par e-mail, et EMAIL_ADDRESS
est l'adresse e-mail de l'utilisateur qui reçoit les e-mails.
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
Voici un exemple de réponse à un appel réussi:
{
"name": "accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences",
"newsAndTips": "OPTED_IN"
}
Pour récupérer les préférences de messagerie d'un utilisateur particulier, vous pouvez utiliser le package google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest
, comme illustré dans l'exemple suivant.
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);
}
}
Pour en savoir plus sur les notifications par e-mail, consultez Modifier vos préférences relatives aux e-mails Merchant Center.