Статьи

Оптимизируйте мобильное приложение для Google

Конечный продукт
Что вы будете создавать

Задумывались ли вы, как эти загадочные ссылки, указывающие на приложения, появляются в результатах поиска при поиске в Интернете с помощью Google? Как разработчики приложений могут убедиться, что их приложения отображаются здесь?

В этом уроке я покажу, как добиться этого эффекта для ваших приложений.

Индексирование приложений Google (теперь переименованное в Индексирование приложений Firebase) позволяет указывать родные приложения в результатах поиска Google, как если бы они были обычными веб-страницами. Записи приложения, которые отображаются вместе с обычными записями веб-страницы, отображаются, когда соответствующий поисковый запрос отправляется из браузера соответствующего устройства. В настоящее время эта функция поддерживается на платформах Android и iOS.

Индексация приложений максимизирует шансы разработчика на успех, поскольку одновременно выполняет две важные задачи.

Во-первых, это улучшает и расширяет возможности мобильных пользователей. Если приложение, относящееся к поисковому запросу, найдено, пользователю предоставляется возможность установить приложение или напрямую запустить приложение (если оно уже установлено на устройстве), даже не покидая браузер. Таким образом, у пользователей будет положительное первое впечатление о таком приложении, и они подсознательно оценят тот факт, что приложение удалось отобразить в правильном контексте, и что оно предоставило им несколько вариантов для рассмотрения.

Во-вторых, это помогает разработчикам продвигать свои приложения напрямую через поисковую систему Google. Разработчики могут использовать этот механизм для привлечения трафика непосредственно в свои приложения и резко увеличить количество скачиваний.

Индексирование приложений работает с помощью довольно простого, но умного способа установления отношений между приложением и его веб-сайтом, который называется «ассоциация сайта». Рабочий процесс состоит из нескольких этапов:

  1. Добавление фильтра намерений для поддержки URL-адресов и поиска Google
  2. Связывание сайта с приложением
  3. Добавление кода API индексации приложений

Теперь, когда у нас есть представление о рабочем процессе, мы перейдем к каждому шагу и, наконец, протестируем нашу реализацию на Android Studio. Итак, мы создадим новый Android-проект в Android Studio IDE. Вам нужно будет установить Android Studio 2.0 или более позднюю версию на вашем компьютере. Создайте новый проект Android с пустой деятельностью. Я использовал MyApp в качестве названия моего нового проекта Android.

Создать новый проект в Android Studio

Начнем с добавления фильтра намерений для поддержки URL-адресов и поиска Google. Intents — это агенты связи между компонентами приложения Android, а использование Intent Filters является стандартным способом введения неявного намерения в ваше приложение.

Неявное намерение в вашем приложении позволяет ему запрашивать у ОС оценку всех соответствующих зарегистрированных компонентов (возможно, в других установленных приложениях) и выбирать один из них, что позволяет выполнять определенную задачу с использованием другого приложения, установленного в системе. Напротив, явное намерение напрямую указывает целевой компонент приложения, так что для выполнения действия будет вызываться только указанный компонент. Вы можете прочитать больше о Intents и Intent Filters на сайте разработчиков Android .

Теперь мы начнем создавать Intent Filter.

  • Откройте файл AndroidManifest.xml .
  • Выберите элемент <activity> с помощью курсора.
  • Щелкните правой кнопкой мыши, когда выделение включено, и выберите « Создать» во всплывающем меню.
  • Далее выберите URL из всплывающего меню.
Выберите «Создать» во всплывающем меню.

Вы увидите, что Android Studio добавила дополнительный код в ваш файл AndroidManifest.xml . Вы можете изменить атрибуты элемента <data> сгенерированного кода в соответствии с вашими требованиями. В моем случае я предоставил значения, связанные с моим демонстрационным сайтом .

Обязательно укажите необходимые значения для схем http и https .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?xml version=»1.0″ encoding=»utf-8″?>
<manifest xmlns:android=»http://schemas.android.com/apk/res/android»
    package=»com.mycompany.myapp»>
 
    <application
        android:allowBackup=»true»
        android:icon=»@mipmap/ic_launcher»
        android:label=»@string/app_name»
        android:supportsRtl=»true»
        android:theme=»@style/AppTheme»>
        <activity android:name=».MainActivity»>
            <intent-filter>
                <action android:name=»android.intent.action.MAIN» />
 
                <category android:name=»android.intent.category.LAUNCHER» />
            </intent-filter><!— ATTENTION: This intent was auto-generated.
  https://g.co/AppIndexing/AndroidStudio to publish your URLs.
            <intent-filter>
                <action android:name=»android.intent.action.VIEW» />
 
                <category android:name=»android.intent.category.DEFAULT» />
                <category android:name=»android.intent.category.BROWSABLE» />
                <!— ATTENTION: This data URL was auto-generated.
                  TODO: Change the host or pathPrefix as necessary.
                 
                <data
                    android:host=»sites.google.com»
                    android:pathPrefix=»/site/appindexingex/home/main»
                    android:scheme=»http» />
                <data
                    android:host=»sites.google.com»
                    android:pathPrefix=»/site/appindexingex/home/main»
                    android:scheme=»https» />
            </intent-filter>
        </activity><!— ATTENTION: This was auto-generated to add Google Play services to your project for
     App Indexing.
        <meta-data
            android:name=»com.google.android.gms.version»
            android:value=»@integer/google_play_services_version» />
    </application>
 
