Registra acciones del usuario

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 del usuario cuando buscan contenido en tu app, registra las acciones de los usuarios con la API de indexación de aplicaciones.

¿Qué acciones deberías registrar?

Utiliza 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 con 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 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 ejecutan durante un período de tiempo más largo (p. ej., mirar una receta), llama a los métodos start() y end() cuando corresponda. Por ejemplo, deberías registrar llamadas independientes cuando se visualiza una receta (start) y después cuando se la cierra (end).
  • En el caso de las acciones instantáneas, haz una llamada al método end() en cuanto el usuario realice la acción. Por ejemplo, cuando un usuario comenta en una nota, registra una acción instantánea con una llamada única al método end().

Sobre los tipos de acción: Usa la constante Action.Builder correcta para tu contenido. Por ejemplo, usa la constante VIEW_ACTION para abrir contenido estático y la constante WATCH_ACTION para reproducir contenido de video. Consulta una lista de constantes para 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 llame a la API y de que lo haga solo una vez.
Start y end

El siguiente ejemplo usa contenido público.

    @Override
    public 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 https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index.

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

    }

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

        
Acciones instantáneas

En el siguiente ejemplo, se usa contenido personal.

    private 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 https://firebase.google.com/docs/app-indexing/android/personal-content#update-the-index.

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

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

Siguiente: Prueba tu implementación

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.