ユーザー アクションを記録する

Google 検索では、検索結果やおすすめのランキングを向上させるため、ユーザーがアプリの公開コンテンツやプライベート コンテンツ上で行ったアクションに関する情報が使用されます。アプリでユーザーがコンテンツを検索する際のエクスペリエンスを向上させるには、App Indexing API を使用してユーザーのアクションを記録します。

ログに記録するアクション

次にガイドラインに沿って、ユーザー アクションをログに記録してください。

  • コンテンツの表示、新しいコンテンツの作成、コンテンツの共有など、アプリに対するユーザー操作をログに記録する。
  • ユーザーがコンテンツに対して直接行ったアクションのみをログに記録する - メッセージの受信、プレイリストの同期など、アプリ内のバックグラウンド アクションは対象外。
  • ユーザーがリスト全体を操作した場合、リスト内の各アイテムに対するアクションはログに記録しない。たとえば、ユーザーが受信トレイを開くことで引き起こされる、各メッセージ アイテムの表示アクションは記録しません。

アクションのビルドとログ記録

Action オブジェクトをビルドするには、次のパラメータを定義します。

  • コンテンツのタイトルと URL
  • アクション タイプに適切な Action.Builder

次に、アクションをログに記録します。

  • 長い時間にわたって発生するアクション(レシピの表示など)については、start() メソッドと end() メソッドの両方を適宜呼び出します。たとえば、レシピを表示するアクション(start)とレシピを閉じるアクション(end)に対する呼び出しを個別に記録します。
  • 瞬間的なアクションの場合は、ユーザーがアクションを行ったらすぐに end() メソッドを呼び出します。たとえば、ユーザーがメモにコメントした場合などは、end() メソッドを 1 回だけ呼び出して瞬間的なアクションを記録します。

アクション タイプについて: 正しい Action.Builder 定数を使用してください。たとえば、静的コンテンツを開くには VIEW_ACTION 定数を使用し、動画コンテンツを再生するには WATCH_ACTION 定数を使用します。定数のリストAction.Builder クラスを確認してください。

フラグメントについて: フラグメントは下記の例のアクティビティと同じ構造にします。ただし、フラグメントが 1 つのアクティビティで何度も実行されたり、フラグメントが複数あったりすることがあるため、API の呼び出しが一度しか行われないよう注意してください。ガイドラインをいくつか紹介します。

  • アクティビティで API 呼び出しを行う場合は、そのアクティビティ内のフラグメントからは一切呼び出しを行わない。
  • アクティビティで API 呼び出しを行わず、フラグメントから呼び出す場合は、必ず 1 つのフラグメントから一度だけ呼び出しを行うようにする。
開始と終了

以下の例は、一般公開コンテンツを使用しています。

    @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();
    }

        
瞬間的

以下の例は、プライベート コンテンツを使用しています。

    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();
    }
      

次のステップ: 実装をテストする

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。