Engage SDK Travel: instructions d'intégration technique tierce

Améliorez l'engagement dans votre application en touchant vos utilisateurs là où ils se trouvent. Intégrez le SDK Engage pour proposer des recommandations personnalisées et du contenu de continuité directement aux utilisateurs sur différentes surfaces sur l'appareil, comme Collections, Entertainment Space et le Play Store. L'intégration ajoute moins de 50 Ko (compressés) à la taille moyenne de l'APK et prend environ une semaine de temps de développement pour la plupart des applications. Pour en savoir plus, consultez notre site dédié aux entreprises.

Ce guide explique aux développeurs partenaires comment diffuser du contenu de voyage et d'événements sur les surfaces de contenu Engage.

Détails de l'intégration

Terminologie

Cette intégration comprend les types de clusters suivants : Recommendation (Recommandations), Featured (Sélection), Reservation (Réservation) et Continue Search (Continuer la recherche).

  • Les clusters Recommendation affichent des suggestions de voyages et d'événements personnalisées provenant d'un développeur partenaire individuel. Ces recommandations peuvent être personnalisées en fonction de l'utilisateur ou généralisées (par exemple, les articles tendance). Utilisez-les pour afficher des recommandations d'articles, d'événements, d'hébergements ou de lieux d'intérêt.

    • Un cluster "Recommendation" peut être constitué de fiches ArticleEntity, EventEntity, LodgingEntity, PointOfInterestEntity ou StoreEntity, mais pas de types d'entités différents.

    Les recommandations présentent la structure suivante :

    • Cluster "Recommendations" : vue de l'interface utilisateur contenant un groupe de recommandations du même développeur partenaire.

    • Entité : objet représentant un seul élément dans un cluster. Cette intégration propose certaines entités qui seraient affichées à l'aide du cluster de recommandations :

      • ArticleEntity : ArticleEntity représente une recommandation de contenu textuel lié aux voyages et aux événements. Il peut être utilisé pour des articles, des billets de blog, des contenus marketing, des extraits d'actualités, etc.

        Figure 1 : interface utilisateur affichant une seule ArticleEntity dans le cluster "Recommandations".
      • EventEntity : EventEntity représente un événement à venir. L'heure de début d'un événement est une information essentielle qui doit être communiquée aux utilisateurs.

        Figure 2 : Interface utilisateur affichant une seule EventEntity dans un cluster de recommandations.
      • LodgingEntity : LodgingEntity représente un hébergement, tel qu'un hôtel, un appartement ou une maison de vacances en location à court ou long terme.

        Figure 3 : Interface utilisateur affichant une seule LodgingEntity dans le cluster "Recommandations".
      • StoreEntity : StoreEntity représente un magasin, un restaurant, un café, etc. Il met en avant le contenu où un lieu de restauration ou un magasin est l'information essentielle à transmettre aux utilisateurs.

        Figure 4 : Interface utilisateur montrant une seule StoreEntity dans un cluster de recommandations.
      • PointOfInterestEntity : PointOfInterestEntity représente un lieu d'intérêt, comme une station-service, un lieu d'événement, un parc à thème, un musée, une attraction touristique, un sentier de randonnée, etc. Il met en évidence le contenu pour lequel la localisation est une information essentielle qui doit être communiquée aux utilisateurs. Il ne doit pas être utilisé pour un hébergement, un magasin ou un restaurant.

        Figure 5 : Interface utilisateur montrant une seule PointOfInterestEntity dans le cluster "Recommandations".
  • Le cluster Réservation affiche dans un regroupement d'UI le contenu de plusieurs partenaires développeurs avec lequel les utilisateurs ont interagi récemment. Chaque développeur partenaire est autorisé à diffuser au maximum 10 entités dans le cluster "Réservation".

    Le contenu de votre réservation peut avoir la structure suivante :

    • RestaurantReservationEntity : RestaurantReservationEntity représente une réservation dans un restaurant ou un café, et aide les utilisateurs à suivre les réservations de restaurant à venir ou en cours.

      Figure 6 : Interface utilisateur montrant une seule RestaurantReservationEntity dans un cluster de réservations.
    • EventReservationEntity : EventReservationEntity représente une réservation pour un événement et aide les utilisateurs à suivre les réservations d'événements à venir ou en cours. Voici quelques exemples d'événements :

      • Événements sportifs, comme la réservation d'un match de football
      • Événements de jeux vidéo, comme les réservations pour les e-sports
      • Événements de divertissement tels que des réservations pour des films au cinéma, des concerts, des pièces de théâtre ou des séances de dédicace
      • Réservations de voyages ou de points d'intérêt (visites guidées, billets de musée, etc.)
      • Réservations pour des événements sociaux, des séminaires ou des conférences
      • Réservations de sessions de formation / d'enseignement
      Figure 7. Interface utilisateur montrant une seule EventReservationEntity dans un cluster de réservations.
    • LodgingReservationEntity : LodgingEntityReservation représente une réservation d'hébergement de voyage et aide les utilisateurs à suivre les réservations d'hôtel ou de location de vacances à venir ou en cours.

      Figure 8 : Interface utilisateur montrant une seule LodgingReservationEntity dans un cluster de réservations.
    • TransportationReservationEntity : TransportationReservationEntity représente une réservation de transport par n'importe quel mode et aide les utilisateurs à suivre les réservations de vols, de ferries, de trains, de bus, de courses avec chauffeur ou de croisières à venir ou en cours.

      Figure 9. Interface utilisateur montrant une seule TransportationReservationEntity dans un cluster de réservations.
    • VehicleRentalReservationEntity : VehicleRentalReservationEntity représente une réservation de location de véhicule et aide les utilisateurs à suivre les réservations de location de véhicule à venir ou en cours.

      Figure 10. Interface utilisateur montrant une seule entité VehicleRentalReservationEntity dans un cluster de réservations.
  • Le cluster Featured affiche une sélection d'entités de plusieurs développeurs partenaires dans un même groupe d'UI. Il n'existe qu'un seul cluster "Featured", situé dans la partie supérieure de l'UI avec un emplacement prioritaire au-dessus de tous les clusters "Recommendation". Chaque développeur partenaire est autorisé à diffuser jusqu'à 10 entités dans le cluster "Featured".

    • GenericFeaturedEntity : GenericFeaturedEntity diffère de l'élément de recommandation en ce que l'élément mis en avant doit être utilisé pour un seul contenu principal des développeurs et doit représenter le contenu le plus important qui sera intéressant et pertinent pour les utilisateurs.

      Figure 11 : UI montrant un FeaturedCluster avec une liste de GenericFeaturedEntity
  • Le cluster Reprendre la recherche aide les utilisateurs à reprendre leur parcours de recherche de voyages précédent en affichant une liste de requêtes de recherche qu'ils ont récemment effectuées dans toutes leurs applications de voyage. Le cluster sera épinglé en deuxième position, après les réservations et avant les clusters de recommandations et de sélections. Chaque développeur partenaire est autorisé à diffuser jusqu'à trois entités dans le cluster "Continue Search".

    • PointOfInterestEntity : PointOfInterestEntity représente un lieu d'intérêt, comme une station-service, un lieu d'événement, un parc d'attractions, un musée, une attraction touristique, un sentier de randonnée, etc. Il met en évidence le contenu que l'utilisateur a recherché précédemment.

Travail préalable

Niveau d'API minimal : 19

Ajoutez la bibliothèque com.google.android.engage:engage-core à votre application :

dependencies {
    // Make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.engage:engage-core:1.5.2'
}

Résumé

La conception repose sur l'implémentation d'un service lié.

Les données qu'un client peut publier sont soumises aux limites suivantes pour chaque type de cluster :

Type de cluster Nombre limite de clusters Limites minimales d'entités dans un cluster Limites maximales d'entités dans un cluster
Cluster(s) "Recommendation" 7 maximum Au moins un 50 maximum (ArticleEntity, EventEntity, LodgingEntity, StoreEntity ou PointOfInterestEntity)
Cluster de réservation 1 maximum Au moins un 20 maximum (RestaurantReservationEntity, EventReservationEntity, LodgingReservationEntity, TransportationReservationEntity ou VehicleRentalReservationEntity)
Cluster "Featured" 1 maximum Au moins un 20 maximum (GenericFeaturedEntity)
Cluster "Continue Search" 1 maximum Au moins un 3 maximum (PointOfInterestEntity)

