Engage SDK Health and Fitness: instructions d'intégration technique tierce

Google est en train de développer une surface sur appareil, qui organisera les applications des utilisateurs par secteurs et offrira une nouvelle expérience immersive permettant une consommation et une découverte personnalisées du contenu de ces applications. Cette expérience plein écran offre aux développeurs partenaires l'opportunité de mettre en avant leurs meilleurs contenus enrichis sur une chaîne dédiée à l'extérieur de leur application.Ce guide explique aux développeurs partenaires intégrer leurs contenus de santé et remise en forme, à l'aide du SDK Engage pour remplir cette nouvelle surface.

Détails de l'intégration

Terminologie

Cette intégration comprend les trois types de clusters suivants: Recommendation, Featured et Continuation.

  • Les clusters Recommandations affichent des suggestions personnalisées de santé et de remise en forme d'un développeur partenaire individuel. Ces recommandations peuvent être personnalisées ou généralisées (par exemple, les tendances du fitness et l'état de fonctionnement). Utilisez-les pour mettre en avant des articles ou des personnes en rapport avec la santé et le fitness.

    • Un cluster "Recommendation" peut être constitué des éléments suivants : ArticleEntity, PersonEntity, ou EventEntity, mais pas une combinaison 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. Ce propose des entités qui seront mises en évidence à l'aide du Cluster "Recommendation" :

      • ArticleEntity: ArticleEntity représente une recommandation pour contenus textuels liés à la santé et le fitness. Il peut être utilisé pour articles, articles de blog, contenus marketing, extraits d'actualités, etc.

        Figure 1:UI montrant une seule ArticleEntity dans le cluster Recommendations.
      • PersonEntity: PersonEntity représente une personne. La les recommandations peuvent consister à mettre en avant un coach ou toute personne à la santé et à la remise en forme, etc.

        Figure 2:UI montrant une seule entité PersonEntity dans Cluster "Recommendations".
      • EventEntity: EventEntity représente un événement ayant lieu dans le à venir. L'heure de début de l'événement est une information essentielle qui doit être transmise aux utilisateurs. Cette entité peut être utilisée mettre en avant des événements tels que des camps de don du sang, des séances d'entraînement, des salles de sport ou des cours de yoga, etc., en rapport avec la santé et la remise en forme.

        Figure 3:UI montrant une seule entité EventEntity dans le cluster "Recommandations".
  • Le cluster Continuation affiche le contenu récemment interagi par les utilisateurs depuis plusieurs développeurs partenaires dans un seul regroupement d'UI. Chaque développeur partenaire pourra diffuser au maximum 10 entités dans la section "Suite" cluster.

    Le contenu de la continuation peut avoir la structure suivante:

    • ArticleEntity: ArticleEntity représente une recommandation pour contenus textuels liés à la santé et le fitness. Cette entité peut être utilisée pour représenter des articles de presse mis en pause ou d'autres contenus l’utilisateur aimerait continuer à consommer là où il l’a laissé. Exemple: Actualités extrait, extrait d'article de blog sur des sujets liés à la santé ou à la remise en forme.

      Figure 6 : UI montrant une seule ArticleEntity dans un cluster "Continuation".
    • EventRéservationEntity: EventRéservationEntity représente réservation pour un événement et aide les utilisateurs à suivre les événements à venir ou en cours réservations d'événements de remise en forme et de santé. Ex: sessions de formation

      Figure 8 : UI montrant un seul EventRéservationEntity dans un cluster "Continuation".
  • Le cluster Featured est une vue d'interface utilisateur qui présente le héros choisi GenericFeaturedEntity de nombreux développeurs partenaires dans un seul regroupement d'interface utilisateur. Il n'y a qu'un seul cluster "Featured", situé dans la partie supérieure de UI avec un emplacement prioritaire au-dessus de tous les clusters "Recommendation" Chaque Les développeurs partenaires sont autorisés à diffuser une seule entité d'un dans "Sélection", avec de nombreuses entités (de types potentiellement différents) plusieurs développeurs d'applications dans le cluster "Featured".

    • GenericFeaturedEntity: GenericFeaturedEntity est différent de L'élément de recommandation de cet élément de la sélection doit être utilisé pour un seul contenus populaires des développeurs et doit représenter du contenu important qui sera intéressant et pertinent pour les utilisateurs.

      Figure 12:UI montrant un seul héros Fiche GenericFeaturedEntity dans un cluster "Featured"

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 la mise en œuvre 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" 5 maximum Au moins 5 25 maximum (ArticleEntity, PersonEntity ou EventEntity)
Cluster "Continuation" 1 maximum Au moins 1 10 maximum (ArticleEntity ou EventReservationEntity).
Cluster "Featured" 1 maximum Au moins 1 10 maximum (GenericFeaturedEntity)

