Registrare eventi utente in tempo reale

In questa pagina viene descritto come registrare gli eventi utente in tempo reale. Gli eventi utente sono obbligatori per i suggerimenti sui contenuti multimediali. Se non usi i consigli sui contenuti multimediali, l'importazione degli eventi utente non è obbligatoria. Tuttavia, la registrazione degli eventi utente è consigliata per le app di ricerca di contenuti multimediali.

Per i tipi di eventi utente che puoi registrare, consulta il campo eventType della userEvents. Importando gli eventi utente, puoi migliorare la qualità dei consigli e il ranking dei risultati di ricerca. I risultati con percentuali di clic più elevate vengono messi in evidenza, mentre quelli con percentuali di clic più basse vengono nascosti. Non registrare eventi utente per i documenti che non hai ancora importato.

Se utilizzi un'app di ricerca con più datastore collegati, Google consiglia di importare gli eventi utente a livello di località anziché a livello di datastore. Ciò consente di inviare un determinato evento utente datastore al quale è associato. Per importare eventi utente con documenti di diversi dataStores a livello di località anziché di datastore, consulta userEvents.write.

Per importare collettivamente gli eventi utente storici, consulta Importare gli eventi utente storici.

Puoi registrare gli eventi utente nei seguenti modi:

Per la rappresentazione JSON per gli eventi utente, consulta userEvents nel riferimento API.

Prima di iniziare

Prima di importare gli eventi utente:

Registra eventi utente in tempo reale con un pixel JavaScript

Per registrare gli eventi utente con un pixel JavaScript:

  1. Crea una chiave API per le chiamate al canale userEvents.Collect metodo
  2. Consulta l'esempio di pixel JavaScript per un esempio di tag JavaScript che raccoglie gli eventi utente

crea una chiave API

Una chiave API è obbligatoria se utilizzi un pixel JavaScript per raccogliere gli eventi utente dai browser degli utenti.

Per creare una chiave API per le chiamate a userEvents.Collect, procedi nel seguente modo: procedi nel seguente modo:

  1. Nella console Google Cloud, vai alla pagina Credenziali.

    Vai alla pagina Credenziali

  2. Nel menu a discesa del progetto nella parte superiore della pagina della console Google Cloud, seleziona il progetto (potrebbe essere già selezionato).

  3. Fai clic su Crea credenziali e poi seleziona Chiave API. Non aggiungere limitazioni per i referrer. Alcune impostazioni della privacy dell'utente sono che non trasmette l'URL del referrer.

    • Prendi nota della chiave API generata, che utilizzerai durante la chiamata e il logging degli eventi utente.
  4. Per una maggiore sicurezza, aggiungi una limitazione HTTP alla tua chiave API per limitare l'accesso al servizio Vertex AI Agent Builder all'indirizzo https://discoveryengine.googleapis.com/*.

Esempio di pixel JavaScript

Il seguente esempio registra un evento utente view-item utilizzando un pixel JavaScript.

Per la rappresentazione JSON degli eventi utente, consulta userEvents nel riferimento all'API.

<script type="text/javascript">
var user_event = {
  "eventType" : "view-item",
  "userPseudoId": "USER_PSEUDO_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>

Registra gli eventi utente in tempo reale con il metodo userEvents.write

REST

Puoi utilizzare la userEvents.write per inviare gli eventi utente direttamente all'API dal server di backend.

Per registrare gli eventi utente, invia una richiesta POST al metodo userEvents.write e fornisci il corpo della richiesta appropriato. Per la rappresentazione JSON degli eventi dell'utente, consulta userEvents nel riferimento all'API.

Se hai un'app con più datastore, Google ti consiglia di: importare eventi a livello di località. In questo caso, utilizza l'endpointhttps://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/LOCATION/userEvents:write.

export GOOGLE_APPLICATION_CREDENTIALS=/tmp/my-key.json
curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data "{
         'eventType': 'view-item',
         'userPseudoId': 'visitor0',
         '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'
        }
}" \\
"https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_NUMBER/locations/global/dataStores/DATA_STORE_ID/userEvents:write"

C#

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.


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

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

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

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python Vertex AI Agent Builder.

Per autenticarti in Vertex AI Agent Builder, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.

# 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

Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby Vertex AI Agent Builder.

Per eseguire l'autenticazione su Vertex AI Agent Builder, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.

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