Trang này được dịch bởi Cloud Translation API.
Switch to English

Ghi nhật ký hành động của người dùng

Google Tìm kiếm sử dụng thông tin về các hành động mà người dùng thực hiện đối với nội dung công khai và cá nhân trong một ứng dụng để cải thiện xếp hạng cho các đề xuất và kết quả Tìm kiếm. Để cải thiện trải nghiệm của người dùng khi họ tìm kiếm nội dung trong ứng dụng của bạn, hãy ghi lại các hành động của người dùng thông qua API lập chỉ mục ứng dụng.

Những hành động nào bạn nên ghi nhật ký?

Sử dụng các nguyên tắc sau khi bạn ghi nhật ký hành động của người dùng:

  • Ghi nhật ký các tương tác của người dùng với ứng dụng, bao gồm xem nội dung, tạo nội dung mới hoặc chia sẻ nội dung.
  • Chỉ ghi nhật ký các hành động mà người dùng thực hiện trực tiếp trên nội dung - không phải các hành động nền trong ứng dụng như tin nhắn đến hoặc đồng bộ hóa danh sách phát.
  • Không ghi hành động cho từng mục trong danh sách khi người dùng tương tác với toàn bộ danh sách. Ví dụ: không ghi nhật ký các hành động xem cho từng thư bất cứ khi nào người dùng mở hộp thư đến của họ.

Xây dựng và ghi nhật ký các hành động

Để xây dựng đối tượng Action , hãy xác định các tham số sau:

  • Tiêu đề và URL của nội dung
  • Hành động thích Action.Builder cho loại hành động

Sau đó, ghi lại hành động:

  • Đối với các hành động diễn ra trong thời gian dài hơn (ví dụ: xem công thức nấu ăn), hãy gọi cả hai phương thức start()end() , tương ứng. Ví dụ: bạn sẽ ghi nhật ký các cuộc gọi riêng biệt để xem một công thức (bắt đầu) và sau đó đóng công thức (kết thúc).
  • Đối với các hành động tức thời, hãy gọi phương thức end() ngay sau khi người dùng thực hiện hành động. Ví dụ: khi người dùng nhận xét về một ghi chú, hãy ghi lại một hành động tức thời bằng một lệnh gọi phương thức end() .

Giới thiệu về các loại hành động: Sử dụng hằng số Action.Builder chính xác cho nội dung của bạn. Ví dụ: sử dụng hằng số VIEW_ACTION để mở nội dung tĩnh và hằng số WATCH_ACTION để phát nội dung video. Xem danh sách các hằng cho lớp Action.Builder .

Về phân đoạn: Bạn cấu trúc các phân đoạn giống như cách cấu trúc hoạt động trong ví dụ bên dưới. Tuy nhiên, vì các phân đoạn có thể thực thi nhiều lần trong một hoạt động hoặc có thể có nhiều phân đoạn, hãy lưu ý chỉ thực hiện lệnh gọi API một lần. Dưới đây là một số nguyên tắc cần tuân theo:

  • Nếu hoạt động gọi API thì không gọi lại API từ bất kỳ phân đoạn nào trong hoạt động.
  • Nếu hoạt động không gọi API và bạn muốn một phân đoạn gọi nó thay thế, thì hãy đảm bảo chỉ một phân đoạn gọi API, chỉ một lần.
Bắt đầu và kết thúc

Ví dụ dưới đây sử dụng nội dung công khai.

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 + KTX

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()
}
Tức thì

Ví dụ dưới đây sử dụng nội dung cá nhân.

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 + KTX

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

Tiếp theo: Kiểm tra việc triển khai của bạn