web-dev-qa-db-ja.com

新しく生成されたコード「これはApp Indexing APIを実装するために自動生成されました」とは何ですか?

バックグラウンド

今日、新しいPOCを作成しました(アクティビティの遷移についてですが、これはトピックではありません)。メインのアクティビティの "onCreate"メソッドに新しい行が記述されていることに気付きました。

    // ATTENTION: This was auto-generated to implement the App Indexing API.
    // See https://g.co/AppIndexing/AndroidStudio for more information.
    mClient = 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.
        mClient.connect();
        Action viewAction = Action.newAction(
                Action.TYPE_VIEW, // TODO: choose an action type.
                "SinglePhotoViewer 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://Host/path"),
                // TODO: Make sure this auto-generated app deep link URI is correct.
                Uri.parse("Android-app://com.example.user.transitionstest/http/Host/path")
        );
        AppIndex.AppIndexApi.start(mClient, 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.
                "SinglePhotoViewer 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://Host/path"),
                // TODO: Make sure this auto-generated app deep link URI is correct.
                Uri.parse("Android-app://com.example.user.transitionstest/http/Host/path")
        );
        AppIndex.AppIndexApi.end(mClient, viewAction);
        mClient.disconnect();
    }

これはマニフェストに追加されました:

<!-- ATTENTION: This was auto-generated to add Google Play services to your project for
        App Indexing.  See https://g.co/AppIndexing/AndroidStudio for more information. -->
        <meta-data
            Android:name="com.google.Android.gms.version"
            Android:value="@integer/google_play_services_version"/>

問題

書かれたウェブサイトを見ると、それが何であるかまだわかりません。

this の使い方だと思いますが、すべてがどのように機能するかわかりません。

また、奇妙なことに、私が作成する他の新しいプロジェクトでは、この新しいコード行が表示されません。

質問

  1. これは何ですか?それは何をするためのものか?
  2. どうすればいいですか?
  3. カスタマイズはありますか?何かお勧めですか?
  4. このコード行はどの場合に生成されますか?いつ、どのように作成されるのかわかりませんでした...

私がウェブサイトで読んだり見たりしたところによると、これはある種の検索を実行できるアプリでのみ使用されるため、Googleがユーザーに以前のクエリとより高速な結果を表示できるようになると思います。

18

正解です。このコードはAndroid Studioによって自動的に作成され、App Indexing APIの実装に役立ちます。

ただし、アプリに新しいアクティビティを追加するだけでは作成されません。 Android Studioにこのコードを作成するように明示的に要求する必要があります。次に、アクティビティの詳細(アクションのタイプ、タイトル、ディープリンク、対応するWebページ(ある場合))で更新する必要があります存在します)。

このコードを生成するために、ポップアップ意図リストを使用できますbyAlt + Enter、「App Indexing APIコードを挿入」を選択:

enter image description here

または、ポップアップコード生成リストbyAlt + Insertを使用できます、「App Indexing API Code」を選択します:

enter image description here

関連するGoogle Developersのドキュメントは次のとおりです。

https://developers.google.com/app-indexing/Android/test#link-creation

これを調整する必要があるのは、実際には4つだけです。

// What type of action is this? (TYPE_VIEW, TYPE_LISTEN, TYPE_WATCH, etc...)    
Action.TYPE_VIEW

// Title of your page, just like the web
"SinglePhotoViewer Page"

// The web url of corresponding content, if exists, otherwise leave blank, ""
Uri.parse("http://Host/path") 

// Your deep link starting with "Android-app://"
Uri.parse("Android-app://com.example.user.transitionstest/http/Host/path")

ベストプラクティスとして、アプリのディープリンクの場所にあるコンテンツを最も正確に説明するタイトルを選択する必要があります。 HTML Webページヘッダーの<TITLE></TITLE>タグの場合と同じです。

実装されると、エンドユーザーが表示するアクティビティはすべて、このディープリンクをAndroid OSに報告します。その後、ユーザーがGoogleにクエリを入力すると、オートコンプリートの候補の結果で利用できます。クイック検索ボックス。ユーザーのクエリがキーワードでタイトルと一致した場合、アプリのアイコンと指定したタイトルが提案結果に表示されます。

エンドユーザーの観点から見たLive Nationアプリの左側の提案結果に表示されている2つのページに以前にアクセスしたことがある場合の例を次に示します。

enter image description here

さらに、App Indexing APIを実装することにより、元の質問で提供したリンクに記載されているように、検索結果のランキングが向上します。

これにより、アプリユーザーのクエリオートコンプリートが可能になるだけでなく、検索結果が充実し、検索品質が向上し、ランキングシグナルが強化されます。

最後に、追加のリソースとしてこのコードラボに興味がある可能性があります。

https://codelabs.developers.google.com/codelabs/app-indexing/#

16
pferg

これが役立つ場合は、次のようにしてそのオプションを無効にできます。

Settings > Intentions > Android > Insert App Indexing API code

チェックを外します。

3
elevenfive

次の場所でオプションのチェックを外すと、そのオプションを無効にできます。

Settings > Editor > Intentions > Android > Insert App Indexing API code

それを見つけるには、「ファイル」>「設定」ウィンドウの検索ボックスに「apiコード」と入力します。 Android Studio 2.2.3のインストールにあります

0
steveputz