É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 acceptons les entités suivantes pour la colonne "Health & Catégorie de remise en forme:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. PersonEntity
  4. EventEntity
  5. EventReservationEntity

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'affichons qu'une seule image lorsque plusieurs images sont fournies. Proportions recommandées : 16:9

Remarque:Si vous fournissez un badge, assurez-vous de disposer de suffisamment d'espace libre. 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:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

Taille de texte recommandée: 180 caractères

Liste de sous-titres Facultatif

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

Remarque:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

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

Badges Facultatif

Chaque badge est composé de texte libre (15 caractères maximum) ou d'une petite image.

Traitement spécial de l'expérience utilisateur en plus d'une image/vidéo, par exemple sous la forme d'un badge se superposer à l'image

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

Titre du badge

Remarque:Vous devez ajouter du 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'expérience utilisateur, par exemple en superposition de badge sur l'image/la vidéo miniature.

Remarque:Vous devez ajouter du 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

Reportez-vous à la section Catégorie de contenu. pour obtenir des conseils.

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'affichons qu'une seule image lorsque plusieurs images sont fournies. Proportions recommandées : 16:9

Remarque:Nous vous recommandons vivement de créer des images. Si un badge est assurez-vous d'avoir un espace de sécurité de 24 dps en haut et en bas 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 (l'auteur, l'organisation ou le journaliste, par exemple) Consultez la section Caractéristiques des images pour en savoir plus.
Description Facultatif

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

Remarque:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

Taille de texte recommandée: 180 caractères

Liste de sous-titres Facultatif

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

Remarque:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

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

Badges Facultatif

Chaque badge est composé de texte libre (15 caractères maximum) ou d'une petite image.

Traitement spécial de l'expérience utilisateur en plus d'une image/vidéo, par exemple sous la forme d'un badge se superposer à l'image

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

Titre du badge

Remarque:Vous devez ajouter du 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'expérience utilisateur, par exemple en superposition de badge sur l'image/la vidéo miniature.

Remarque:Vous devez ajouter du 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 (en millisecondes) correspondant au moment où le contenu publiées / mises à jour dans l'application. Code temporel de l'epoch (en millisecondes)
Durée du dernier engagement Obligatoire sous certaines conditions

Code temporel de l'epoch (en millisecondes) lorsque l'utilisateur a interagi avec cette entité la dernière fois.

Remarque:Ce champ est obligatoire si l'entité fait partie de le cluster "Continuation".

Code temporel de l'epoch (en millisecondes)
Pourcentage de progression Obligatoire sous certaines conditions

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

Remarque:Ce champ est obligatoire si l'entité fait partie de le cluster "Continuation".

Valeur entière 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

Reportez-vous à la section Catégorie de contenu. pour obtenir des conseils.

PersonEntity

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
Profil – Nom Obligatoire Nom ou identifiant du profil, par exemple "Jean Dupont", "@TeamPixel", etc.

Chaîne

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

Profil – Avatar Obligatoire

Photo de profil ou avatar de l'utilisateur.

Remarque:Il doit s'agir d'une image carrée au format 1:1.

Consultez la section Caractéristiques des images pour en savoir plus.
Profil – Texte supplémentaire Facultatif Texte libre, comme l'identifiant du profil.

Texte libre

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

Profil – Image supplémentaire Facultatif Petite image comme un badge de validation Consultez la section Caractéristiques des images pour en savoir plus.
Image d'en-tête Facultatif

