Aprimorar desempenho da pesquisa

Melhore a classificação do seu app na Pesquisa Google, da criação de conteúdo à análise de desempenho.

Análise com referências da Pesquisa

É possível usar a informação de referência dos links ao seu app proveniente da Pesquisa Google em outras ferramentas de análise. Por exemplo, nosso codelab nas indicações de rastreamento ao seu app mostra como é possível usar as referências da pesquisa em conjunto com o Google Analytics para análise geral de apps.

Se você quiser criar sua própria solução de rastreamento do tráfego de pesquisa para seu aplicativo, transmita um teste android.intent.extra.REFERRER_NAME ao app usando a Android Debug Bridge. O exemplo de comando a seguir demonstra como fazer isso, supondo que o nome do pacote do aplicativo seja package_name e que o URL seja www.examplepetstore.com:

adb shell am start
   -a android.intent.action.VIEW
   -c android.intent.category.BROWSABLE
   -e android.intent.extra.REFERRER_NAME android-app://com.google.android.googlequicksearchbox/https/www.examplepetstore.com
   -d http://examplepetstore.com/host_path com.examplepetstore.android

Esse teste simula a abertura de um URL HTTP em seu app e a transmissão da informação de referência especificando que o tráfego veio do Google app.

Extrair informação de referência

A classe com.google.firebase.appindexing.AndroidAppUri ajuda na extração de URIs do referenciador. Um intent adicional fornece as informações de referência para seu URL HTTP com a seguinte chave: android.intent.extra.REFERRER_NAME.

Os exemplos abaixo mostram valores de referenciador de várias fontes:

  • Chrome: https://www.google.com
  • Google app: android-app://com.google.android.googlequicksearchbox/https/www.google.com
  • Googlebot: android-app://com.google.appcrawler
  • Rastreador de aplicativos do Google AdsBot:android-app://com.google.adscrawler

O snippet de código a seguir mostra como extrair informação de referência da Pesquisa.

Java

public class MeasureActivity extends AppCompatActivity {

    @Override
    public Uri getReferrer() {

        // There is a built in function available from SDK>=22
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            return super.getReferrer();
        }

        Intent intent = getIntent();
        Uri referrer = (Uri) intent.getExtras().get("android.intent.extra.REFERRER");
        if (referrer != null) {
            return referrer;
        }

        String referrerName = intent.getStringExtra("android.intent.extra.REFERRER_NAME");

        if (referrerName != null) {
            try {
                return Uri.parse(referrerName);
            } catch (ParseException e) {
                // ...
            }
        }

        return null;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ...
        Uri referrer = getReferrer();

        if (referrer != null) {
            if (referrer.getScheme().equals("http") || referrer.getScheme().equals("https")) {
                // App was opened from a browser
                // host will contain the host path (e.g. www.google.com)
                String host = referrer.getHost();

                // Add analytics code below to track this click from web Search
                // ...

            } else if (referrer.getScheme().equals("android-app")) {
                // App was opened from another app
                AndroidAppUri appUri = AndroidAppUri.newAndroidAppUri(referrer);
                String referrerPackage = appUri.getPackageName();
                if ("com.google.android.googlequicksearchbox".equals(referrerPackage)) {
                    // App was opened from the Google app
                    // host will contain the host path (e.g. www.google.com)
                    String host = appUri.getDeepLinkUri().getHost();

                    // Add analytics code below to track this click from the Google app
                    // ...

                } else if ("com.google.appcrawler".equals(referrerPackage)) {
                    // Make sure this is not being counted as part of app usage
                    // ...
                }
            }
        }
        // ...
    }
}

Kotlin

class MeasureActivity : AppCompatActivity() {

    override fun getReferrer(): Uri? {

        // There is a built in function available from SDK>=22
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            return super.getReferrer()
        }

        val intent = intent
        val referrer = intent?.extras?.get("android.intent.extra.REFERRER") as Uri?
        if (referrer != null) {
            return referrer
        }

        val referrerName = intent.getStringExtra("android.intent.extra.REFERRER_NAME")

        if (referrerName != null) {
            try {
                return Uri.parse(referrerName)
            } catch (e: ParseException) {
                // ...
            }
        }

        return null
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
        val referrer = referrer

        if (referrer != null) {
            if (referrer.scheme == "http" || referrer.scheme == "https") {
                // App was opened from a browser
                // host will contain the host path (e.g. www.google.com)
                val host = referrer.host

                // Add analytics code below to track this click from web Search
                // ...
            } else if (referrer.scheme == "android-app") {
                // App was opened from another app
                val appUri = AndroidAppUri.newAndroidAppUri(referrer)
                val referrerPackage = appUri.packageName
                if ("com.google.android.googlequicksearchbox" == referrerPackage) {
                    // App was opened from the Google app
                    // host will contain the host path (e.g. www.google.com)
                    val host = appUri.deepLinkUri.host

                    // Add analytics code below to track this click from the Google app
                    // ...
                } else if ("com.google.appcrawler" == referrerPackage) {
                    // Make sure this is not being counted as part of app usage
                    // ...
                }
            }
        }
        // ...
    }
}

Criar conteúdo de qualidade na Web e em dispositivos móveis

É possível aprimorar a classificação do seu app oferecendo conteúdo de alta qualidade no app e no site associado. Isso é possível porque nossos sistemas analisam a associação entre as duas propriedades para determinar a classificação dos resultados da Pesquisa na Web e em dispositivos móveis. Em especial, lembre-se de:

  • garantir que o site associado cumpra nossas diretrizes de design e conteúdo;
  • seguir as mesmas práticas recomendadas em nosso guia SEO para dispositivos móveis.

Para garantir a melhor experiência de pesquisa para os usuários, o Google pode realizar ações corretivas em casos considerados como abuso, fraude ou outras ações prejudiciais a essa experiência. Entre as penalidades possíveis estão o rebaixamento ou a remoção dos seus URLs HTTP dos resultados da Pesquisa Google.