Merekam peristiwa pengguna real-time

Halaman ini menjelaskan cara merekam peristiwa pengguna secara real time. Peristiwa pengguna diperlukan untuk aplikasi media. Jika Anda tidak menggunakan aplikasi media, mengimpor peristiwa pengguna tidak diperlukan. Namun, merekam peristiwa pengguna direkomendasikan untuk aplikasi penelusuran dan rekomendasi kustom.

Untuk jenis peristiwa pengguna yang dapat Anda rekam, lihat kolom eventType objek userEvents. Dengan menyerap peristiwa pengguna, Anda dapat meningkatkan kualitas hasil. Misalnya, peristiwa pengguna memengaruhi peringkat hasil penelusuran. Hasil dengan rasio klik-tayang yang lebih tinggi akan ditingkatkan, sedangkan hasil dengan rasio klik-tayang yang lebih rendah akan disembunyikan. Jangan rekam peristiwa pengguna untuk dokumen yang belum Anda impor.

Jika Anda menggunakan aplikasi dengan beberapa penyimpanan data terlampir, serap peristiwa pengguna di tingkat lokasi, bukan tingkat penyimpanan data. Hal ini memungkinkan peristiwa pengguna tertentu dikirim ke penyimpanan data yang terkait dengannya. Saat merekam peristiwa pengguna di tingkat lokasi, Anda harus menyertakan kolom engine dalam peristiwa pengguna untuk mengaitkan peristiwa dengan aplikasi yang benar. Untuk contoh peristiwa pengguna yang menyertakan kolom engine, lihat hal berikut:

Untuk mengimpor peristiwa pengguna historis secara massal, lihat Mengimpor peristiwa pengguna historis.

Anda dapat merekam peristiwa pengguna dengan cara berikut:

Untuk representasi JSON untuk peristiwa pengguna, lihat userEvents dalam referensi API.

Sebelum memulai

Sebelum Anda mengimpor peristiwa pengguna:

Merekam peristiwa pengguna real-time dengan piksel JavaScript

Untuk merekam peristiwa pengguna dengan piksel JavaScript:

  1. Buat kunci API untuk panggilan ke userEvents.collect metode.
  2. Lihat contoh piksel JavaScript untuk contoh tag JavaScript yang mengumpulkan peristiwa pengguna.

Membuat kunci API

Kunci API diperlukan jika Anda menggunakan piksel JavaScript untuk mengumpulkan peristiwa pengguna dari browser pengguna.

Untuk membuat kunci API untuk panggilan ke userEvents.collect metode, selesaikan langkah-langkah berikut:

  1. Di Google Cloud konsol, buka halaman Credentials.

    Credentials

  2. Di daftar project di bagian atas halaman konsol Google Cloud , pilih project Anda (project mungkin sudah dipilih).

  3. Klik Create credentials , lalu pilih API key. Jangan tambahkan batasan perujuk. Beberapa setelan privasi pengguna tidak meneruskan URL perujuk.

    • Catat kunci API yang dihasilkan, yang akan Anda gunakan saat memanggil logging peristiwa pengguna.
  4. Untuk meningkatkan keamanan, tambahkan batasan HTTP ke Kunci API Anda untuk membatasi akses ke layanan Agent Search di https://discoveryengine.googleapis.com/*.

Contoh piksel JavaScript

Contoh berikut merekam peristiwa pengguna view-item menggunakan piksel JavaScript.

Untuk representasi JSON untuk peristiwa pengguna, lihat userEvents dalam referensi API.

<script type="text/javascript">
var user_event = {
  "eventType" : "view-item",
  "userPseudoId": "USER_PSEUDO_ID",
  "engine": "projects/PROJECT_ID/locations/LOCATION_ID/collections/default_collection/engines/APP_ID",
  "userInfo": {
      "userId": "USER_ID"
  },
  "attributionToken": "ATTRIBUTION_TOKEN",
  "tagIds": "TAG_ID",
  "documents": [
      {
        "id": "DOCUMENT_ID"
      }
  ]
};

var _gre = _gre || {};
// Credentials for project.
_gre.apiKey = '[API_KEY]';
_gre.logEvent = user_event;
_gre.projectId = 'PROJECT_ID';
_gre.locationId = 'LOCATION_ID';
_gre.dataStoreId = 'DATA_STORE_ID';

(function() {
  var gre = document.createElement('script'); gre.type = 'text/javascript'; gre.async = true;
  gre.src = 'https://www.gstatic.com/discoveryengine/v1beta_event.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gre, s);
})();

</script>

Merekam peristiwa pengguna real-time dengan metode userEvents.write

REST

Anda dapat menggunakan metode userEvents.write untuk mengirim peristiwa pengguna langsung ke API dari server backend.

