미디어 사용자 이벤트 정보

이 페이지에서는 사용자 이벤트 유형, 요구사항, 사용자 이벤트 유형의 예시를 포함하여 미디어 검색 및 추천 앱의 사용자 이벤트를 설명합니다. 미디어 앱에는 사용자 이벤트가 필요합니다.

미디어 검색 및 추천에 관한 일반적인 정보는 미디어 검색 및 추천 소개를 참고하세요.

사용자 이벤트 기록과 관련된 도움말은 실시간 사용자 이벤트 기록을 참조하세요. 이전 사용자 이벤트를 일괄적으로 가져오려면 이전 사용자 이벤트 가져오기를 참고하세요.

사용자 이벤트 유형

최종 사용자가 사이트를 탐색하거나 검색할 때 다음 유형의 사용자 이벤트를 기록할 수 있습니다.

사용자 이벤트 이름 사용자 작업
view-item 문서의 세부정보를 봅니다.
view-home-page 홈페이지를 조회합니다.
search 데이터 스토어를 검색합니다.
media-play 미디어 항목에서 재생을 클릭합니다.
media-complete 미디어 항목의 재생을 중지하여 시청 종료를 나타냅니다.

사용자 이벤트 객체에 대한 자세한 내용은 UserEvent API 참고 문서를 확인하세요.

미디어 검색 및 추천의 이벤트 요구사항

필요한 사용자 이벤트 유형은 앱이 검색 앱인지 추천 앱인지, 목표 (클릭률, 전환율 또는 시청 시간)에 따라 결정되며, 추천 앱의 경우 선택한 모델 유형에 따라 결정됩니다. 추천 모델 유형 및 최적화 목표에 대한 자세한 내용은 미디어 앱 추천 유형 정보를 참고하세요.

수집해야 하는 사용자 이벤트를 확인하려면 다음 표를 참고하세요.

이벤트 search view-home-page view-item media-play media-complete
검색 사용 사례
필수 필수
아님
필수 필수 필수
목표별 맞춤 추천 모델 유형
CTR 필수
아님
홈페이지 컨텍스트에 필요

일반 컨텍스트에는 필요하지 않음
view-item 또는 media-play이 필요합니다. 적극
권장

기록 강등이 사용 설정된 경우 필수
CVR 필수
아님
홈페이지 컨텍스트에 필요

일반 컨텍스트에는 필요하지 않음
view-item 또는 media-play이 필요합니다. 필수
시청 시간 필수
아님
홈페이지 컨텍스트에 필요

일반 컨텍스트에는 필요하지 않음
view-item 또는 media-play이 필요합니다. 필수
목표별 내가 좋아할 만한 기타 항목 모델 유형
CTR 필수
아님
필수
아님
view-item 또는 media-play이 필요합니다. 적극
권장

기록 강등이 사용 설정된 경우 필수
CVR 필수
아님
필수
아님
view-item 또는 media-play이 필요합니다. 필수
시청 시간 필수
아님
필수
아님
view-item 또는 media-play이 필요합니다. 필수
목표별 '비슷한 항목 더보기' 모델 유형
CTR 필수
아님
필수
아님
view-item 또는 media-play이 필요합니다. 기록 강등이 사용 설정된 경우 필수
CVR 필수
아님
필수
아님
view-item 또는 media-play이 필요합니다. 필수
시청 시간 필수
아님
필수
아님
view-item 또는 media-play이 필요합니다. 필수
목표별 가장 인기 있는 모델 유형
CTR 필수
아님
필수
아님
view-item 또는 media-play 중 하나가 필요합니다. 필수
아님
CVR 필수
아님
필수
아님
필수
아님
필수
아님
필수

미디어 사용자 이벤트 요구사항

미디어 앱에서 품질 결과를 생성할 수 있도록 사용자 이벤트가 다음 요구사항을 충족하는지 확인합니다.