</manifest>

Теперь нам нужно связать сайт с нашим приложением.

Вам необходимо подтвердить веб-URL, который вы хотите связать с вашим приложением, с помощью консоли поиска Google. Просто войдите в консоль поиска под своей учетной записью Google, и вы найдете простые инструкции по проверке URL-адреса.

Вы также можете найти подробные инструкции о том, как определить структуру связанного веб-сайта, которая соответствует структуре вашего приложения, в Руководстве по индексации приложений Firebase . Однако, поскольку мы тестируем приложение только с помощью Android Studio, нам не нужно изучать эти детали в этом руководстве.

Для тестирования нам нужен только действующий веб-URL, подтвержденный Google. Атрибуты, которые вы предоставляете для элемента <data> на шаге 1, должны соответствовать этому проверенному веб-URL, который должен быть полностью функциональным.

Наконец, мы добавим код API индексации приложений. Android Studio предоставляет автоматизированный способ сделать это:

  • Откройте файл MainActivity.java вашего проекта Android.
  • Выберите слово onCreate с помощью курсора.
  • Щелкните правой кнопкой мыши, когда выбор включен, и выберите « Создать» во всплывающем меню.
  • Далее выберите код API индексации приложения из всплывающего меню.
Выберите код API индексации приложения из всплывающего меню.

Вы увидите автоматически сгенерированный код, добавленный Android Studio в файл MainActivity.java . Обязательно отредактируйте ссылки функции Uri.parse() , чтобы они правильно указывали на URL-адреса, связанные с вашим приложением.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.mycompany.myapp;
 
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
 
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.common.api.GoogleApiClient;
 
public class MainActivity extends AppCompatActivity {
 
    /**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See https://g.co/AppIndexing/AndroidStudio for more information.
     */
    private GoogleApiClient client;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
    }
 
    @Override
    public void onStart() {
        super.onStart();
 
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        client.connect();
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                «Main Page», // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity’s content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
 
                 
 
                Uri.parse(«http://sites.google.com/site/appindexingex/home/main»),
                // TODO: Make sure this auto-generated app URL is correct.
                Uri.parse(«android-app://com.mycompany.myapp/http/sites.google.com/site/appindexingex/home/main»)
        );
        AppIndex.AppIndexApi.start(client, viewAction);
    }
 
    @Override
    public void onStop() {
        super.onStop();
 
        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                «Main Page», // TODO: Define a title for the content shown.
                // TODO: If you have web page content that matches this app activity’s content,
                // make sure this auto-generated web page URL is correct.
                // Otherwise, set the URL to null.
 
 
                Uri.parse(«http://sites.google.com/site/appindexingex/home/main»),
                // TODO: Make sure this auto-generated app URL is correct.
                Uri.parse(«android-app://com.mycompany.myapp/http/sites.google.com/site/appindexingex/home/main»)
        );
        AppIndex.AppIndexApi.end(client, viewAction);
        client.disconnect();
    }
}
<br>

Теперь мы протестируем нашу работу на Android Studio, чтобы убедиться, что наша реализация индексации приложений работает правильно. Сначала убедитесь, что вы подключены к Интернету. Затем в Android Studio выберите Инструменты> Android> Тест индексации приложений Google.

В Android Studio выберите Инструменты Android Google App Indexing Test

Через некоторое время появится экран, подобный показанному ниже. Результаты прохождения теста гарантируют, что индексирование приложений будет работать правильно в вашем приложении.

Экран с результатами теста показывает, что тест пройден

Индексирование приложений — это полезная функция для вашего приложения, позволяющая привлечь больше загрузок, и она определенно поможет вам ориентироваться на более широкую пользовательскую базу в качестве разработчика. В этом руководстве мы проверяли только, правильно ли работает наша реализация индексации приложений, но не то, как точно пользователь воспринимает функциональность, полученную в результате реализации. Вы можете перейти к следующему уровню, найдя дополнительную информацию на веб- сайтах справки по индексированию приложений Firebase , Google для веб-мастеров и Android Studio .