Étape 1 : Fournir les données d'entité

Le SDK a défini différentes entités pour représenter chaque type d'élément. Nous prenons en charge les entités suivantes pour la catégorie "Voyages et événements" :

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. EventEntity
  4. LodgingEntity
  5. StoreEntity
  6. PointOfInterestEntity
  7. RestaurantReservationEntity
  8. EventReservationEntity
  9. LodgingReservationEntity
  10. TransportationReservationEntity
  11. VehicleRentalReservationEntity

Les tableaux ci-dessous décrivent les attributs disponibles pour chaque type et indiquent s'ils sont obligatoires.

GenericFeaturedEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Images poster Obligatoire

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Remarque : Si un badge est fourni, assurez-vous de laisser un espace de 24 dp en haut et en bas de l'image.

Consultez la section Caractéristiques des images pour en savoir plus.
Titre Facultatif Titre de l'entité.

Texte libre

Taille de texte recommandée : 50 caractères

Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

Badges Facultatif

Chaque badge est soit un texte libre (15 caractères maximum), soit une petite image.

Traitement spécial de l'UX au-dessus de l'image/vidéo, par exemple, sous forme de badge superposé sur l'image

  • "Mise à jour en direct"
  • Durée de lecture de l'article
Badge - Texte Facultatif

Titre du badge

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Texte libre

Taille de texte recommandée : 15 caractères maximum

Badge : image Facultatif

Petite image

Traitement spécial de l'UX, par exemple sous forme de badge superposé à la miniature de l'image/vidéo.

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Consultez la section Caractéristiques des images pour en savoir plus.
Catégories de contenu Facultatif Décrivez la catégorie du contenu de l'entité.

Liste des énumérations

Pour obtenir de l'aide, consultez la section Catégorie de contenu.

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

ArticleEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Texte libre

Taille de texte recommandée : 50 caractères maximum

Images poster Facultatif

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Remarque : Nous vous recommandons vivement d'ajouter une image. Si un badge est fourni, assurez-vous qu'il y a un espace de sécurité de 24 dp en haut et en bas de l'image.

Consultez la section Caractéristiques des images pour en savoir plus.
Source – Titre Facultatif Nom de l'auteur, de l'organisation ou du journaliste

Texte libre

Taille de texte recommandée : 25 caractères maximum

Source : image Facultatif Une image de la source, comme l'auteur, l'organisation ou le journaliste Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

Badges Facultatif

Chaque badge est soit un texte libre (15 caractères maximum), soit une petite image.

Traitement spécial de l'UX au-dessus de l'image/vidéo, par exemple, sous forme de badge superposé sur l'image

  • "Mise à jour en direct"
  • Durée de lecture de l'article
Badge - Texte Facultatif

Titre du badge

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Texte libre

Taille de texte recommandée : 15 caractères maximum

Badge : image Facultatif

Petite image

Traitement spécial de l'UX, par exemple sous forme de badge superposé à la miniature de l'image/vidéo.

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Consultez la section Caractéristiques des images pour en savoir plus.
Heure de publication du contenu Facultatif Il s'agit du code temporel de l'epoch en millisecondes indiquant la date de publication ou de mise à jour du contenu dans l'application. Code temporel de l'epoch (en millisecondes)
Durée du dernier engagement Facultatif

Timestamp epoch en millisecondes indiquant la dernière interaction de l'utilisateur avec cette entité.

Code temporel de l'epoch (en millisecondes)
Pourcentage de progression Facultatif

Pourcentage du contenu complet consommé par l'utilisateur à ce jour.

Valeur int comprise entre 0 et 100 inclus.
Catégories de contenu Facultatif Décrivez la catégorie du contenu de l'entité.

Liste des énumérations

Pour obtenir de l'aide, consultez la section Catégorie de contenu.

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

EventEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Chaîne

Taille de texte recommandée : 50 caractères maximum

Heure de début localisée : code temporel Obligatoire

Code temporel Unix auquel l'événement doit commencer.

Joda-Time Instant
Heure de début localisée : fuseau horaire Obligatoire

Fuseau horaire dans lequel l'événement doit commencer.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Mode événement Obligatoire

Champ permettant d'indiquer si l'événement sera virtuel, en présentiel ou les deux.

Énumération : VIRTUAL, IN_PERSON ou HYBRID
Images poster Obligatoire

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Remarque : Nous vous recommandons vivement d'ajouter une image. Si un badge est fourni, assurez-vous qu'il y a un espace de sécurité de 24 dp en haut et en bas de l'image.

Consultez la section Caractéristiques des images pour en savoir plus.
Emplacement : pays Obligatoire sous certaines conditions

Pays dans lequel l'événement a lieu.

Remarque : Cette information est obligatoire pour les événements EN_PRÉSENCE ou HYBRIDES.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville Obligatoire sous certaines conditions

Ville où se déroule l'événement.

Remarque : Cette information est obligatoire pour les événements EN_PRÉSENCE ou HYBRIDES.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : adresse à afficher Obligatoire sous certaines conditions

Adresse ou nom du lieu où se déroulera l'événement, qui doit être affiché à l'utilisateur.

Remarque : Cette information est obligatoire pour les événements EN_PRÉSENCE ou HYBRIDES.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse postale Facultatif Adresse (le cas échéant) du lieu où se déroule l'événement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : État Facultatif Région ou département (le cas échéant) où l'événement est organisé.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : code postal Facultatif Code postal (le cas échéant) du lieu où se déroule l'événement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : quartier Facultatif Quartier (le cas échéant) dans lequel l'événement est organisé.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Heure de fin Facultatif

Horodatage de l'époque où l'événement devrait se terminer.

Remarque : Cette valeur sera exprimée en millisecondes.

Code temporel de l'epoch (en millisecondes)
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

Badges Facultatif

Chaque badge est soit un texte libre (15 caractères maximum), soit une petite image.

Badge - Texte Facultatif

Titre du badge

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Texte libre

Taille de texte recommandée : 15 caractères maximum

Badge : image Facultatif

Petite image

Traitement spécial de l'UX, par exemple sous forme de badge superposé à la miniature de l'image/vidéo.

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Consultez la section Caractéristiques des images pour en savoir plus.
Prix : CurrentPrice Obligatoire sous certaines conditions

Prix actuel du billet/pass pour l'événement.

À fournir si le prix barré est indiqué.

Texte libre
Prix : prix barré Facultatif Prix d'origine du billet/pass pour l'événement. Texte libre
Accroche de prix Facultatif Accroche de prix qui met en avant une promotion, un événement ou une remise réservée aux membres, le cas échéant.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Catégories de contenu Facultatif Décrivez la catégorie du contenu de l'entité.

Liste des énumérations éligibles

  • TYPE_MOVIES_AND_TV_SHOWS (exemple : cinéma)
  • TYPE_DIGITAL_GAMES (exemple : e-sport)
  • TYPE_MUSIC (exemple : concert)
  • TYPE_TRAVEL_AND_LOCAL (exemple : visite, festival)
  • TYPE_HEALTH_AND_FITENESS (exemple : cours de yoga)
  • TYPE_EDUCATION (exemple : classe)
  • TYPE_SPORTS (exemple : match de football)
  • TYPE_DATING (exemple : meetup)

Pour obtenir de l'aide, consultez la section Catégorie de contenu.

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

LodgingEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Chaîne

Taille de texte recommandée : 50 caractères maximum

Images poster Obligatoire

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Remarque : Si un badge est fourni, assurez-vous de laisser un espace de 24 dp en haut et en bas de l'image.

