Ir a la consola

Registra las acciones de los usuarios

La Búsqueda de Google usa información sobre las acciones que ejecutan los usuarios en el contenido público y personal en una app para mejorar la clasificación de los resultados de la Búsqueda y las sugerencias. Para mejorar la experiencia de los usuarios cuando buscan contenido en tu app, registra sus acciones con la API de App Indexing.

¿Qué acciones deberías registrar?

Usa los siguientes lineamientos para registrar acciones de usuario:

  • Registra las interacciones del usuario con la app, como cuando visualizan contenido, cuando crean contenido nuevo o cuando lo comparten.
  • Registra solo las acciones que el usuario realiza directamente en el contenido, sin tomar en cuenta las acciones en segundo plano de la app, como los mensajes entrantes o las sincronizaciones de listas de reproducción.
  • No registres una acción por cada elemento de una lista cuando el usuario interactúa con la lista completa. Por ejemplo, no registres una acción de visualización por cada mensaje cuando el usuario abre sus mensajes recibidos.

Compila y registra las acciones

Para compilar el objeto Action, define los siguientes parámetros:

  • Título y URL del contenido
  • Action.Builder apropiado para el tipo de acción

Después, registra la acción:

  • Para las acciones que se desarrollan durante un período más largo (p. ej., la visualización de una receta), haz una llamada a los métodos start() y end() cuando corresponda. Por ejemplo, deberías registrar llamadas independientes cuando se visualiza una receta (start) y cuando se cierra (end).
  • En el caso de las acciones instantáneas, llama al método end() en cuanto el usuario realice la acción. Por ejemplo, cuando un usuario comente en una nota, registra una acción instantánea con una sola llamada al método end().

Acerca de los tipos de acciones: Usa la constante Action.Builder correcta para tu contenido. Por ejemplo, usa VIEW_ACTION cuando se abra contenido estático y WATCH_ACTION cuando se reproduzca contenido de video. Consulta la lista de constantes de la clase Action.Builder.

Acerca de los fragmentos: Los fragmentos deben estructurarse de la misma manera que la actividad en el siguiente ejemplo. Sin embargo, dado que los fragmentos pueden ejecutarse muchas veces dentro de una actividad o que puede haber varios fragmentos, debes asegurarte de llamar a la API solo una vez. Recomendamos seguir estos lineamientos:

  • Si la actividad llama a la API, no vuelvas a llamar a la API desde ninguno de los fragmentos de la actividad.
  • Si la actividad no llama a la API y quieres que la llame un fragmento, asegúrate de que solo uno de los fragmentos la llame una vez.
Start y end

El siguiente ejemplo usa contenido público.

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

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()
}
Acciones instantáneas

En el siguiente ejemplo, se usa contenido personal.

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

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()
}

Siguiente: Prueba tu implementación