Partager via


Obtenir la télémétrie des messages de notification

Cette API fournit des données de télémétrie supplémentaires sur les états terminés des notifications Push sortantes. Il est conçu pour aider à surveiller les notifications Push envoyées à partir d’un hub. L’ID de notification utilisé par cette API peut être récupéré à partir de l’en-tête Emplacement HTTP inclus dans la réponse de l’API REST utilisée pour envoyer la notification.

Cette fonctionnalité de télémétrie par message est également disponible pour les notifications planifiées.

Cette API est disponible uniquement pour les hubs de notification de niveau Standard.

Requête

Méthode URI de demande Version HTTP
GET https://{namespace}.servicebus.windows.net/{NotificationHub}/messages/{notification message ID}?api-version=2016-07 HTTP/1.1

En-têtes de requête

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.

En-tête de requête Description
Autorisation Jeton SAS généré comme spécifié dans Authentification par signature d’accès partagé avec Service Bus.
x-ms-version 2016-07 (pris en charge par 2015-01 ou ultérieur)

Corps de la demande

Aucun.

response

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse. Le corps de la réponse est retourné en cas de réussite.

Codes de réponse

Code Description
200 La télémétrie du message a été récupérée avec succès. Les données de télémétrie peuvent être une réponse partielle, en fonction du nombre d’appareils ciblés par le message de notification envoyé et de la progression du message dans notre système de traitement.
400 La télémétrie des messages n’a pas pu être récupérée, car la demande était incorrecte.
401 Échec de l'autorisation. La clé d’accès était incorrecte.
403 Demande rejetée, car cette fonctionnalité n’est pas activée pour votre référence SKU. Mettez à niveau vers standard.
404 La télémétrie n’existe pas. Cette erreur peut se produire lorsque l’ID de notification n’est pas valide.

Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.

En-têtes de réponse

En-tête de réponse Description
Content-Type application/xml; charset=utf-8

Response body

Le corps de la réponse est un document NotificationDetails constitué des éléments suivants :

Élément Description
NotificationId ID passé à la demande qui identifie le message de notification.
Emplacement URI du message
State Indique la progression du message. State peut être l’une des valeurs suivantes :
  • Abandonné : le traitement des messages a été abandonné. Cela se produit lorsque le message n’a pas pu être traité dans la fenêtre de temps acceptable. Par défaut, il est de 30 minutes.
  • Annulé : l’utilisateur a annulé ce message planifié.
  • Terminé : le traitement des messages est terminé.
  • Mise en file d’attente : le message a été accepté, mais le traitement n’a pas encore commencé.
  • NoTargetFound : aucun appareil n’a été trouvé pour envoyer ce message.
  • Traitement : le traitement des messages a démarré.
  • Planifié : le message est en file d’attente et est envoyé à l’heure planifiée.
  • Inconnu : le traitement des messages est dans un état inconnu.
EnqueueTime Indique l’heure à laquelle le message a été accepté.
StartTime Indique quand le service hub de notification a commencé à travailler sur la notification.
EndTime Indique quand le service hub de notification a terminé le travail sur la notification.
NotificationBody Corps du message de notification d’origine.
TargetPlatforms Indique les plateformes cibles de notification. Peut contenir les valeurs suivantes sous forme de chaîne délimitée par des virgules :
  • windows
  • apple
  • gcm
  • windowsphone
  • adm
  • baidu
  • template
  • windowstemplate
  • appletemplate
  • gcmtemplate
  • windowsphonetemplate
  • admtemplate
  • baidutemplate
ApnsOutcomeCounts Cet élément est présent pour les notifications envoyées à Apple Push Notification Service. Contient une collection d’instances Outcome.
MpnsOutcomeCounts Cet élément est présent pour les notifications envoyées à Microsoft Push Notification Service. Contient une collection d’instances Outcome.
WnsOutcomeCounts Cet élément est présent pour les notifications envoyées au service de notification Windows. Contient une collection d’instances Outcome.
GcmOutcomeCounts Cet élément est présent pour les notifications envoyées à Google Cloud Messaging. Contient une collection d’instances Outcome.
AdmOutcomeCounts Cet élément est présent pour les notifications envoyées à Amazon Device Messaging. Contient une collection d’instances Outcome.
Résultat Une collection de ces instances constitue le nombre ci-dessus pour chaque service de notification de plateforme. Chaque résultat peut être l’un des nombres nommés mentionnés dans la section Résultats .
PnsErrorDetailsUri Nécessite Api-Version 2016-07 et versions ultérieures utilisées pour cette API et l’API qui envoie le message de notification.

