A Pesquisa Google usa informações sobre as ações que os usuários executam no conteúdo público e pessoal em um app para melhorar a classificação dos resultados e as sugestões da Pesquisa. Para melhorar a experiência dos seus usuários quando eles pesquisam conteúdo no seu aplicativo, registre as ações do usuário por meio da API App Indexing.
Quais ações você precisa registrar?
Use as diretrizes a seguir ao registrar ações do usuário:
- Registre as interações do usuário com o aplicativo, incluindo a exibição de conteúdo, a criação de conteúdo novo ou o compartilhamento de conteúdo.
- Registre somente ações em que o usuário recebe conteúdo diretamente, não ações em segundo plano no aplicativo, como mensagens recebidas ou sincronizações de playlist.
- Não registre ações para cada item em uma lista quando um usuário interage com a lista inteira. Por exemplo, não registre ações de exibição para cada mensagem sempre que um usuário abre a caixa de entrada dele.
Criar e registrar ações
Para criar o objeto Action
, defina os seguintes parâmetros:
- Título e URL do conteúdo
Action.Builder
apropriada para o tipo de ação
Em seguida, registre a ação:
- Para ações que ocorrem durante um período maior, como a visualização de um roteiro, chame os métodos
start()
eend()
. Nesses casos, é preciso registrar chamadas separadas para ver a receita ("start") e para fechá-la ("end"). - Para ações instantâneas, chame o método
end()
assim que o usuário as executar. Por exemplo, quando um usuário fizer comentários sobre uma observação, registre uma ação instantânea com uma única chamada do métodoend()
.
Sobre os tipos de ação: use a constante Action.Builder
correta para seu conteúdo. Por exemplo, use a constante VIEW_ACTION
para abrir conteúdo estático e WATCH_ACTION
para reproduzir conteúdo de vídeo.
Consulte a lista de constantes da classe Action.Builder
.
Com relação aos fragmentos: os fragmentos são estruturados da mesma maneira que a atividade no exemplo abaixo. Porém, como eles podem ser executados muitas vezes em uma atividade ou podem existir diversos fragmentos, chame a API somente uma vez. Estas são algumas diretrizes a serem seguidas:
- Se a atividade chamar a API, não a chame novamente de nenhum fragmento dentro da atividade.
- Se a atividade não chamar a API e, em vez disso, você quiser que ela seja chamada por um fragmento, certifique-se de que somente um fragmento chame a API apenas uma vez.
O exemplo abaixo usa conteúdo 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() }
O exemplo abaixo usa conteúdo pessoal.
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() }