Dans l’article précédent, on a vu comment envoyer des notifications à tous les utilisateurs de l’application en utilisant les API REST d’Azure Mobile Center.

Cette fois-ci on va voir comment créer et utiliser des audiences pour envoyer notifications push à des segments d’utilisateurs.

Les audiences

Les audiences permettent de découper la base des utilisateurs. Les paramètres disponibles par défaut sont les suivants :

  • Version de l’application
  • Pays
  • Opérateur
  • Langue
  • Modèle de l’appareil
  • OEM
  • Version du système ou niveau d’API
  • Taille d’écran

Il est également possible de préciser ses propres paramètres en utilisant des propriétés personnalisées.

La documentation officielle sur les audiences est présente ici : https://docs.microsoft.com/en-us/appcenter/push/send-notification#audiences

Audience standard

Création de l’audience

La création d’une audience en utilisant les services REST se fait avec la méthode PUT sur :

https://api.mobile.azure.com/v0.1/apps/[user]/[app]/analytics/audiences/[audiencename]

Prenons un exemple et créons une audience rassemblant tous les utilisateurs ne se trouvant pas en Corée du Nord. Puisque les identifiants des pays utilisés par l’API semblent suivre la norme ISO 3166-1 alpha 2 on va nommer cette audience AudienceNotInKP.

On va donc appeler en PUT le service suivant :

https://api.mobile.azure.com/v0.1/apps/[user]/[app]/analytics/audiences/AudienceNotInKP

Le payload de cette requête sera sous forme de json, alors on précise le bon header HTTP :

Content-Type: application/json

Ne reste plus qu’à écrire le payload dans le corps du message HTTP :

{
  "definition": "CarrierCountry ne 'KP'",
  "description": "Users not in North Korea"
}

Audience API response

Les propriétés standard

On remarquera que le champ definition utilise du ODATA. Ainsi ne signifie not equals et eq signifie equals. La liste des variables disponibles n’est pas clairement exposée dans la documentation. Néanmoins je me suis chargé de vous la dresser ici dans le même ordre que la liste précédente :

  • AppVersion
  • CarrierCountry
  • CarrierName
  • Language
  • Model
  • OemName
  • OsVersion
  • ScreenSize

Audience personnalisée

Création de l’audience

La création d’audiences personnalisées se base sur les propriétés personnalisées ajoutées par l’application. On va donc maintenant ajouter une audience basée sur la propriété TestProperty dont la valeur devrait être de 42.

On suit le même principe que ci-dessus avec l’adresse :

https://api.mobile.azure.com/v0.1/apps/[user]/[app]/analytics/audiences/Audience42
{
  "definition": "TestProperty eq '42'",
  "custom_properties": {
    "TestProperty": "string"
  }
}

La nouvelle audience est maintenant créée.

Audience API response

L’application mobile

Ajouter une propriété personnalisée dans l’application mobile est très simple et se fait de la manière suivante :

var cp = new CustomProperties();
cp.Set("TestProperty", "42");
MobileCenter.SetCustomProperties(cp);

Vous trouverez des exemples sur la documentation officielle : https://docs.microsoft.com/en-us/mobile-center/sdk/other-apis/xamarin.

Lister les audiences

Lister les audiences se fait de manière très simple avec un GET sur l’adresse suivante :

https://api.mobile.azure.com/v0.1/apps/[user]/[app]/analytics/audiences/

Audiences List API Response

Notifier une audience

Maintenant que l’on a les informations nécessaires, l’envoi d’une notification est aussi simple que de faire un POST sur la bonne url :

https://api.mobile.azure.com/v0.1/apps/[user]/[app]/push/notifications

Le payload de notre push sera sous forme de json, alors on précise le bon header HTTP :

Content-Type: application/json

Ne reste plus qu’à écrire le payload de notre push dans le corps du message HTTP :

{
  "notification_target": {
    "type": "audiences_target",
    "audiences": ["AudienceNotInKP"]
  },
  "notification_content": {
    "name": "Audience Notification",
    "title": "Audience Notification Title !",
    "body": "Audience Notification Message !",
    "custom_data": {}
  }
}

On remarquera que les audiences sont précisées dans un tableau JSON. Il est donc possible d’en ajouter plusieurs !

Push API response

Conclusion

Dans cet article je vous ai montré comment envoyer une notification push vers une audience particulière grâce aux API REST de Azure Mobile Center.

Puisqu’il est facile de créer dynamiquement des audiences en REST, certains scénarii deviennent facilement envisageables. Par exemple, on pourrait avoir un identifiant utilisateur comme propriété personnalisée et ainsi notifier tous les appareils d’un utilisateur donné sans avoir à gérer la liste de ses appareils.

Comments