Les détails de l’erreur PNS ne sont entièrement disponibles qu’une fois l’opération d’envoi associée terminée.

Obtient l’URI d’un objet blob contenant des erreurs retournées par chaque PNS impliqué. Si aucune erreur n’a été signalée par un PNS, ce membre n’est pas inclus dans la réponse. Vous pouvez utiliser l’API Stockage Azure pour lire l’objet blob. Pour plus d’informations, consultez Prise en main du stockage Blob Azure à l’aide de .NET ou de l’API REST Azure Storage Services :
  • Informations d’identification PNS non valides
  • PNS inaccessible
  • BadChannel
  • ExpiredChannel
  • PnsThrottled
  • InvalidToken
  • WrongToken
  • Supprimé
  • WrongChannel

Résultats

Nom Description du nombre
AbandonedNotificationMessages Nombre de demandes envoyées au service Push qui ont été supprimées en raison d’un délai d’expiration.
BadChannel La communication avec le service Push a échoué, car le canal n’était pas valide.
ChannelDisconnected Service push déconnecté.
ChannelThrottled Accès refusé au service push en raison d’une limitation.
Supprimé Le service Push indique que le message a été supprimé.
ExpiredChannel La communication avec le service Push a échoué, car le canal a expiré.
InvalidCredentials Les informations d’identification utilisées pour l’authentification auprès du service push ont échoué.
InvalidNotificationSize La requête Push est trop volumineuse.
NoTargets Nombre de requêtes qui n’ont rien trouvé à envoyer.
PnsInterfaceError Échec de la communication du contrat de service push.
PnsServerError Le service Push a indiqué qu’une erreur s’est produite de leur côté.
PnsUnavailable Le service Push n’est pas disponible.
PnsUnreachable Le service Push ne répondait pas.
Ignoré Nombre d’inscriptions en double (même handle PNS trouvé, ID d’inscription différent).
Succès Envoi de la demande à un certain nombre d’appareils.
Throttled Accès refusé au service push en raison d’une limitation.
UnknownError Une erreur inconnue s’est produite.
WrongToken Le handle PNS n’était pas reconnu par le serveur PNS comme un handle valide.

Voici un exemple de télémétrie à partir de l’envoi d’une notification à WNS :

<NotificationDetails xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <NotificationId>{Your message id}</NotificationId>
  <Location>sb://{Your namespace}.servicebus.windows.net/{your hub name}/messages/{your message id}?api-version=2015-04</Location>
  <State>Completed</State>
  <EnqueueTime>2015-11-02T21:19:43Z</EnqueueTime>
  <StartTime>2015-11-02T21:19:43.9926996Z</StartTime>
  <EndTime>2015-11-02T21:19:43.9926996Z</EndTime>
  <NotificationBody>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;toast&gt;&lt;visual&gt;&lt;binding template="ToastText01"&gt;&lt;text id="1"&gt;Hello from a .NET App!&lt;/text&gt;&lt;/binding&gt;&lt;/visual&gt;&lt;/toast&gt;</NotificationBody>
  <TargetPlatforms>windows</TargetPlatforms>
  <WnsOutcomeCounts>
    <Outcome>
      <Name>Success</Name>
      <Count>3</Count>
    </Outcome>
    <Outcome>
      <Name>WrongToken</Name>
      <Count>1</Count>
    </Outcome>
  </WnsOutcomeCounts>
  <PnsErrorDetailsUri>{Blob uri}</PnsErrorDetailsUri>
</NotificationDetails>

Voir aussi

Envoyer une notification de modèle
Envoyer une notification native APNS
Envoyer une notification native GCM
Envoyer une notification native MPNS
Envoyer une notification native WNS