Untuk merekam peristiwa pengguna, kirim permintaan POST ke metode userEvents.write dan berikan isi permintaan yang sesuai. Untuk representasi JSON untuk peristiwa pengguna, lihat userEvents dalam referensi API.

Jika Anda merekam peristiwa pengguna di tingkat lokasi, gunakan endpoint https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/userEvents:write.

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     "https://discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/global/userEvents:write" \
     -d '{
         "eventType": "view-item",
         "userPseudoId": "visitor0",
         "engine": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID",
         "eventTime": "2020-01-01T03:33:33.000001Z",
         "tagIds": ["321"],
         "attributionToken": "ABC",
         "attributes": {
            "example_text_attribute": {
              "text": ["text_1", "text_2"]
            },
            "example_number_attribute": {
               "numbers": [3.14, 42, 1.2345]
            }
          },
         "documents": [{
            "id": "abc"
          }],
         "userInfo": {
           "userId": "abc",
           "userAgent": "Mozilla/5.0"
         },
         "pageInfo": {
          "uri": "http://example",
          "referrerUri": "http://example",
          "pageViewId": "currentPageUri"
         }
        }'

C#

Untuk mengetahui informasi selengkapnya, lihat Agent Search C# API dokumentasi referensi.

Untuk melakukan autentikasi ke Agent Search, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

using Google.Cloud.DiscoveryEngine.V1;

public sealed partial class GeneratedUserEventServiceClientSnippets
{
    /// <summary>Snippet for WriteUserEvent</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void WriteUserEventRequestObject()
    {
        // Create client
        UserEventServiceClient userEventServiceClient = UserEventServiceClient.Create();
        // Initialize request argument(s)
        WriteUserEventRequest request = new WriteUserEventRequest
        {
            ParentAsDataStoreName = DataStoreName.FromProjectLocationDataStore("[PROJECT]", "[LOCATION]", "[DATA_STORE]"),
            UserEvent = new UserEvent(),
            WriteAsync = false,
        };
        // Make the request
        UserEvent response = userEventServiceClient.WriteUserEvent(request);
    }
}

Go

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Agent Search Go API.

Untuk melakukan autentikasi ke Agent Search, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


package main

import (
	"context"

	discoveryengine "cloud.google.com/go/discoveryengine/apiv1"
	discoveryenginepb "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := discoveryengine.NewUserEventClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &discoveryenginepb.WriteUserEventRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb#WriteUserEventRequest.
	}
	resp, err := c.WriteUserEvent(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

Java

Untuk mengetahui informasi selengkapnya, lihat Agent Search Java API dokumentasi referensi.

Untuk melakukan autentikasi ke Agent Search, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import com.google.cloud.discoveryengine.v1.DataStoreName;
import com.google.cloud.discoveryengine.v1.UserEvent;
import com.google.cloud.discoveryengine.v1.UserEventServiceClient;
import com.google.cloud.discoveryengine.v1.WriteUserEventRequest;

public class SyncWriteUserEvent {

  public static void main(String[] args) throws Exception {
    syncWriteUserEvent();
  }

  public static void syncWriteUserEvent() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (UserEventServiceClient userEventServiceClient = UserEventServiceClient.create()) {
      WriteUserEventRequest request =
          WriteUserEventRequest.newBuilder()
              .setParent(
                  DataStoreName.ofProjectLocationDataStoreName(
                          "[PROJECT]", "[LOCATION]", "[DATA_STORE]")
                      .toString())
              .setUserEvent(UserEvent.newBuilder().build())
              .setWriteAsync(true)
              .build();
      UserEvent response = userEventServiceClient.writeUserEvent(request);
    }
  }
}

Python

Untuk mengetahui informasi selengkapnya, lihat Agent Search Python API dokumentasi referensi.

Untuk melakukan autentikasi ke Agent Search, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import discoveryengine_v1


def sample_write_user_event():
    # Create a client
    client = discoveryengine_v1.UserEventServiceClient()

    # Initialize request argument(s)
    request = discoveryengine_v1.WriteUserEventRequest(
        parent="parent_value",
    )

    # Make the request
    response = client.write_user_event(request=request)

    # Handle the response
    print(response)

Ruby

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Agent Search Ruby API .

Untuk melakukan autentikasi ke Agent Search, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

require "google/cloud/discovery_engine/v1"

##
# Snippet for the write_user_event call in the UserEventService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::DiscoveryEngine::V1::UserEventService::Client#write_user_event.
#
def write_user_event
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::DiscoveryEngine::V1::UserEventService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::DiscoveryEngine::V1::WriteUserEventRequest.new

  # Call the write_user_event method.
  result = client.write_user_event request

  # The returned object is of type Google::Cloud::DiscoveryEngine::V1::UserEvent.
  p result
end