Nous n'affichons qu'une seule image lorsque plusieurs images sont fournies. Proportions recommandées : 16:9

Remarque:Nous vous recommandons vivement de créer des images. Si un badge est assurez-vous d'avoir un espace de sécurité de 24 dps en haut et en bas l'image

Consultez la section Caractéristiques des images pour en savoir plus.
Popularité – Nombre Facultatif

Représente l'image d'en-tête. Elle doit être différente de l'image de profil. Vous pouvez l'utiliser s'il y a une image supplémentaire pour mettre en avant comme son travail.

Remarque:elle doit être au format 16:9. Si un badge est fourni, Prévoyez un espace de sécurité de 24 dps en haut et en bas de l'image.

Chaîne

Taille de texte recommandée: 20 caractères maximum pour le nombre et l'étiquette combiné

Popularité – Valeur du nombre Facultatif

Nombre d'abonnés ou valeur de popularité.

Remarque:Spécifiez une valeur numérique si votre application ne souhaite pas pour gérer la logique sur la façon dont un grand nombre doit être optimisé pour différentes tailles d'affichage. Si "Nombre" et "Valeur du nombre" sont fournis, Le décompte sera utilisé.

Longue
Popularité – Libellé Facultatif Indiquez le libellé de popularité. Par exemple : "J'aime".

Chaîne

Taille de texte recommandée: 20 caractères maximum pour le nombre et l'étiquette combiné

Popularité (visuelle) Facultatif

Indiquez à quoi sert l'interaction. Exemple : Image montrant Icône J'aime, emoji.

Peut fournir plusieurs images, mais il est possible qu'elles ne s'affichent pas toutes sur tous facteurs de forme.

Remarque:Il doit s'agir d'une image carrée au format 1:1.

Consultez la section Caractéristiques des images pour en savoir plus.
Note (valeur maximale) Obligatoire

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) Obligatoire

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

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

Nombre >= 0.0
Note – Nombre Facultatif

Nombre de notes pour l'entité.

Remarque:Renseignez ce champ si votre application contrôle la façon dont le décompte s'affiche pour les utilisateurs. Utilisez une chaîne concise. Par exemple, si le nombre est égal à 1 000 000, envisagez d'utiliser une abréviation comme 1 million, afin que le nombre ne soit pas tronqué sur les petits écrans.

Chaîne
Note : valeur du nombre Facultatif

Nombre de notes pour l'entité.

Remarque:Renseignez ce champ si vous ne gérez pas la logique d'abréviation d'affichage. Si les valeurs "Nombre" et "Nombre" sont présentes, le nombre s'affiche pour les utilisateurs.

Longue
Zone géographique – Pays Facultatif Pays dans lequel la personne se trouve ou sert.

Texte libre

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

Lieu : ville Facultatif Ville où la personne se trouve ou sert.

Texte libre

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

Lieu – Adresse à afficher Facultatif L'adresse où se trouve la personne ou servira sera affichée à l'utilisateur.

Texte libre

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

Emplacement : adresse postale Facultatif L'adresse postale (le cas échéant) où se trouve la personne ou de l'inférence.

Texte libre

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

Emplacement – État Facultatif État (le cas échéant) où la personne se trouve ou sert.

Texte libre

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

Emplacement : code postal Facultatif Le code postal (le cas échéant) du lieu où la personne se trouve ou qui dessert.

Texte libre

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

Emplacement : Quartier Facultatif Le quartier (le cas échéant) où la personne se trouve ou opère.

Texte libre

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

Badges Facultatif

Chaque badge est composé de texte libre (15 caractères maximum) ou d'une petite image.

Badge – Texte Facultatif

Titre du badge

Remarque:Vous devez ajouter du 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'expérience utilisateur, par exemple en superposition de badge sur l'image/la vidéo miniature.

Remarque:Vous devez ajouter du 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:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

Taille de texte recommandée: 180 caractères

Liste de sous-titres Facultatif

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

Remarque:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

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

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