이벤트 유형 요구사항 영향
모든 이벤트

합성 데이터나 중복 이벤트를 포함하지 마세요.

합성 또는 중복 이벤트는 결과 품질에 부정적인 영향을 미치며 앱을 배포하지 못하게 될 수 있습니다. 중복 이벤트로 인해 측정항목 값이 잘못될 수 있습니다.

수집된 각 이벤트 유형에 순 사용자 가명 ID를 100개 이상 포함합니다.

미디어 추천 앱이 고품질 결과를 생성할 만큼 충분한 데이터를 갖도록 이러한 ID를 포함합니다.

사용자 가명 ID는 이벤트 가져오기 또는 이벤트 기록과 미디어 추천 요청에서 정확히 동일한 형식이어야 합니다.

사용자 가명 ID에 일관된 형식을 사용하면 미디어 추천 앱이 방문자 패턴을 올바르게 식별하고 사용자 행동을 기준으로 더 나은 품질의 결과를 제공할 수 있습니다.

모든 문서에는 DocumentInfo.name 필드 또는 DocumentInfo.id 필드가 필요합니다.

DocumentInfo.name 필드 또는 DocumentInfo.id 필드가 없는 문서가 포함된 이벤트는 미디어 추천 앱에서 사용할 수 없습니다.

이벤트에 포함된 문서는 데이터 스토어에 있어야 합니다.

조인되지 않은 이벤트 비율을 최대한 낮게 유지해야 합니다. 비율이 높으면 결과 품질에 부정적인 영향을 줄 수 있습니다.

일부 사용자 이벤트의 사용자 가명 ID는 동일해야 합니다.

유효한 동작 시퀀스 기록을 구성하려면 미디어 추천 앱은 동일한 사용자 가명 ID로 여러 이벤트를 볼 수 있어야 합니다.

예를 들어 visitor123은 5개의 항목을 조회하고 2개에서 재생을 클릭했습니다. 이러한 이벤트가 모두 동일한 형식의 사용자 가명 ID를 제공하는 경우 미디어 추천 앱은 결과에서 이 동작 시퀀스를 고려할 수 있습니다.

view-item

이벤트당 정확히 하나의 문서를 포함합니다.

문서가 없으면 이벤트를 사용할 수 없습니다. 문서가 여러 개 포함된 경우 이벤트 형식이 잘못되어 사용할 수 없습니다.

search

attributionToken을 포함합니다. attributionToken는 검색 또는 탐색 결과와 함께 search 메서드에 의해 반환됩니다.

attributionToken을 사용하면 Vertex AI Search가 검색 이벤트를 특정 검색 응답에 정확하게 기여 분석할 수 있습니다.

media-play

이벤트당 정확히 하나의 문서를 포함합니다.

여러 문서가 포함된 경우 이벤트 형식이 잘못되어 사용할 수 없습니다.

A/B 테스트용 사용자 이벤트 태그

A/B 테스트를 실행하는 경우 수집하는 모든 사용자 이벤트에 태그 ID를 추가하여 각 테스트 그룹에 하나의 태그를 추가해야 합니다.

예를 들어 현재 모델의 사용자 이벤트에 "tagIds": ["original"] 태그를 추가하고 Vertex AI Search for Media의 사용자 이벤트에 "tagIds": ["google"] 태그를 추가합니다.

사용자 이벤트 유형 예시 및 스키마

이 섹션에서는 미디어 추천에서 지원하는 각 이벤트 유형의 데이터 형식을 제공합니다. JavaScript Pixel의 예시가 제공됩니다. BigQuery에는 각 유형의 전체 테이블 스키마가 제공됩니다.

모든 사용자 이벤트 유형에서 userId는 선택사항입니다.

사용자 이벤트 객체에 대한 자세한 내용은 UserEvent API 참고 문서를 확인하세요.

view-item

다음은 view-item 사용자 이벤트 데이터 형식을 보여줍니다.

