이 문서는 Recommendations AI 전용 문서입니다. 제한된 GA 단계에서 Retail Search 및 통합 Retail 콘솔을 사용해 보려면 Cloud 영업팀에 문의하세요. Retail Search를 사용할 계획이 없으면 추가 알림이 있을 때까지 권장사항 콘솔에 남아 있으세요.

Recommendations AI의 v1beta 버전을 사용하는 경우 Retail API 버전으로 마이그레이션합니다.

사용자 이벤트 관리

이 페이지에서는 사용자 이벤트를 보고 삭제하는 방법을 설명합니다. 사용자 이벤트가 발생할 때 기록하는 방법에 대한 상세 설명은 실시간 사용자 이벤트 기록을 참조하세요. 과거 이벤트에서 사용자 이벤트 데이터를 가져오려면 이전 사용자 이벤트 가져오기를 참조하세요.

집계된 사용자 이벤트 정보 보기

Recommendations AI 데이터 페이지의 이벤트 탭에서 프로젝트에 기록된 사용자 이벤트 수를 볼 수 있습니다. 측정항목은 Recommendations AI에 처음 이벤트를 업로드하고 약 24시간 후에 표시됩니다.

Recommendations AI 사용자 이벤트 통계

사용자 이벤트 다시 조인

userEvents:rejoin 엔드포인트에 POST 요청을 보내 카탈로그 이벤트를 다시 조인할 수 있습니다.

다시 조인 작업은 지정된 이벤트를 제품 카탈로그의 최신 버전과 조인합니다.

사용자 이벤트가 수집될 때 연결된 제품이 카탈로그에 없으면 사용자 이벤트가 조인되지 않은 것으로 간주됩니다. 조인되지 않은 이벤트는 자세한 제품 정보를 제공하지 않으며 모델 학습 및 결과 제공에 유용하지 않습니다.

다시 조인 작업은 조인되지 않은 이벤트를 처리하는 것 외에도 잘못된 제품 카탈로그와 조인된 이벤트를 수정하는 데 사용할 수 있습니다.

이 메서드를 호출하려면 Retail AI Admin IAM 역할이 있어야 합니다.

curl

다시 조인하려는 이벤트 유형에 따라 userEventRejoinScope를 설정합니다.

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED: 기본값입니다. 조인된 이벤트와 조인되지 않은 이벤트 모두에 대한 재조인을 트리거합니다.
  • JOINED_EVENTS: 조인된 이벤트에 대해서만 재조인을 트리거합니다.
  • UNJOINED_EVENTS: 조인되지 않은 이벤트에 대해서만 재조인을 트리거합니다.

다음 예시는 조인되지 않은 이벤트에 대해서만 재조인을 트리거합니다.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
     'userEventRejoinScope': 'UNJOINED_EVENTS'
     }" \
    "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:rejoin"

다음과 같은 응답 객체가 수신됩니다.

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"
}

재조인의 상태를 확인할 수 있습니다. OPERATION_ID를 재조인 메서드에서 반환한 작업 ID로 바꿉니다.

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"

작업이 완료되면 작업 상태가 done으로 반환됩니다.

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2.RejoinUserEventsResponse",
    "rejoinedUserEventsCount": "1"
  }
}

자바

public static String rejoinUserEvents(UserEventRejoinScope scope)
    throws IOException, InterruptedException, ExecutionException {
  UserEventServiceClient userEventsClient = getUserEventServiceClient();

  RejoinUserEventsRequest request = RejoinUserEventsRequest.newBuilder()
      .setParent(DEFAULT_CATALOG_NAME)
      .setUserEventRejoinScope(scope)
      .build();

  String operationName = userEventsClient
      .rejoinUserEventsAsync(request).getName();

  userEventsClient.shutdownNow();
  userEventsClient.awaitTermination(2, TimeUnit.SECONDS);

  return operationName;
}

사용자 이벤트 삭제

일반적으로 사용자 이벤트는 기록된 후에 그대로 유지해야 합니다. 이벤트를 삭제하지 않는 것이 좋습니다.

이벤트 삭제를 완료하는 데 며칠이 걸릴 수 있습니다. 사용자 이벤트를 완전히 재설정하려면 대신 새 프로젝트를 만드는 것이 좋습니다.

올바르게 기록되지 않은 사용자 이벤트를 삭제해야 하는 경우 userEvents.purge 메서드를 사용하여 삭제할 수 있습니다.

필터 문자열을 사용하여 삭제할 이벤트를 지정합니다. eventTime, eventType, visitorID, userID 필드를 필터링하여 사용자 이벤트를 선택적으로 삭제할 수 있습니다.

삭제는 실행취소할 수 없으므로 사용자 이벤트를 삭제하기 전에 테스트 실행을 수행하여 필터 문자열을 테스트합니다. force 필드는 기본적으로 false로 설정됩니다. 이 설정은 실제로 삭제하지 않고 삭제할 이벤트 수를 반환합니다. 사용자 이벤트를 실제로 삭제할 준비가 되면 force 필드를 true로 설정합니다.

curl

다음 예시에서는 Zulu 시간 날짜 형식을 사용해야 하는 시간 범위를 필터링합니다. force 필드는 false로 설정됩니다.

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)"" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{
    "filter":"eventTime > \"2019-12-23T18:25:43.511Z\" eventTime < \"2019-12-23T18:30:43.511Z\"",
    "force":"false"
  }' \
  "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:purge"

다음과 같은 응답 객체를 받아야 합니다. 여기서 purge-user-events-54321은 작업 ID입니다.

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/purge-user-events-54321"
}

이 예시에서는 작업 상태를 요청합니다.

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/[OPERATION_ID]"

작업 상태 예시:

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/[OPERATION_ID]",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2main.PurgeUserEventsResponse",
    "purgedEventsCount": "1"
  }
}

force 필드를 true로 설정하면 강제로 삭제됩니다.

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)"" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{
    "filter":"eventTime > \"2019-12-23T18:25:43.511Z\" eventTime < \"2019-12-23T18:30:43.511Z\"",
    "force":"true"
  }' \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:purge"

사용자 이벤트 필터 사용

삭제할 사용자 이벤트를 필터링할 수 있습니다.

필터는 다음 제한을 하나 이상 포함하는 문자열입니다.

  • eventTime

    삭제할 이벤트를 바인딩하는 타임스탬프를 제공합니다. 이 필터는 보다 큼(>) 또는 보다 작음(<) 기호를 사용하여 한 번 또는 두 번 지정할 수 있습니다. 제한된 시간은 하나의 인접한 블록이어야 합니다.

  • eventType

    삭제할 이벤트를 단일 이벤트 유형으로 제한합니다.

  • visitorID

    삭제할 이벤트를 단일 방문자 ID로 제한합니다.

  • userID

    삭제할 이벤트를 단일 사용자 ID로 제한합니다.

모든 제한을 충족하는 사용자 이벤트만 삭제됩니다.

2019년 2월 1일 또는 그 이후에 로깅된 add-to-cart 유형의 모든 사용자 이벤트를 삭제하려면 다음 필터 문자열을 제공합니다.

eventTime > "2019-02-01T00:00:00Z" eventType = add-to-cart