Liste des énumérations éligibles

  • TYPE_HEALTH_AND_FITENESS (exemple : Coach de yoga/fitness)
  • TYPE_HOME_AND_AUTO (Exemple : plombier)
  • TYPE_SPORTS (exemple : lecteur)
  • TYPE_DAT

Reportez-vous à la section Catégorie de contenu. pour obtenir des conseils.

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 Obligatoire

Code temporel de l'epoch où l'événement est censé commencer.

Remarque:Ce nombre est représenté en millisecondes.

Code temporel de l'epoch (en millisecondes)
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'affichons qu'une seule image lorsque plusieurs images sont fournies. Proportions recommandées : 16:9

Remarque:Nous vous recommandons vivement de créer des images. Si un badge est assurez-vous d'avoir un espace de sécurité de 24 dps en haut et en bas l'image

Consultez la section Caractéristiques des images pour en savoir plus.
Zone géographique – Pays Obligatoire sous certaines conditions

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

Remarque:Cette valeur est obligatoire pour les événements indiquant IN_PERSON ou HYBRIDE

Texte libre

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

Lieu : ville Obligatoire sous certaines conditions

Ville dans laquelle l'événement a lieu.

Remarque:Cette valeur est obligatoire pour les événements indiquant IN_PERSON ou HYBRIDE

Texte libre

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

Lieu – Adresse à afficher Obligatoire sous certaines conditions

Adresse ou nom du lieu où l'événement aura lieu et qui doit à présenter à l'utilisateur.

Remarque:Cette valeur est obligatoire pour les événements indiquant IN_PERSON ou HYBRIDE

Texte libre

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

Emplacement : adresse postale Facultatif Adresse postale (le cas échéant) du lieu où a lieu l'événement en cours d'hébergement.

Texte libre

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

Emplacement – État Facultatif L'État ou la province (le cas échéant) où l'événement a lieu hébergés.

Texte libre

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

Emplacement : code postal Facultatif Code postal (le cas échéant) du lieu où se déroule l'événement hébergés.

Texte libre

Taille de texte recommandée: environ 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: environ 20 caractères maximum

Heure de fin Facultatif

Code temporel de l'epoch correspondant à la fin attendue de l'événement.

Remarque:Ce nombre est représenté en millisecondes.

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

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

Remarque:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

Taille de texte recommandée: 180 caractères

Liste de sous-titres Facultatif

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

Remarque:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

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

Badges Facultatif

Chaque badge est composé de texte libre (15 caractères maximum) ou d'une petite image.

Badge – Texte Facultatif

Titre du badge

Remarque:Vous devez ajouter du 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'expérience utilisateur, par exemple en superposition de badge sur l'image/la vidéo miniature.

Remarque:Vous devez ajouter du 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 ou de la carte pour l'événement.

Doit être fourni si un prix barré est indiqué.

Texte libre
Prix – BarthroughPrice Facultatif Prix d'origine du billet ou de la carte pour l'événement. Texte libre
Accroche de prix Facultatif Accroche sur le prix pour mettre 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 (texte trop long) peut afficher des points de suspension)

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 : cours)
  • TYPE_SPORTS (exemple : match de football)
  • TYPE_DATING (exemple : rencontre)

Reportez-vous à la section Catégorie de contenu. pour obtenir des conseils.

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 Obligatoire

Code temporel de l'epoch où l'événement est censé commencer.

Remarque:Ce nombre est représenté en millisecondes.

Code temporel de l'epoch (en millisecondes)
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
Zone géographique – Pays Obligatoire sous certaines conditions

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

Remarque:Cette valeur est obligatoire pour les événements indiquant IN_PERSON ou HYBRIDE

Texte libre

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

Lieu : ville Obligatoire sous certaines conditions

Ville dans laquelle l'événement a lieu.

Remarque:Cette valeur est obligatoire pour les événements indiquant IN_PERSON ou HYBRIDE

Texte libre

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

Lieu – Adresse à afficher Obligatoire sous certaines conditions

Adresse ou nom du lieu où l'événement aura lieu et qui doit à présenter à l'utilisateur.