최소 필수 view-item 객체

다음 예시는 view-item 사용자 이벤트 형식의 필수 입력란만 보여줍니다.

대부분의 경우 documents에는 연결된 문서의 세부정보가 포함됩니다.

자바스크립트 Pixel

var user_event = {
  "eventType": "view-item",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "documents": [{
    "id": "document-id"
  }]
  "panels": [
     {
       "panelId": "HOME_RFY_1",
       "documents": [
         {
           "id": "123"
         },
         {
           "id": "456"
         }
       ],
       "panelPosition": 1,
       "totalPanels": 2
     }
  ]
};

BigQuery

이 사용자 이벤트 유형의 전체 JSON 스키마입니다. BigQuery에서 이 사용자 이벤트 유형의 테이블을 만들 때 이 스키마를 지정합니다.

필수 필드의 모드는 REQUIRED 또는 REPEATED로 설정됩니다. 선택 필드의 모드는 NULLABLE로 설정됩니다.

BigQuery로 이벤트를 가져오려면 eventTime이 필수입니다. eventTime은 타임스탬프 형식의 문자열입니다.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "eventTime",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "userId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "userAgent",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "pageInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "pageviewId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "referrerUri",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "attributionToken",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "documents",
    "type": "RECORD",
    "mode": "REPEATED",
    "fields": [
      {
        "name": "id",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "tagIds",
    "type": "STRING",
    "mode": "REPEATED"
  },
  {
    "name": "attributes",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "example_text_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "text",
            "type": "STRING",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "example_number_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "numbers",
            "type": "NUMERIC",
            "mode": "REPEATED"
          }
        ]
      }
    ]
  }
]

view-home-page

다음은 view-home-page 사용자 이벤트 형식을 보여줍니다.

최소 필수 view-home-page 객체

다음 예시는 view-home-page 사용자 이벤트 형식의 필수 입력란만 보여줍니다.

자바스크립트 Pixel

var user_event = {
  "eventType": "view-home-page",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "panels": [
     {
       "panelId": "HOME_RFY_1",
       "documents": [
         {
           "id": "123"
         },
         {
           "id": "456"
         }
       ],
       "panelPosition": 1,
       "totalPanels": 2
     }
  ]
};

BigQuery

이 사용자 이벤트 유형의 전체 JSON 스키마입니다. BigQuery에서 이 사용자 이벤트 유형의 테이블을 만들 때 이 스키마를 지정합니다.

필수 필드의 모드는 REQUIRED 또는 REPEATED로 설정됩니다. 선택 필드의 모드는 NULLABLE로 설정됩니다.

BigQuery로 이벤트를 가져오려면 eventTime이 필수입니다. eventTime은 타임스탬프 형식의 문자열입니다.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "eventTime",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "userId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "userAgent",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "pageInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "pageviewId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "referrerUri",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "attributionToken",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "documents",
    "type": "RECORD",
    "mode": "REPEATED",
    "fields": [
      {
        "name": "id",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "quantity",
        "type": "INT64",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "tagIds",
    "type": "STRING",
    "mode": "REPEATED"
  },
  {
    "name": "attributes",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "example_text_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "text",
            "type": "STRING",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "example_number_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "numbers",
            "type": "NUMERIC",
            "mode": "REPEATED"
          }
        ]
      }
    ]
  }
]

panels 객체에 관한 자세한 내용은 패널 정보를 참고하세요.

다음은 search 사용자 이벤트 형식을 보여줍니다.

최소 필수 search 객체

다음 예시는 search 사용자 이벤트 형식의 필수 입력란만 보여줍니다.

사용자가 텍스트 쿼리를 입력한 검색 이벤트에는 searchQuery를 제공합니다.

attributionToken이 검색 쿼리 결과와 함께 반환됩니다.

documents는 검색 결과 페이지에 최종 사용자에게 표시되는 문서 ID 목록을 포함해야 합니다.

