Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Journaliser les actions de l'utilisateur

La recherche Google utilise des informations sur les actions que les utilisateurs entreprennent sur le contenu public et personnel d'une application pour améliorer le classement des résultats de recherche et des suggestions. Pour améliorer l'expérience de vos utilisateurs lorsqu'ils recherchent du contenu dans votre application, enregistrez les actions des utilisateurs via l'API App Indexing.

Quelles actions devez-vous enregistrer?

Utilisez les instructions suivantes lorsque vous consignez les actions des utilisateurs:

  • Enregistrez les interactions de l'utilisateur avec l'application, y compris l'affichage du contenu, la création de nouveau contenu ou le partage de contenu.
  • Ne consignez que les actions que l'utilisateur effectue directement sur le contenu - pas les actions en arrière-plan dans l'application comme les messages entrants ou les synchronisations de listes de lecture.
  • Ne consignez pas les actions pour chaque élément d'une liste lorsqu'un utilisateur interagit avec la liste entière. Par exemple, ne consignez pas les actions d'affichage pour chaque message chaque fois qu'un utilisateur ouvre sa boîte de réception.

Construire et enregistrer les actions

Pour créer l'objet Action , définissez les paramètres suivants:

  • Titre et URL du contenu
  • Action.Builder appropriée pour le type d'action

Ensuite, enregistrez l'action:

  • Pour les actions qui se déroulent sur une durée plus longue (par exemple, afficher une recette), appelez les méthodes start() et end() , en conséquence. Par exemple, vous enregistrez des appels séparés pour afficher une recette (début) puis fermer la recette (fin).
  • Pour les actions instantanées, appelez la méthode end() dès que l'utilisateur effectue l'action. Par exemple, lorsqu'un utilisateur commente une note, enregistrez une action instantanée avec un seul appel de la méthode end() .

À propos des types d'action: utilisez la constante Action.Builder appropriée pour votre contenu. Par exemple, utilisez la constante VIEW_ACTION pour ouvrir le contenu statique et la constante WATCH_ACTION pour lire le contenu vidéo. Consultez la liste des constantes de la classe Action.Builder .

Concernant les fragments: Vous structurez les fragments de la même manière que l'activité de l'exemple ci-dessous est structurée. Mais, étant donné que les fragments peuvent s'exécuter plusieurs fois au sein d'une activité ou qu'il peut y avoir plusieurs fragments, veillez à effectuer l'appel d'API une seule fois. Voici quelques conseils à suivre:

  • Si l'activité appelle l'API, n'appelez plus l'API à partir d'un fragment de l'activité.
  • Si l'activité n'appelle pas l'API et que vous souhaitez qu'un fragment l'appelle à la place, assurez-vous qu'un seul fragment appelle l'API, une seule fois.
Début et fin

L'exemple ci-dessous utilise du contenu public.

Java

@Override
protected void onStart() {
    super.onStart();
    // If you’re logging an action on content that hasn’t been added to the index yet,
    // add it first.
    // See <a href="https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index">https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index</a>.

    FirebaseUserActions.getInstance().start(getRecipeViewAction());
}

@Override
protected void onStop() {
    FirebaseUserActions.getInstance().end(getRecipeViewAction());
    super.onStop();
}

Kotlin + KTX

override fun onStart() {
    super.onStart()
    // If you’re logging an action on content that hasn’t been added to the index yet,
    // add it first.
    // See <a href="https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index">https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index</a>.

    FirebaseUserActions.getInstance().start(getRecipeViewAction())
}

override fun onStop() {
    FirebaseUserActions.getInstance().end(getRecipeViewAction())
    super.onStop()
}
Instantané

L'exemple ci-dessous utilise un contenu personnel.

Java

public void displayNoteDialog(final String positiveText, final String negativeText) {
    // ...

    // If you’re logging an action on content that hasn’t been added to the index yet,
    // add it first.
    // See <a href="https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index">https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index</a>.

    FirebaseUserActions.getInstance().end(getNoteCommentAction());
    // ...
}

public Action getNoteCommentAction() {
    return new Action.Builder(Action.Builder.COMMENT_ACTION)
            .setObject(mNote.getTitle(), mNote.getNoteUrl())
            // Keep action data for personal connulltent on the device
            .setMetadata(new Action.Metadata.Builder().setUpload(false))
            .build();
}

Kotlin + KTX

fun displayNoteDialog(positiveText: String, negativeText: String) {
    // ...

    // If you’re logging an action on content that hasn’t been added to the index yet,
    // add it first.
    // See <a href="https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index">https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index</a>.

    FirebaseUserActions.getInstance().end(getNoteCommentAction())
    // ...
}

private fun getNoteCommentAction(): Action {
    return Action.Builder(Action.Builder.COMMENT_ACTION)
            .setObject(note.title, note.noteUrl)
            // Keep action data for personal connulltent on the device
            .setMetadata(Action.Metadata.Builder().setUpload(false))
            .build()
}

Suivant: Testez votre implémentation