Remarque:Cette valeur est obligatoire pour les événements indiquant IN_PERSON ou HYBRIDE

Texte libre

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

Emplacement : adresse postale Facultatif Adresse postale (le cas échéant) du lieu où a lieu l'événement en cours d'hébergement.

Texte libre

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

Emplacement – État Facultatif L'État ou la province (le cas échéant) où l'événement a lieu hébergés.

Texte libre

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

Emplacement : code postal Facultatif Code postal (le cas échéant) du lieu où se déroule l'événement hébergés.

Texte libre

Taille de texte recommandée: environ 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: environ 20 caractères maximum

Images poster Facultatif

Nous n'affichons qu'une seule image lorsque plusieurs images sont fournies. Proportions recommandées : 16:9

Remarque:Nous vous recommandons vivement de créer des images. Si un badge est assurez-vous d'avoir un espace de sécurité de 24 dps en haut et en bas l'image

Consultez la section Caractéristiques des images pour en savoir plus.
Heure de fin Facultatif

Code temporel de l'epoch correspondant à la fin attendue de l'événement.

Remarque:Ce nombre est représenté en millisecondes.

Code temporel de l'epoch (en millisecondes)
Nom du fournisseur de services Facultatif

Nom du fournisseur de services.

Remarque:Vous devez fournir une image ou du texte pour pouvoir utiliser le service. un fournisseur de services agréé.

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 une image ou du texte pour pouvoir utiliser le service. un fournisseur de services agréé.

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

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

Remarque:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

Taille de texte recommandée: 180 caractères

Liste de sous-titres Facultatif

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

Remarque:La valeur de la colonne "Description" ou "Liste de sous-titres" visibles par l'utilisateur, pas les deux.

Texte libre

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

Badges Facultatif

Chaque badge est composé de texte libre (15 caractères maximum) ou d'une petite image.

Badge – Texte Facultatif

Titre du badge

Remarque:Vous devez ajouter du 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'expérience utilisateur, par exemple en superposition de badge sur l'image/la vidéo miniature.

Remarque:Vous devez ajouter du 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 de l'événement. Texte libre
Prix – CurrentPrice Obligatoire sous certaines conditions

Prix actuel du billet ou de la carte pour l'événement.

Doit être fourni si un prix barré est indiqué.

Texte libre
Prix – BarthroughPrice Facultatif Prix d'origine du billet ou de la carte pour l'événement. Texte libre
Accroche de prix Facultatif Accroche sur le prix pour mettre 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 (texte trop long) peut afficher des points de suspension)

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
Note – Nombre Facultatif

Nombre de notes pour l'événement.

Remarque:Renseignez ce champ si votre application souhaite pour contrôler la façon dont elles s'affichent pour les utilisateurs. Veuillez fournir la réponse concise pouvant être présentée à l'utilisateur. Par exemple, si le nombre est 1 000 000, pensez à utiliser des abréviations telles que 1M, afin qu’il ne soit pas est tronquée sur les tailles d'affichage plus petites.

Chaîne
Note : valeur du nombre Facultatif

Nombre de notes pour l'événement.

Remarque:Renseignez ce champ si vous ne souhaitez pas la logique d'abréviation d'affichage. Si les valeurs "Nombre" et "Nombre" sont présentes, nous utiliserons la valeur "Count" pour la présenter 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 : cours)
  • TYPE_SPORTS (exemple : match de football)
  • TYPE_DATING (exemple : rencontre)

Reportez-vous à la section Catégorie de contenu. pour obtenir des conseils.

Caractéristiques des images

Le tableau suivant indique 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.

Catégorie de contenu