자바스크립트 Pixel

var user_event = {
  eventType: "search",
  userPseudoId: "user-pseudo-id",
  eventTime: "2020-01-01T03:33:33.000001Z",
  searchInfo: {
    searchQuery: "search-query",
  }, 
  attributionToken: "attribution-token",
  documents: [
    {
      id: "document-id1",
    },
    {
      id: "document-id2",
    },
  ]
};

BigQuery

이 사용자 이벤트 유형의 전체 JSON 스키마입니다. BigQuery에서 이 사용자 이벤트 유형의 테이블을 만들 때 이 스키마를 지정합니다.

필수 필드의 모드는 REQUIRED 또는 REPEATED로 설정됩니다. 선택 필드의 모드는 NULLABLE로 설정됩니다.

BigQuery로 이벤트를 가져오려면 eventTime이 필수입니다. eventTime은 타임스탬프 형식의 문자열입니다.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "eventTime",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "searchInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "searchQuery",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "pageInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "pageCategory",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "attributionToken",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "documents",
    "type": "RECORD",
    "mode": "REPEATED",
    "fields": [
      {
        "name": "id",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  }
]

media-play

다음은 media-play 사용자 이벤트 형식을 보여줍니다.

최소 필수 media-play 객체

다음 예시는 media-play 사용자 이벤트 형식의 필수 입력란만 보여줍니다.

자바스크립트 Pixel

var user_event = {
  "eventType": "media-play",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "documents": [
    {
      "id": "document-id1"
    }
  ]
};

BigQuery

이 사용자 이벤트 유형의 전체 JSON 스키마입니다. BigQuery에서 이 사용자 이벤트 유형의 테이블을 만들 때 이 스키마를 지정합니다.

필수 필드의 모드는 REQUIRED 또는 REPEATED로 설정됩니다. 선택 필드의 모드는 NULLABLE로 설정됩니다.

BigQuery로 이벤트를 가져오려면 eventTime이 필수입니다. eventTime은 타임스탬프 형식의 문자열입니다.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "eventTime",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "userId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "userAgent",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "pageInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "pageviewId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "referrerUri",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "attributionToken",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "documents",
    "type": "RECORD",
    "mode": "REPEATED",
    "fields": [
      {
        "name": "id",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "tagIds",
    "type": "STRING",
    "mode": "REPEATED"
  },
  {
    "name": "attributes",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "example_text_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "text",
            "type": "STRING",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "example_number_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "numbers",
            "type": "NUMERIC",
            "mode": "REPEATED"
          }
        ]
      }
    ]
  }
]

media-complete

다음은 media-complete 사용자 이벤트 형식을 보여줍니다.

최소 필수 media-complete 객체

다음 예시는 media-complete 사용자 이벤트 형식의 필수 입력란만 보여줍니다.

자바스크립트 Pixel

var user_event = {
  "eventType": "media-complete",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "documents": [
    {
      "id": "document-id1"
    }
  ],
  "mediaInfo": {
    "mediaProgressDuration": "65s",
    "mediaProgressPercentage": 0.2
  }
};

BigQuery

이 사용자 이벤트 유형의 전체 JSON 스키마입니다. BigQuery에서 이 사용자 이벤트 유형의 테이블을 만들 때 이 스키마를 지정합니다.

필수 필드의 모드는 REQUIRED 또는 REPEATED로 설정됩니다. 선택 필드의 모드는 NULLABLE로 설정됩니다.

BigQuery로 이벤트를 가져오려면 eventTime이 필수입니다. eventTime은 타임스탬프 형식의 문자열입니다.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "eventTime",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "userId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "userAgent",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "pageInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "pageviewId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "referrerUri",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "attributionToken",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "documents",
    "type": "RECORD",
    "mode": "REPEATED",
    "fields": [
      {
        "name": "id",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "tagIds",
    "type": "STRING",
    "mode": "REPEATED"
  },
  {
    "name": "attributes",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "example_text_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "text",
            "type": "STRING",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "example_number_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "numbers",
            "type": "NUMERIC",
            "mode": "REPEATED"
          }
        ]
      }
    ]
  },
  {
    "name": "mediaInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "mediaProgressDuration",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "mediaProgressPercentage",
        "type": "NUMERIC",
        "mode": "NULLABLE"
      }
    ]
  }
]