Consultez la section Caractéristiques des images pour en savoir plus.
Emplacement : pays Obligatoire Pays dans lequel a lieu l'hébergement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville Obligatoire Ville où se trouve l'hébergement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : adresse à afficher Obligatoire Adresse qui sera affichée à l'utilisateur. Nous vous recommandons d'inclure le nom de la ville et éventuellement l'État ou le pays pour la plupart des cas d'utilisation. N'incluez l'adresse ou le quartier que si l'utilisateur se trouve à proximité du lieu, s'il le connaît ou si la ville est incluse dans le titre du cluster. Si vous incluez l'adresse postale, fournissez une adresse concise en utilisant des abréviations si possible (par exemple, "Rue" pour "Rue", "Av." pour "Avenue").

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse postale Facultatif Adresse postale (le cas échéant) de l'hébergement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : État Facultatif Région ou département (le cas échéant) où se trouve l'hébergement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : code postal Facultatif Code postal de l'hébergement (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : quartier Facultatif Quartier de l'hébergement (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Badges Facultatif

Chaque badge est soit un texte libre (15 caractères maximum), soit une petite image.

Badge - Texte Facultatif

Titre du badge

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Texte libre

Taille de texte recommandée : 15 caractères maximum

Badge : image Facultatif

Petite image

Traitement spécial de l'UX, par exemple sous forme de badge superposé à la miniature de l'image/vidéo.

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

AvailabilityTimeWindow - Localized Start Time - Timestamp Facultatif Code temporel Unix indiquant la date à laquelle l'hébergement devrait être ouvert/disponible. Joda-Time Instant
AvailabilityTimeWindow - Localized Start Time - Timezone Facultatif Fuseau horaire dans lequel l'hébergement est censé être ouvert/disponible.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

AvailabilityTimeWindow - Localized End Time - Timestamp Facultatif Code temporel Unix jusqu'à la date à laquelle l'hébergement devrait être ouvert/disponible. Joda-Time Instant
AvailabilityTimeWindow - Heure de fin localisée - Fuseau horaire Facultatif Fuseau horaire dans lequel l'hébergement est censé être ouvert/disponible.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Note (valeur maximale) Facultatif

Valeur maximale de l'échelle d'évaluation.

À fournir si la valeur de la note actuelle est également indiquée.

Nombre >= 0.0
Note (valeur actuelle) Facultatif

Valeur actuelle de l'échelle d'évaluation.

À fournir si la valeur maximale de la note est également indiquée.

Nombre >= 0.0
Nombre de notes Facultatif

Nombre de notes pour l'hébergement.

Remarque : Renseignez ce champ si votre application souhaite contrôler la façon dont cette information est affichée aux utilisateurs. Indiquez la chaîne concise qui peut être affichée pour l'utilisateur. Par exemple, si le nombre est de 1 000 000, pensez à utiliser des abréviations comme "1M" pour qu'il ne soit pas tronqué sur les petits écrans.

Chaîne
Nombre de notes Facultatif

Nombre de notes pour l'hébergement.

Remarque : Renseignez ce champ si vous ne souhaitez pas gérer vous-même la logique d'abréviation de l'affichage. Si les deux valeurs (Nombre et Valeur du nombre) sont présentes, nous utiliserons le nombre pour l'afficher aux utilisateurs.

Longue
Prix : CurrentPrice Obligatoire sous certaines conditions

Prix actuel de l'hébergement.

À fournir si le prix barré est indiqué.

Texte libre
Prix : prix barré Facultatif Prix d'origine de l'hébergement, qui sera barré dans l'UI. Texte libre
Accroche de prix Facultatif Accroche de prix qui met en avant une promotion, un événement ou une remise réservée aux membres, le cas échéant.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

StoreEntity

L'objet StoreEntity représente un magasin individuel que les développeurs partenaires souhaitent publier, comme un restaurant ou un lieu de restauration populaires qui sont pertinents pour l'expérience de voyage d'un utilisateur.

Attribut Obligatoire ? Description Format
Images poster Obligatoire Vous devez fournir au moins une image. Consultez la section Caractéristiques des images pour en savoir plus.
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Facultatif Nom du magasin.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Position Facultatif Emplacement du magasin.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Accroche Facultatif Accroche qui met en avant une promotion, un événement ou une nouveauté pour le magasin, le cas échéant.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Texte en petits caractères de l'accroche Facultatif Texte en petits caractères pour l'accroche.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Description Facultatif Description du magasin.

Texte libre

Taille de texte recommandée : 90 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Catégorie Facultatif

Catégorie d'un magasin. Dans le contexte des lieux de restauration, il peut s'agir d'une cuisine comme "française", "américaine moderne", "ramen" ou "gastronomique".

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Note (valeur maximale) Facultatif

Valeur maximale de l'échelle d'évaluation.

À fournir si la valeur de la note actuelle est également indiquée.

Nombre >= 0.0
Note (valeur actuelle) Facultatif

Valeur actuelle de l'échelle d'évaluation.

À fournir si la valeur maximale de la note est également indiquée.

Nombre >= 0.0
Nombre de notes Facultatif

Nombre de notes pour l'hébergement.

Remarque : Renseignez ce champ si votre application souhaite contrôler la façon dont cette information est affichée aux utilisateurs. Indiquez la chaîne concise qui peut être affichée pour l'utilisateur. Par exemple, si le nombre est de 1 000 000, pensez à utiliser des abréviations comme "1M" pour qu'il ne soit pas tronqué sur les petits écrans.

Chaîne
Nombre de notes Facultatif

Nombre de notes pour l'hébergement.

Remarque : Renseignez ce champ si vous ne souhaitez pas gérer vous-même la logique d'abréviation de l'affichage. Si les deux valeurs (Nombre et Valeur du nombre) sont présentes, nous utiliserons le nombre pour l'afficher aux utilisateurs.

Longue
DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

PointOfInterestEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Chaîne

Taille de texte recommandée : 50 caractères maximum

Images poster Obligatoire sous certaines conditions

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Remarque : Une image est requise si l'entité fait partie d'un cluster de recommandations. Si un badge est fourni, assurez-vous qu'il y a un espace de sécurité de 24 dp en haut et en bas de l'image.

Consultez la section Caractéristiques des images pour en savoir plus.
Durée du dernier engagement Obligatoire sous certaines conditions

Horodatage epoch de la dernière interaction de l'utilisateur avec cette entité.

Remarque : Ce champ est obligatoire si l'entité fait partie d'un cluster de recherche continue.

Joda-Time Instant
Emplacement : pays Obligatoire sous certaines conditions

Pays dans lequel se trouve le point d'intérêt.

Remarque : Ce champ est obligatoire si l'entité fait partie d'un cluster de recommandations.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville Obligatoire sous certaines conditions

Ville où se trouve le point d'intérêt.

Remarque : Ce champ est obligatoire si l'entité fait partie d'un cluster de recommandations.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : adresse à afficher Obligatoire sous certaines conditions

Adresse qui sera affichée à l'utilisateur. Indiquez une adresse concise, en utilisant des abréviations si possible (par exemple, "Rue" au lieu de "Rue", "Av." au lieu de "Avenue"). Cette chaîne peut être tronquée en fonction de l'appareil et des paramètres de l'utilisateur. Indiquez le nom de la ville pour une identification claire.

Remarque : Ce champ est obligatoire si l'entité fait partie d'un cluster de recommandations.

Texte libre

Taille de texte recommandée : 35 caractères maximum

Adresse postale Facultatif Adresse postale (le cas échéant) du point d'intérêt.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : État Facultatif Région ou département (le cas échéant) dans lequel se trouve le point d'intérêt.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : code postal Facultatif Code postal (le cas échéant) du point d'intérêt.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : quartier Facultatif Quartier (le cas échéant) du point d'intérêt.

Texte libre

Taille de texte recommandée : 20 caractères maximum

AvailabilityTimeWindow - Localized Start Time - Timestamp Facultatif Code temporel Unix indiquant quand le point d'intérêt devrait être ouvert/disponible. Joda-Time Instant
AvailabilityTimeWindow - Localized Start Time - Timezone Facultatif Fuseau horaire dans lequel le point d'intérêt est censé être ouvert/disponible.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

AvailabilityTimeWindow - Localized End Time - Timestamp Facultatif Code temporel Unix jusqu'à la date à laquelle le point d'intérêt devrait être ouvert/disponible. Joda-Time Instant
AvailabilityTimeWindow - Heure de fin localisée - Fuseau horaire Facultatif Fuseau horaire dans lequel le point d'intérêt est censé être ouvert/disponible.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Badges Facultatif

Chaque badge est soit un texte libre (15 caractères maximum), soit une petite image.

Badge - Texte Facultatif

Titre du badge

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Texte libre

Taille de texte recommandée : 15 caractères maximum

Badge : image Facultatif

Petite image

Traitement spécial de l'UX, par exemple sous forme de badge superposé à la miniature de l'image/vidéo.

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

Note (valeur maximale) Facultatif

Valeur maximale de l'échelle d'évaluation.

À fournir si la valeur de la note actuelle est également indiquée.

Nombre >= 0.0
Note (valeur actuelle) Facultatif

Valeur actuelle de l'échelle d'évaluation.

À fournir si la valeur maximale de la note est également indiquée.

Nombre >= 0.0
Nombre de notes Facultatif

Nombre de notes pour le point d'intérêt.

Remarque : Renseignez ce champ si votre application souhaite contrôler la façon dont cette information est affichée aux utilisateurs. Indiquez la chaîne concise qui peut être affichée pour l'utilisateur. Par exemple, si le nombre est de 1 000 000, pensez à utiliser des abréviations comme "1M" pour qu'il ne soit pas tronqué sur les petits écrans.

Chaîne
Nombre de notes Facultatif

Nombre de notes pour le point d'intérêt.

Remarque : Renseignez ce champ si vous ne souhaitez pas gérer vous-même la logique d'abréviation de l'affichage. Si les deux valeurs (Nombre et Valeur du nombre) sont présentes, nous utiliserons le nombre pour l'afficher aux utilisateurs.

Longue
Prix : CurrentPrice Obligatoire sous certaines conditions

Prix actuel des billets/pass d'entrée pour le point d'intérêt.

À fournir si le prix barré est indiqué.

Texte libre
Prix : prix barré Facultatif Prix d'origine des billets/pass d'entrée pour le point d'intérêt. Texte libre
Accroche de prix Facultatif Accroche de prix qui met en avant une promotion, un événement ou une remise réservée aux membres, le cas échéant.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Catégories de contenu Facultatif Décrivez la catégorie du contenu de l'entité.

Liste des énumérations éligibles

  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_MOVIES_AND_TV_SHOWS (exemple : cinéma)
  • TYPE_MEDICAL (exemple : hôpital)
  • TYPE_EDUCATION (exemple : école)
  • TYPE_SPORTS (exemple : stade)

Pour obtenir de l'aide, consultez la section Catégorie de contenu.

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

RestaurantReservationEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Chaîne

Taille de texte recommandée : 50 caractères maximum

Heure de début de la réservation localisée : code temporel Obligatoire Code temporel Unix correspondant au début prévu de la réservation. Joda-Time Instant
Heure de début de la réservation localisée (fuseau horaire) Obligatoire Fuseau horaire dans lequel la réservation est censée commencer.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Emplacement : pays Obligatoire Pays dans lequel se trouve le restaurant.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville Obligatoire Ville où se trouve le restaurant.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : adresse à afficher Obligatoire Adresse du restaurant qui sera affichée à l'utilisateur.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse postale Facultatif Adresse postale (le cas échéant) du restaurant.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : État Facultatif Région ou département (le cas échéant) où se trouve le restaurant.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : code postal Facultatif Code postal du restaurant (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : quartier Facultatif Quartier du restaurant (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Images poster Facultatif Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9. Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

Taille de la table Facultatif Nombre de personnes dans le groupe de réservation Entier > 0
DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

EventReservationEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Chaîne

Taille de texte recommandée : 50 caractères maximum

Heure de début localisée : code temporel Obligatoire

Code temporel Unix auquel l'événement doit commencer.

Joda-Time Instant
Heure de début localisée : fuseau horaire Obligatoire

Fuseau horaire dans lequel l'événement doit commencer.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Mode événement Obligatoire

Champ permettant d'indiquer si l'événement sera virtuel, en présentiel ou les deux.

Énumération : VIRTUAL, IN_PERSON ou HYBRID
Emplacement : pays Obligatoire sous certaines conditions

Pays dans lequel l'événement a lieu.

Remarque : Cette information est obligatoire pour les événements EN_PRÉSENCE ou HYBRIDES.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville Obligatoire sous certaines conditions

Ville où se déroule l'événement.

Remarque : Cette information est obligatoire pour les événements EN_PRÉSENCE ou HYBRIDES.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : adresse à afficher Obligatoire sous certaines conditions

Adresse ou nom du lieu où se déroulera l'événement, qui doit être affiché à l'utilisateur.

Remarque : Cette information est obligatoire pour les événements EN_PRÉSENCE ou HYBRIDES.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse postale Facultatif Adresse (le cas échéant) du lieu où se déroule l'événement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : État Facultatif Région ou département (le cas échéant) où l'événement est organisé.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : code postal Facultatif Code postal (le cas échéant) du lieu où se déroule l'événement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : quartier Facultatif Quartier (le cas échéant) dans lequel l'événement est organisé.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Images poster Facultatif

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Remarque : Nous vous recommandons vivement d'ajouter une image. Si un badge est fourni, assurez-vous qu'il y a un espace de sécurité de 24 dp en haut et en bas de l'image.

Consultez la section Caractéristiques des images pour en savoir plus.
Heure de fin localisée : code temporel Facultatif

Horodatage de l'époque où l'événement devrait se terminer.

Joda-Time Instant
Heure de fin localisée : fuseau horaire Facultatif

Fuseau horaire dans lequel l'événement est censé se terminer.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Fournisseur de services : nom Facultatif

Nom du fournisseur de services.

Remarque : Vous devez fournir du texte ou une image pour le fournisseur de services.

Texte libre. Par exemple, le nom de l'organisateur de l'événement ou de la visite
Fournisseur de services : image Facultatif

Logo/Image du fournisseur de services.

Remarque : Vous devez fournir du texte ou une image pour le fournisseur de services.

Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

Badges Facultatif

Chaque badge est soit un texte libre (15 caractères maximum), soit une petite image.

Badge - Texte Facultatif

Titre du badge

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Texte libre

Taille de texte recommandée : 15 caractères maximum

Badge : image Facultatif

Petite image

Traitement spécial de l'UX, par exemple sous forme de badge superposé à la miniature de l'image/vidéo.

Remarque : Vous devez indiquer un texte ou une image pour le badge.

Consultez la section Caractéristiques des images pour en savoir plus.
ID de réservation Facultatif ID de réservation pour la réservation de l'événement. Texte libre
Prix : CurrentPrice Obligatoire sous certaines conditions

Prix actuel du billet/pass pour l'événement.

À fournir si le prix barré est indiqué.

Texte libre
Prix : prix barré Facultatif Prix d'origine du billet/pass pour l'événement. Texte libre
Accroche de prix Facultatif Accroche de prix qui met en avant une promotion, un événement ou une remise réservée aux membres, le cas échéant.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

Note (valeur maximale) Facultatif

Valeur maximale de l'échelle d'évaluation.

À fournir si la valeur de la note actuelle est également indiquée.

Nombre >= 0.0
Note (valeur actuelle) Facultatif

Valeur actuelle de l'échelle d'évaluation.

À fournir si la valeur maximale de la note est également indiquée.

Nombre >= 0.0
Nombre de notes Facultatif

Nombre de notes pour l'événement.

Remarque : Renseignez ce champ si votre application souhaite contrôler la façon dont cette information est affichée aux utilisateurs. Indiquez la chaîne concise qui peut être affichée pour l'utilisateur. Par exemple, si le nombre est de 1 000 000, pensez à utiliser des abréviations comme "1M" pour qu'il ne soit pas tronqué sur les petits écrans.

Chaîne
Nombre de notes Facultatif

Nombre de notes pour l'événement.

Remarque : Renseignez ce champ si vous ne souhaitez pas gérer vous-même la logique d'abréviation de l'affichage. Si les deux valeurs (Nombre et Valeur du nombre) sont présentes, nous utiliserons le nombre pour l'afficher aux utilisateurs.

Longue
Catégories de contenu Facultatif Décrivez la catégorie du contenu de l'entité.

Liste des énumérations éligibles

  • TYPE_MOVIES_AND_TV_SHOWS (exemple : cinéma)
  • TYPE_DIGITAL_GAMES (exemple : e-sport)
  • TYPE_MUSIC (exemple : concert)
  • TYPE_TRAVEL_AND_LOCAL (exemple : visite, festival)
  • TYPE_HEALTH_AND_FITENESS (exemple : cours de yoga)
  • TYPE_EDUCATION (exemple : classe)
  • TYPE_SPORTS (exemple : match de football)
  • TYPE_DATING (exemple : meetup)

Pour obtenir de l'aide, consultez la section Catégorie de contenu.

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

LodgingReservationEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Texte libre. Par exemple, "Votre séjour du 12 décembre"

Taille de texte recommandée : 50 caractères maximum

Heure d'arrivée localisée (code temporel) Obligatoire Horodatage de l'epoch représentant l'heure d'arrivée pour la réservation. Joda-Time Instant
Heure de confirmation localisée : fuseau horaire Obligatoire Fuseau horaire dans lequel se trouve l'heure d'arrivée pour la réservation.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Heure de départ localisée : code temporel Obligatoire Horodatage de l'époque représentant l'heure de départ de la réservation. Joda-Time Instant
Heure de départ localisée : fuseau horaire Obligatoire Fuseau horaire dans lequel se trouve l'heure de départ de la réservation.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Emplacement : pays Obligatoire Pays dans lequel se trouve l'hébergement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville Obligatoire Ville où se trouve l'hébergement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : adresse à afficher Obligatoire Adresse qui sera affichée à l'utilisateur. Indiquez une adresse concise, en utilisant des abréviations si possible (par exemple, "Av." pour "Avenue"). Cette chaîne peut être tronquée en fonction de l'appareil et des paramètres de l'utilisateur. Indiquez le nom de la ville pour une identification claire.

Texte libre

Taille de texte recommandée : 35 caractères maximum

Adresse postale Facultatif Adresse postale (le cas échéant) de l'hébergement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : État Facultatif Région ou département (le cas échéant) où se trouve l'hébergement.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Zone géographique : code postal Facultatif Code postal de l'hébergement (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Emplacement : quartier Facultatif Quartier de l'hébergement (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Images poster Facultatif

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Remarque : Si un badge est fourni, assurez-vous de laisser un espace de sécurité de 24 dps en haut et en bas de l'image.

Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

ID de réservation Facultatif ID de la réservation d'hébergement. Texte libre
Note (valeur maximale) Facultatif

Valeur maximale de l'échelle d'évaluation.

À fournir si la valeur de la note actuelle est également indiquée.

Nombre >= 0.0
Note (valeur actuelle) Facultatif

Valeur actuelle de l'échelle d'évaluation.

À fournir si la valeur maximale de la note est également indiquée.

Nombre >= 0.0
Nombre de notes Facultatif

Nombre de notes pour l'hébergement.

Remarque : Renseignez ce champ si votre application souhaite contrôler la façon dont cette information est affichée aux utilisateurs. Indiquez la chaîne concise qui peut être affichée pour l'utilisateur. Par exemple, si le nombre est de 1 000 000, pensez à utiliser des abréviations comme "1M" pour qu'il ne soit pas tronqué sur les petits écrans.

Chaîne
Nombre de notes Facultatif

Nombre de notes pour l'hébergement.

Remarque : Renseignez ce champ si vous ne souhaitez pas gérer vous-même la logique d'abréviation de l'affichage. Si les deux valeurs (Nombre et Valeur du nombre) sont présentes, nous utiliserons le nombre pour l'afficher aux utilisateurs.

Longue
Prix : CurrentPrice Obligatoire sous certaines conditions

Prix actuel de l'hébergement.

À fournir si le prix barré est indiqué.

Texte libre
Prix : prix barré Facultatif Prix d'origine de l'hébergement, qui sera barré dans l'UI. Texte libre
Accroche de prix Facultatif Accroche de prix qui met en avant une promotion, un événement ou une remise réservée aux membres, le cas échéant.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

TransportationReservationEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Texte libre. Par exemple, "SFO to SAN" (SFO vers SAN)

Taille de texte recommandée : 50 caractères maximum

Type de transport Obligatoire Mode/type de transport pour la réservation. Énumération : FLIGHT, TRAIN, BUS ou FERRY
Heure de départ localisée : code temporel Obligatoire Code temporel Unix représentant l'heure de départ. Joda-Time Instant
Heure de départ localisée : fuseau horaire Obligatoire Fuseau horaire de l'heure de départ.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Heure d'arrivée localisée (code temporel) Obligatoire Code temporel Unix représentant l'heure d'arrivée. Joda-Time Instant
Heure d'arrivée localisée : fuseau horaire Obligatoire Fuseau horaire de l'heure d'arrivée.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Numéro de transport Obligatoire Numéro de vol, de bus, de train, de ferry ou de croisière Texte libre
Heure d'embarquement localisée (code temporel) Obligatoire Code temporel Unix représentant l'heure d'embarquement pour la réservation (le cas échéant) Joda-Time Instant
Heure d'embarquement localisée : fuseau horaire Obligatoire Fuseau horaire de l'heure d'embarquement pour la réservation (le cas échéant)

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Pays de départ Facultatif Pays de départ.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville de départ Facultatif Ville de départ.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Lieu de départ : adresse à afficher Facultatif Lieu de départ qui sera affiché à l'utilisateur.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse postale du lieu de départ Facultatif Adresse postale (le cas échéant) du lieu de départ.

Texte libre

Taille de texte recommandée : 20 caractères maximum

État du lieu de départ Facultatif Région ou département du lieu de départ (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Code postal du lieu de départ Facultatif Code postal du lieu de départ (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Lieu de départ : quartier Facultatif Quartier (le cas échéant) du lieu de départ.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Pays de destination Facultatif Pays de destination.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville d'arrivée Facultatif Ville d'arrivée.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Lieu d'arrivée : adresse à afficher Facultatif Lieu d'arrivée qui sera affiché à l'utilisateur.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse postale du lieu d'arrivée Facultatif Adresse postale (le cas échéant) du lieu d'arrivée.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Lieu d'arrivée : État Facultatif Région ou département (le cas échéant) du lieu d'arrivée.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Code postal du lieu d'arrivée Facultatif Code postal (le cas échéant) du lieu d'arrivée.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Lieu d'arrivée : quartier Facultatif Quartier (le cas échéant) du lieu d'arrivée.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Fournisseur de services : nom Facultatif

Nom du fournisseur de services.

Remarque : Vous devez fournir du texte ou une image pour le fournisseur de services.

Texte libre. Par exemple, "Nom de la compagnie aérienne"
Fournisseur de services : image Facultatif

Logo/Image du fournisseur de services.

Remarque : Vous devez fournir du texte ou une image pour le fournisseur de services.

Consultez la section Caractéristiques des images pour en savoir plus.
Images poster Facultatif

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

ID de réservation Facultatif ID de la réservation de transport. Texte libre
Prix : CurrentPrice Obligatoire sous certaines conditions

Prix actuel de la réservation.

À fournir si le prix barré est indiqué.

Texte libre
Prix : prix barré Facultatif Prix d'origine de la réservation, qui sera barré dans l'UI. Texte libre
Accroche de prix Facultatif Accroche de prix qui met en avant une promotion, un événement ou une remise réservée aux membres, le cas échéant.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

VehicleRentalReservationEntity

Attribut Obligatoire ? Description Format
URI d'action Obligatoire

Lien profond vers l'entité dans l'application pour les fournisseurs.

Remarque : Vous pouvez utiliser des liens profonds pour l'attribution. Consultez ces questions fréquentes.

URI
Titre Obligatoire Titre de l'entité.

Texte libre. Par exemple, "Avis Union Square SF"

Taille de texte recommandée : 50 caractères maximum

Heure de retrait localisée : code temporel Obligatoire Code temporel Unix représentant l'heure de prise en charge de la réservation. Joda-Time Instant
Heure de retrait localisée : fuseau horaire Obligatoire Fuseau horaire de l'heure de prise en charge pour la réservation.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Heure de retour localisée (code temporel) Facultatif Horodatage de l'époque représentant l'heure de départ de la réservation. Joda-Time Instant
Heure de retour localisée : fuseau horaire Facultatif Fuseau horaire de l'heure de départ de la réservation.

Joda-Time DateTimeZone

Consultez la section Spécifications des fuseaux horaires pour en savoir plus.

Adresse de retrait : pays Facultatif Pays du lieu de prise en charge.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Ville de l'adresse de retrait Facultatif Ville du lieu de prise en charge.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retrait : adresse à afficher Facultatif Point de retrait qui sera affiché à l'utilisateur.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retrait : adresse postale Facultatif Adresse postale (le cas échéant) du lieu de retrait.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retrait : État Facultatif Région ou département du lieu de prise en charge (le cas échéant).

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retrait : code postal Facultatif Code postal (le cas échéant) du lieu de prise en charge.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de départ : quartier Facultatif Quartier (le cas échéant) du lieu de prise en charge.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retour : pays Facultatif Pays du lieu de retour.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retour : ville Facultatif Ville de l'adresse de retour.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retour : adresse à afficher Facultatif Lieu de retour qui sera affiché à l'utilisateur.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retour : adresse postale Facultatif Adresse postale (le cas échéant) du lieu de retour.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retour : État Facultatif Région ou département (le cas échéant) du lieu de retour.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Code postal de l'adresse de retour Facultatif Code postal (le cas échéant) du lieu de retour.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Adresse de retour : quartier Facultatif Quartier (le cas échéant) du lieu de dépôt.

Texte libre

Taille de texte recommandée : 20 caractères maximum

Fournisseur de services : nom Facultatif

Nom du fournisseur de services.

Remarque : Vous devez fournir du texte ou une image pour le fournisseur de services.

Texte libre. Par exemple, "Avis Car Rental"
Fournisseur de services : image Facultatif

Logo/Image du fournisseur de services.

Remarque : Vous devez fournir du texte ou une image pour le fournisseur de services.

Consultez la section Caractéristiques des images pour en savoir plus.
Images poster Facultatif

Nous n'afficherons qu'une seule image lorsque plusieurs images seront fournies. Le format recommandé est 16:9.

Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

Un seul paragraphe de texte décrivant l'entité.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée : 180 caractères

Liste des sous-titres Facultatif

Jusqu'à trois sous-titres, chacun sur une seule ligne de texte.

Remarque : Seule la description ou la liste des sous-titres sera affichée à l'utilisateur, et non les deux.

Texte libre

Taille de texte recommandée pour chaque sous-titre : 50 caractères maximum

ID de confirmation Facultatif ID de confirmation de la réservation de location de véhicule. Texte libre
Prix : CurrentPrice Obligatoire sous certaines conditions

Prix actuel de la réservation.

À fournir si le prix barré est indiqué.

Texte libre
Prix : prix barré Facultatif Prix d'origine de la réservation, qui sera barré dans l'UI. Texte libre
Accroche de prix Facultatif Accroche de prix qui met en avant une promotion, un événement ou une remise réservée aux membres, le cas échéant.

Texte libre

Taille de texte recommandée : 45 caractères maximum (si le texte est trop long, des points de suspension peuvent s'afficher)

DisplayTimeWindow (facultatif) : définissez la période d'affichage d'un contenu sur une surface.
Code temporel de début Facultatif

Code temporel de l'epoch après lequel le contenu doit être affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)
Code temporel de fin Facultatif

Code temporel de l'epoch après lequel le contenu n'est plus affiché sur la surface.

Si ce code n'est pas configuré, le contenu peut s'afficher sur la surface.

Code temporel de l'epoch (en millisecondes)

Caractéristiques des images

Vous trouverez ci-dessous les spécifications requises pour les composants Image :

Format Nombre minimal de pixels Nombre de pixels recommandé

Carré (1x1)

Préféré

300 x 300 1 200 x 1 200
Paysage (1,91 x 1) 600 x 314 1 200 x 628
Format portrait (4 x 5) 480 x 600 960 x 1200

Les images doivent être hébergées sur des CDN publics pour que Google puisse y accéder.

Formats des fichiers

PNG, JPG, GIF statique, WebP

Taille maximale des fichiers

5 120 Ko

Autres recommandations

  • Zone de sécurité de l'image : placez le contenu important dans les 80 % les plus au centre de l'image.
  • Utilisez un arrière-plan transparent pour que l'image s'affiche correctement avec les paramètres du thème sombre et clair.

Spécifications des fuseaux horaires

Privilégiez l'ID (par exemple, "America/Los_Angeles") au décalage (par exemple, "-07:00").

Exemple d'utilisation : DateTimeZone.forID("America/Los_Angeles")

Catégorie de contenu

La catégorie de contenu permet aux applications de publier du contenu appartenant à plusieurs catégories. Le contenu est mappé à certaines catégories prédéfinies, à savoir :

  • TYPE_EDUCATION
  • TYPE_SPORTS
  • TYPE_MOVIES_AND_TV_SHOWS
  • TYPE_BOOKS
  • TYPE_AUDIOBOOKS
  • TYPE_MUSIC
  • TYPE_DIGITAL_GAMES
  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_HOME_AND_AUTO
  • TYPE_BUSINESS
  • TYPE_NEWS
  • TYPE_FOOD_AND_DRINK
  • TYPE_SHOPPING
  • TYPE_HEALTH_AND_FITENESS
  • TYPE_MEDICAL
  • TYPE_PARENTING
  • TYPE_DATING

Les images doivent être hébergées sur des CDN publics pour que Google puisse y accéder.

Consignes pour utiliser les catégories de contenu

  1. Certaines entités, comme ArticleEntity et GenericFeaturedEntity, peuvent utiliser n'importe quelle catégorie de contenu. Pour d'autres entités telles que EventEntity, EventReservationEntity et PointOfInterestEntity, seule une partie de ces catégories est éligible. Consultez la liste des catégories éligibles pour un type d'entité avant de la remplir.
  2. Utilisez le type d'entité spécifique pour certaines catégories de contenu plutôt qu'une combinaison des entités génériques et de ContentCategory :

    • TYPE_MOVIES_AND_TV_SHOWS : consultez les entités du guide d'intégration Watch avant d'utiliser les entités génériques.
    • TYPE_BOOKS : consultez EbookEntity avant d'utiliser les entités génériques.
    • TYPE_AUDIOBOOKS : consultez AudiobookEntity avant d'utiliser les entités génériques.
    • TYPE_SHOPPING : consultez ShoppingEntity avant d'utiliser les entités génériques.
    • TYPE_FOOD_AND_DRINK : consultez le guide d'intégration des aliments avant d'utiliser les entités génériques.
  3. Le champ "ContentCategory" est facultatif et doit être laissé vide si le contenu n'appartient à aucune des catégories mentionnées précédemment.

  4. Si plusieurs catégories de contenu sont fournies, indiquez-les par ordre de pertinence pour le contenu, en plaçant la catégorie de contenu la plus pertinente en premier dans la liste.

Étape 2 : Fournir les données de cluster

Il est recommandé d'exécuter la tâche de publication de contenu en arrière-plan (par exemple, à l'aide de WorkManager) et de la programmer régulièrement ou sur la base d'un événement précis (par exemple, chaque fois que l'utilisateur ouvre l'application ou lorsqu'il vient d'ajouter quelque chose à son panier).

AppEngageTravelClient permet la publication des clusters.

Les API suivantes permettent de publier des clusters dans le client :

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishReservationCluster
  • publishContinueSearchCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteReservationCluster
  • deleteContinueSearchCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

Cette API permet de vérifier si le service est disponible pour l'intégration et de déterminer si le contenu peut être présenté sur l'appareil.

Kotlin

client.isServiceAvailable.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // Handle IPC call success
        if(task.result) {
          // Service is available on the device, proceed with content publish
          // calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
}

Java

client.isServiceAvailable().addOnCompleteListener(task - > {
    if (task.isSuccessful()) {
        // Handle success
        if(task.getResult()) {
          // Service is available on the device, proceed with content publish
          // calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
});

publishRecommendationClusters

Cette API permet de publier une liste d'objets RecommendationCluster.

Kotlin

client.publishRecommendationClusters(
      PublishRecommendationClustersRequest.Builder()
        .addRecommendationCluster(
          RecommendationCluster.Builder()
            .addEntity(entity1)
            .addEntity(entity2)
            .setTitle("Top Picks For You")
            .build()
        )
        .build()
    )

Java

client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Top Picks For You")
                        .build())
                .build());

Lorsque le service reçoit la requête, les actions suivantes ont lieu dans une seule transaction :

  • Les données RecommendationCluster existantes du développeur partenaire sont supprimées.
  • Les données de la requête sont analysées et stockées dans le cluster "Recommendation" mis à jour.

En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

publishFeaturedCluster

Cette API permet de publier une liste d'objets FeaturedCluster.

Kotlin

client.publishFeaturedCluster(
    PublishFeaturedClusterRequest.Builder()
      .setFeaturedCluster(
        FeaturedCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java

client.publishFeaturedCluster(
            new PublishFeaturedClustersRequest.Builder()
                .addFeaturedCluster(
                    new FeaturedCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

Lorsque le service reçoit la requête, les actions suivantes ont lieu dans une seule transaction :

  • Les données FeaturedCluster existantes du développeur partenaire sont supprimées.
  • Les données de la requête sont analysées et stockées dans le cluster "Featured" mis à jour.

En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

publishReservationCluster

Cette API permet de publier un objet ReservationCluster.

Kotlin

client.publishReservationCluster(
    PublishReservationClusterRequest.Builder()
      .setReservationCluster(
        ReservationCluster.Builder()
          .addLodgingReservationEntity(lodgingReservationEntity)
          .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
          .addTransportationReservationEntity(transportationReservationEntity)
          .addEventReservationEntity(eventReservationEntity)
          .addRestaurantReservationEntity(restaurantReservationEntity)
          .build())
      .build())

Java

client.publishReservationCluster(
            new PublishReservationClusterRequest.Builder()
                .setReservationCluster(
                    new ReservationCluster.Builder()
                        .addLodgingReservationEntity(lodgingReservationEntity)
                        .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
                        .addTransportationReservationEntity(transportationReservationEntity)
                        .addEventReservationEntity(eventReservationEntity)
                        .addRestaurantReservationEntity(restaurantReservationEntity)
                        .build())
                .build());

Lorsque le service reçoit la requête, les actions suivantes ont lieu dans une seule transaction :

  • Les données ReservationCluster existantes du développeur partenaire sont supprimées.
  • Les données de la requête sont analysées et stockées dans le cluster "Reservation" mis à jour.

En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

publishContinueSearchCluster

Cette API permet de publier une liste d'objets ContinueSearchCluster.

Kotlin

client.publishContinueSearchCluster(
    PublishContinueSearchClusterRequest.Builder()
      .setContinueSearchCluster(
        ContinueSearchCluster.Builder()
          .addPointOfInterestEntity(entity1)
          .addPointOfInterestEntity(entity2)
          .build())
      .build())

Java

client.publishContinueSearchCluster(
            new PublishContinueSearchClusterRequest.Builder()
                .setContinueSearchCluster(
                    new ContinueSearchCluster.Builder()
                        .addPointOfInterestEntity(entity1)
                        .addPointOfInterestEntity(entity2)
                        .build())
                .build());

Lorsque le service reçoit la requête, les actions suivantes ont lieu dans une seule transaction :

  • Les données ContinueSearchCluster existantes du développeur partenaire sont supprimées.
  • Les données de la requête sont analysées et stockées dans le cluster "Continue Search" mis à jour.

En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

publishUserAccountManagementRequest

Cette API permet de publier une fiche de connexion. L'action de connexion redirige les utilisateurs vers la page de connexion de l'application afin que celle-ci puisse publier du contenu (ou fournir un contenu plus personnalisé).

Les métadonnées suivantes font partie de la fiche de connexion :

Attribut Obligatoire ? Description
URI d'action Obligatoire Lien profond vers l'action (par exemple, accès à la page de connexion de l'application)
Image Facultatif : si aucun titre n'est fourni, vous devez en fournir un

Image affichée sur la fiche

Images au format 16:9 avec une résolution de 1 264 x 712

Titre Facultatif : si aucune image n'est fournie, vous devez en fournir une Titre sur la fiche
Texte de l'action Facultatif Texte affiché sur l'incitation à l'action (par exemple, "Se connecter")
Sous-titre Facultatif Sous-titre facultatif sur la fiche

Kotlin

var SIGN_IN_CARD_ENTITY =
      SignInCardEntity.Builder()
          .addPosterImage(
              Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build()

client.publishUserAccountManagementRequest(
            PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

Java

SignInCardEntity SIGN_IN_CARD_ENTITY =
      new SignInCardEntity.Builder()
          .addPosterImage(
              new Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build();

client.publishUserAccountManagementRequest(
            new PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

Lorsque le service reçoit la requête, les actions suivantes ont lieu dans une seule transaction :

  • Les données UserAccountManagementCluster existantes du développeur partenaire sont supprimées.
  • Les données de la requête sont analysées et stockées dans le cluster "UserAccountManagementCluster" mis à jour.

En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

updatePublishStatus

Si, pour une raison opérationnelle interne, aucun des clusters n'est publié, nous vous recommandons vivement de mettre à jour l'état de publication à l'aide de l'API updatePublishStatus. Ce point est important pour les raisons suivantes :

  • Il est essentiel d'indiquer l'état dans tous les scénarios, même lorsque le contenu est publié (STATUS == PUBLISHED) pour renseigner les tableaux de bord qui utilisent cet état explicite afin de transmettre l'état et d'autres métriques de votre intégration.
  • Si aucun contenu n'est publié, mais que l'état de l'intégration fonctionne correctement (STATUS == NOT_PUBLISHED), Google peut éviter de déclencher des alertes dans les tableaux de bord concernant l'état de l'application. Cela confirme que le contenu n'est pas publié en raison d'une situation attendue du point de vue du fournisseur.
  • Cela permet aux développeurs de fournir des informations concernant la date de publication des données.
  • Google peut utiliser les codes d'état pour encourager l'utilisateur à effectuer certaines actions dans l'application, afin qu'il puisse afficher ou contourner le contenu de l'application.

Voici la liste des codes d'état de publication éligibles :

// Content is published
AppEngagePublishStatusCode.PUBLISHED,

// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,

// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,

// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,

// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,

// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,

// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,

// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,

// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER

Si le contenu n'est pas publié parce que l'utilisateur n'est pas connecté, Google vous recommande de publier la fiche de connexion. Si, pour une raison quelconque, les fournisseurs ne peuvent pas publier la fiche de connexion, nous vous recommandons d'appeler l'API updatePublishStatus avec le code d'état NOT_PUBLISHED_REQUIRES_SIGN_IN.

Kotlin

client.updatePublishStatus(
   PublishStatusRequest.Builder()
     .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
     .build())

Java

client.updatePublishStatus(
    new PublishStatusRequest.Builder()
        .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
        .build());

deleteRecommendationClusters

Cette API permet de supprimer le contenu des clusters "Recommendation".

Kotlin

client.deleteRecommendationClusters()

Java

client.deleteRecommendationClusters();

Lorsque le service reçoit la requête, il supprime les données existantes des clusters "Recommendation". En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

deleteFeaturedCluster

Cette API permet de supprimer le contenu du cluster "Featured".

Kotlin

client.deleteFeaturedCluster()

Java

client.deleteFeaturedCluster();

Lorsque le service reçoit la requête, il supprime les données existantes du cluster "Featured". En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

deleteReservationCluster

Cette API permet de supprimer le contenu du cluster "Réservation".

Kotlin

client.deleteReservationCluster()

Java

client.deleteReservationCluster();

Lorsque le service reçoit la requête, il supprime les données existantes du cluster "Reservation". En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

deleteUserManagementCluster

Cette API permet de supprimer le contenu du cluster "UserAccountManagement".

Kotlin

client.deleteUserManagementCluster()

Java

client.deleteUserManagementCluster();

Lorsque le service reçoit la requête, il supprime les données existantes du cluster "UserAccountManagement". En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

deleteContinueSearchCluster

Cette API permet de supprimer le contenu du cluster "Continue Search".

Kotlin

client.deleteContinueSearchCluster()

Java

client.deleteContinueSearchCluster();

Lorsque le service reçoit la requête, il supprime les données existantes du cluster "Continue Search". En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

deleteClusters

Cette API permet de supprimer le contenu d'un type de cluster donné.

Kotlin

client.deleteClusters(
    DeleteClustersRequest.Builder()
      .addClusterType(ClusterType.TYPE_RESERVATION)
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
      .build())

Java

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_RESERVATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
                .build());

Lorsque le service reçoit la requête, il supprime les données existantes de tous les clusters correspondant aux types de clusters spécifiés. Les clients peuvent choisir de transmettre un ou plusieurs types de clusters. En cas d'erreur, la requête entière est rejetée, et l'état existant est maintenu.

Gestion des exceptions

Il est fortement recommandé d'écouter le résultat de la tâche à partir des API de publication afin qu'une action de suivi puisse être effectuée pour récupérer et renvoyer une tâche réussie.

Kotlin

client.publishRecommendationClusters(
        PublishRecommendationClustersRequest.Builder()
          .addRecommendationCluster(..)
          .build())
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          // do something
        } else {
          val exception = task.exception
          if (exception is AppEngageException) {
            @AppEngageErrorCode val errorCode = exception.errorCode
            if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
              // do something
            }
          }
        }
      }

Java

client.publishRecommendationClusters(
              new PublishRecommendationClustersRequest.Builder()
                  .addRecommendationCluster(...)
                  .build())
          .addOnCompleteListener(
              task -> {
                if (task.isSuccessful()) {
                  // do something
                } else {
                  Exception exception = task.getException();
                  if (exception instanceof AppEngageException) {
                    @AppEngageErrorCode
                    int errorCode = ((AppEngageException) exception).getErrorCode();
                    if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
                      // do something
                    }
                  }
                }
              });

L'erreur est renvoyée au format AppEngageException. La cause est incluse sous la forme d'un code d'erreur.

Code d'erreur Nom de l'erreur Remarque
1 SERVICE_NOT_FOUND Le service n'est pas disponible sur l'appareil donné.
2 SERVICE_NOT_AVAILABLE Le service est disponible sur l'appareil donné, mais pas au moment de l'appel (par exemple, il est explicitement désactivé).
3 SERVICE_CALL_EXECUTION_FAILURE L'exécution de la tâche a échoué en raison de problèmes de thread. Dans ce cas, vous pouvez réessayer.
4 SERVICE_CALL_PERMISSION_DENIED L'appelant n'est pas autorisé à effectuer l'appel du service.
5 SERVICE_CALL_INVALID_ARGUMENT La requête contient des données non valides (par exemple, un nombre plus élevé que le nombre de clusters autorisé).
6 SERVICE_CALL_INTERNAL Une erreur s'est produite au niveau du service.
7 SERVICE_CALL_RESOURCE_EXHAUSTED L'appel du service est effectué trop fréquemment.

Étape 3 : Gérer les intents de diffusion

En plus d'effectuer des appels d'API de publication de contenu via une tâche, vous devez également configurer un objet BroadcastReceiver pour recevoir la requête de publication de contenu.

L'objectif des intents de diffusion est principalement de réactiver des applications et de forcer la synchronisation des données. Les intents de diffusion ne sont pas conçus pour être envoyés très fréquemment. Ils ne se déclenchent que lorsque le service Engage détermine que le contenu est peut-être obsolète (par exemple, s'il date d'il y a une semaine). De cette façon, l'utilisateur a plus de chances de bénéficier d'une expérience de contenu actualisée, même si l'application n'a pas été exécutée pendant une longue période.

Le BroadcastReceiver doit être configuré de deux manières :

  • Enregistrez dynamiquement une instance de la classe BroadcastReceiver à l'aide de Context.registerReceiver(). Cela permet la communication à partir d'applications restées actives en mémoire.

Kotlin

class AppEngageBroadcastReceiver : BroadcastReceiver(){
  // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
  // is received
  // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received
  // Trigger continue search cluster publish when PUBLISH_CONTINUE_SEARCH
  // broadcast is received
  // Trigger reservation cluster publish when PUBLISH_RESERVATION broadcast is
  // received
}

fun registerBroadcastReceivers(context: Context){
  var  context = context
  context = context.applicationContext

// Register Recommendation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Continue Search Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)

// Register Reservation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_RESERVATION),
                           com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                           /*scheduler=*/null)
}

Java

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received

// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received

// Trigger continue search cluster publish when PUBLISH_CONTINUE_SEARCH
// broadcast is received

// Trigger reservation cluster publish when PUBLISH_RESERVATION broadcast is
// received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Continue Search Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

// Register Reservation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
                         new IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_RESERVATION),
                         com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
                         /*scheduler=*/null);

}
  • Déclarez une implémentation de manière statique avec la balise <receiver> dans le fichier AndroidManifest.xml. Cela permet à l'application de recevoir des intents de diffusion lorsqu'elle n'est pas en cours d'exécution, et de publier le contenu.

<application>
   <receiver
      android:name=".AppEngageBroadcastReceiver"
      android:permission="com.google.android.engage.REQUEST_ENGAGE_DATA"
      android:exported="true"
      android:enabled="true">
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.travel.PUBLISH_CONTINUE_SEARCH" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.travel.PUBLISH_RESERVATION" />
      </intent-filter>
   </receiver>
</application>

Les intents suivants sont envoyés par le service :

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION Nous vous recommandons de démarrer un appel publishRecommendationClusters lors de la réception de cet intent.
  • com.google.android.engage.action.PUBLISH_FEATURED Nous vous recommandons de démarrer un appel publishFeaturedCluster lors de la réception de cet intent.
  • com.google.android.engage.action.travel.PUBLISH_CONTINUE_SEARCH Nous vous recommandons de démarrer un appel publishContinueSearchCluster lors de la réception de cet intent.
  • com.google.android.engage.action.travel.PUBLISH_RESERVATION Nous vous recommandons de démarrer un appel publishReservationCluster lors de la réception de cet intent.

Workflow d'intégration

Pour vous procurer un guide par étapes sur la validation de votre intégration une fois celle-ci terminée, consultez la page Workflow d'intégration pour les développeurs d'Engage.

Questions fréquentes

Pour en savoir plus, consultez les questions fréquentes concernant le SDK Engage.

Contact

Contactez engage-developers@google.com si vous avez des questions au cours du processus d'intégration.

Étapes suivantes

Une fois cette intégration effectuée, procédez comme suit :

  • Envoyez un e-mail à l'adresse engage-developers@google.com et joignez-y votre APK intégré prêt à être testé par Google.
  • Google effectue une vérification et des examens en interne pour s'assurer que l'intégration fonctionne comme prévu. Si des modifications sont nécessaires, nous vous contacterons avec toutes les informations nécessaires.
  • Une fois les tests terminés, si aucune modification n'est nécessaire, nous vous informerons que vous pouvez commencer à publier le fichier APK mis à jour et intégré sur le Play Store.
  • Une fois que nous aurons confirmé la publication de votre APK mis à jour sur le Play Store, vos clusters Recommendation (Recommandations), Featured (Sélection), Reservation (Réservation) et Continue Search (Poursuivre la recherche) pourront être publiés et visibles par les utilisateurs.