La catégorie de contenu permet aux applications de publier du contenu appartenant à plusieurs catégories. Le contenu est ainsi mis en correspondance avec certaines des 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 d'utilisation des catégories de contenu

  1. Certaines entités telles que ArticleEntity et GenericFeaturedEntity sont pouvant utiliser n'importe quelle catégorie de contenu. Pour les autres entités telles que EventEntity, EventRéservationEntity, PersonEntity : un sous-ensemble uniquement de ces catégories sont éligibles. Consultez la liste des catégories éligibles pour un type d'entité avant de remplir la liste.
  2. Utiliser le type d'entité spécifique pour certaines catégories de contenu plutôt qu'une combinaison des entités Generic et de ContentCategory:

    • TYPE_movieS_AND_TV_SHOWS – Consultez les entités de Consultez le guide d'intégration avant d'utiliser la des entités génériques.
    • TYPE_BOOKS - Consultez les EbookEntity avant d'utiliser la des entités génériques.
    • TYPE_AUDIOBOOKS - Règlement AudiobookEntity avant à l'aide des entités génériques.
    • TYPE_SHOPPING - Règlement ShoppingEntity avant à l'aide des entités génériques.
    • TYPE_FOOD_AND_DRINK – Extraire les entités de Guide d'intégration de l'alimentation avant d'utiliser le des entités génériques.
  3. Le champ "ContentCategory" est facultatif et ne doit pas être renseigné si le paramètre le contenu n'appartient à aucune des catégories mentionnées précédemment.

  4. Si plusieurs catégories de contenu sont fournies, indiquez-les dans l'ordre par rapport au contenu classé dans la catégorie 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).

AppEngagePublishClient permet la publication des clusters.

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

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishContinuationCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteContinuationCluster
  • 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.

publishContinuationCluster

Cette API permet de publier un objet ContinuationCluster.

Kotlin

client.publishContinuationCluster(
    PublishContinuationClusterRequest.Builder()
      .setContinuationCluster(
        ContinuationCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java

client.publishContinuationCluster(
            new PublishContinuationClusterRequest.Builder()
                .setContinuationCluster(
                    new ContinuationCluster.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 ContinuationCluster existantes du développeur partenaire sont supprimées.
  • Les données de la requête sont analysées et stockées dans le cluster "Continuation" 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 commerciale interne, aucun des clusters n'est publié, nous recommandons vivement de mettre à jour l'état de publication à l'aide de la 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.
  • Il aide les développeurs à fournir des informations sur la date de publication des données et sur non.
  • Google peut utiliser les codes d'état pour encourager l'utilisateur à effectuer certaines actions l'application afin qu'ils puissent voir le contenu de l'application ou le passer.

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 nous vous recommandons de publier la fiche de connexion. Si, pour une raison quelconque, les fournisseurs pour 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. 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.

deleteContinuationCluster

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

Kotlin

client.deleteContinuationCluster()

Java

client.deleteContinuationCluster();

Lorsque le service reçoit la requête, il supprime les données existantes du cluster "Continuation". En cas d'erreur, la requête entière est rejetée. 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.

deleteClusters

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

Kotlin

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

Java

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_CONTINUATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .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 Note
SERVICE_NOT_FOUND Le service n'est pas disponible sur l'appareil donné.
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é).
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.
SERVICE_CALL_PERMISSION_DENIED L'appelant n'est pas autorisé à effectuer l'appel du service.
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é).
SERVICE_CALL_INTERNAL Une erreur s'est produite au niveau du service.
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 continuation cluster publish when PUBLISH_CONTINUATION broadcast is
  // received
}

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

// Register Recommendation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION))

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_FEATURED))

// Register Continuation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION))
}

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 continuation cluster publish when PUBLISH_CONTINUATION 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));

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED));

// Register Continuation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION));

}
  • 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: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.PUBLISH_CONTINUATION" />
      </intent-filter>
   </receiver>
</application>

Les intents suivants sont envoyés par le service :

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION Il est recommandé pour 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.PUBLISH_CONTINUATION Nous vous recommandons de démarrer un appel publishContinuationCluster 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

Contact engage-developers@google.com s'il y a toute question pendant le processus d'intégration.

Étapes suivantes

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

  • Envoyer un e-mail à engage-developers@google.com et et joignez 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 et qu'aucune modification n'est nécessaire, Google vous contacte au vous informer que vous pouvez commencer à publier le fichier APK mis à jour et intégré dans 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) et Continuation (Suite) pourront être publiés et visibles par les utilisateurs.