맞춤 속성

사용자 이벤트에 대한 추가 맞춤 속성 및 기능을 포함할 수 있습니다. 이를 통해 사용자에게 더 구체적이고 더 나은 결과를 제공할 수 있습니다. 맞춤 속성을 추가하려면 사용자 이벤트를 기록할 때 attributes를 사용합니다.

수집된 사용자 이벤트에 대해 맞춤 속성을 제공할 경우 추천 및 검색 요청과 연결된 사용자 이벤트에도 해당 속성을 포함해야 합니다. 맞춤 속성의 형식은 가져온 이벤트와 요청으로 제공된 이벤트 간에 일관되어야 합니다. 이렇게 하면 미디어 앱에서 이러한 맞춤 속성을 사용하여 품질을 개선할 수 있습니다.

text 필드를 사용하여 커스텀 텍스트 값을 제공하거나 numbers 필드를 사용하여 커스텀 숫자 값을 제공할 수 있습니다.

예를 들어 다음은 사용자 이벤트 기록 요청의 attributes 섹션을 보여줍니다.

  attributes: {
    user_age: {text: ["teen", "young adult"]},
    user_location: {text: ["CA"]},
    user_zip: {numbers: [90210]}
  }

사용자 정보

userPseudoId는 순 사용자 식별자를 나타내며 사용자 이벤트를 기록할 때 필요합니다.

사용자 이벤트를 기록할 때 포함되는 사용자 정보(UserInfo)에는 userPseudoId 값과 userId 값(있는 경우)이 포함됩니다. userId는 선택사항이며 사용자가 사이트에 로그인할 때마다 여러 기기에서 사용자의 고유한 영구 식별자로 사용할 수 있습니다. 사용자의 userId를 기록할 때 미디어 검색 및 추천 앱은 휴대기기와 웹브라우저 등 여러 기기에서 사용자 한 명에 대해 더욱 맞춤설정된 결과를 생성할 수 있습니다.

타임스탬프 정보

사용자 이벤트를 기록할 때는 이벤트가 발생한 시점의 정확한 타임스탬프를 포함해야 합니다. 정확한 타임스탬프를 사용하면 이벤트가 올바른 순서로 저장될 수 있습니다. JavaScript Pixel을 사용하여 수집된 이벤트의 타임스탬프는 자동으로 기록됩니다. 이벤트를 가져올 때는 eventTime 필드에 RFC 3339로 지정된 형식으로 타임스탬프를 제공해야 합니다.

패널 정보

홈페이지에는 일반적으로 '인기 급상승' 패널, '추천' 패널과 같은 하나 이상의 패널이 있습니다. 세부정보 페이지에는 '다른 사용자가 좋아할 만한 항목'과 같은 패널이 표시될 수도 있습니다.

사용자 이벤트의 패널 정보

view-home-pageview-item 유형의 추천 사용자 이벤트에는 패널 정보가 필요합니다. Google에서 추천하는 콘텐츠를 표시하는 홈페이지와 세부정보 페이지에는 패널 정보가 필요합니다.

패널에 대해 A/B 테스트를 진행하는 경우 소스와 관계없이 테스트의 모든 콘텐츠에 대해 패널 정보와 함께 사용자 이벤트를 기록해야 합니다. Google에서 생성한 패널 콘텐츠가 없는 홈페이지 및 세부정보 페이지의 경우 view-home-pageview-item 이벤트에서 패널 정보를 제공하는 것이 권장되지만 필수는 아닙니다. 이러한 요구사항은 다음 표에 요약되어 있습니다.

사용자 이벤트의 소스 (view-home-pageview-item) PanelInfo 필요
Google에서 추천하는 콘텐츠가 포함됩니다.
Google에서 추천하지 않으며 A/B 테스트에 사용된 콘텐츠가 포함됩니다.
Google에서 추천하지 않고 A/B 테스트에 사용되지 않는 콘텐츠가 포함됩니다. 아니요

패널 정보 (PanelInfo)는 패널의 다양한 요소를 설명하는 필드 집합입니다.

  • 패널의 ID 번호

  • 표시 이름

  • 페이지의 패널 위치 (예: 페이지의 첫 번째 패널 (1) 또는 페이지의 세 번째 패널 (3))

  • 페이지의 총 패널 수

  • 각 패널에 표시되는 문서 목록 (DocumentInfo)

PanelInfo 객체에 관한 자세한 내용은 PanelInfo를 참고하세요.

패널 미리 로드와 패널 지연 로드 비교

웹페이지 또는 모바일 페이지에 추천을 표시하는 데는 두 가지 일반적인 방법이 있습니다. 사용하는 메서드에 따라 기록하는 view-home-page 사용자 이벤트의 수와 콘텐츠가 결정됩니다.

  • 사전 로드: 사전 로드를 사용하면 사용자가 페이지에 도착할 때 모든 추천 항목이 생성됩니다. 이 경우 사용자가 홈페이지를 로드하면 모든 패널과 문서가 포함된 view-home-page (또는 view-item) 사용자 이벤트를 하나 기록합니다.

  • 지연 로드: 지연 로드를 사용하면 사용자가 페이지에 도착할 때 패널 콘텐츠가 생성되지 않습니다. 대신 사용자가 패널로 아래로 스크롤하거나 오른쪽으로 스크롤하여 더 많은 추천을 볼 때 콘텐츠가 동적으로 로드됩니다. 이 경우 사용자가 홈페이지를 로드하면 초기 view-home-page (또는 view-item) 사용자 이벤트를 기록한 다음 사용자가 스크롤하여 더 많은 추천 콘텐츠를 생성할 때 더 많은 이벤트를 계속 기록합니다. 후속 이벤트에서는 표시되는 문서의 증분만 panels 배열에 포함하면 됩니다.

예시 시나리오

미디어 회사의 홈페이지에는 다음과 같은 두 개의 추천 패널이 표시됩니다.

  • 가장 인기 있는 모델로 구동되는 현재 인기 패널

  • A/B 테스트 중인 맞춤 추천 패널 일부 사용자에게는 추천 모델 (그룹 A)에서 제공하는 추천 패널이 표시되고 다른 사용자에게는 회사의 독점 모델 (그룹 B)에서 제공하는 추천이 표시됩니다.

그룹 B에 할당된 사용자가 이 홈페이지를 보면 JavaScript 픽셀 형식의 사용자 이벤트는 다음과 같습니다.

var user_event = {
  "eventType": "view-home-page",
  "userPseudoId": "4003345673.123451357",
  "eventTime": "2025-07-01T03:33:33.000001Z",
  "userInfo": {
    "userId": "jane.doe@example.com",
  },
  "tagIds": ["group-B"],
  "panels": [
    {
      "panelId": "panel-1",
      "displayId": "Trending Now",
      "documents": [
        {
          "id": "254722"
        },
        {
          "id": "2951"
        },
        ...
        {
          "id": "1201"
        }
      ],
      "panelPosition": 1,
      "totalPanels": 2
    },
    {
      "panelId": "panel-2",
      "displayId": "Recommended for You",
      "documents": [
        {
          "id": "79132"
        },
        {
          "id": "109487"
        },
        ...
        {
          "id": "164179"
        }
      ],
      "panelPosition": 2,
      "totalPanels": 2
    }
  ]
};

다음 단계