본문 바로가기
IT/Etc

온라인 행동데이터와 고객 데이터 결합

by 조병희 2024. 10. 5.

익명화와 클라이언트-서버 데이터 결합

대안적인 접근 방식으로는 데이터 익명화를 사용한 데이터 결합과 클라이언트-서버 데이터 통합을 통한 방법이 있습니다. 각 방법을 살펴보겠습니다.

1. 익명화된 데이터 및 해싱 사용

익명화 또는 가명화된 사용자 ID를 통해 Google Analytics에서 수집된 데이터를 결합하는 것입니다. 예를 들어, 다음과 같은 방식으로 데이터 결합을 수행할 수 있습니다.

  1. 서버에서 익명화된 사용자 ID 생성:
    • 웹 서비스에서 사용자의 고유한 user_id를 기반으로, user_hash_id를 생성합니다. 이때 SHA-256이나 비슷한 해싱 알고리즘을 사용하여 개인 식별을 불가능하게 합니다.
     
    import hashlib 
    def get_anonymized_user_id(user_id):
    	return hashlib.sha256(user_id.encode()).hexdigest()
  2. GA로 익명화된 사용자 ID 전송:
    • 웹사이트에서 사용자가 특정 행동을 할 때 해싱된 user_hash_id를 맞춤 차원(Custom Dimension)으로 설정하여 Google Analytics에 전송합니다. GA에서는 이 user_hash_id로 개별 사용자 세션을 구분할 수 있습니다.
    • 이 과정에서 쿠키 동의 개인정보 수집 동의는 반드시 필요합니다.
  3. 웹 서비스와 결합:
    • 이후 웹 서비스 내 데이터베이스에서도 동일한 방식으로 해싱된 user_hash_id를 생성하고, 이를 이용해 GA 데이터와 결합할 수 있습니다.
    • 예를 들어, GA 데이터를 BigQuery로 내보내고, 웹 서비스에서 동일한 방식으로 해싱된 user_hash_id와 결합하는 식입니다.
WITH ga_data AS (
  SELECT
    user_hash_id,
    session_id,
    event_name,
    TIMESTAMP_SECONDS(event_timestamp) AS event_time
  FROM
    `my_project.my_dataset.ga_sessions`
  WHERE
    user_hash_id IS NOT NULL
)
SELECT
  users.user_hash_id,
  users.name,
  users.subscription_status,
  ga_data.session_id,
  ga_data.event_name,
  ga_data.event_time
FROM
  ga_data
JOIN
  `my_project.my_dataset.users` AS users
ON
  ga_data.user_hash_id = users.user_hash_id
ORDER BY
  ga_data.event_time DESC
LIMIT 100;

 

이와 같은 방식으로 사용자 행동 데이터를 결합할 수 있지만, 데이터가 익명화되어야 하고 역추적이 불가능해야 합니다.

2. 클라이언트-서버 데이터 동기화 및 자체 데이터베이스 사용

Google Analytics의 제한을 피해 데이터를 결합하는 또 다른 방법은 서버 쪽에서 사용자 행동 데이터를 수집하는 것입니다. 이 방법은 GA의 데이터와 직접적으로 결합하지 않으면서, 자체 분석을 통해 사용자 행동을 보다 자세히 분석할 수 있도록 합니다.

  1. 서버 로그에 사용자 행동 데이터 저장:
    • 웹 서비스 자체에서 사용자가 특정 행동을 할 때 서버 로그에 해당 행동 데이터를 기록합니다.
    • 이 행동 데이터는 사용자 세션 ID와 함께 저장됩니다.
  2. GA 이벤트 수집과 서버 데이터의 동기화:
    • 서버 로그에서 특정 사용자에 대한 행동 데이터를 수집할 수 있으므로, 이를 Google Analytics와 독립적으로 사용할 수 있습니다.
    • 특정 행동 이벤트가 발생할 때, 서버와 Google Analytics 모두 이벤트를 기록하도록 설정합니다. 이렇게 하면 서로 다른 데이터 소스에 사용자의 이벤트 데이터가 남아 있어 이를 분석할 수 있습니다.
  3. 자체 분석 환경 구축:
    • Google Analytics 데이터를 BigQuery로 내보내고, 서버 로그 데이터를 BigQuery에 업로드한 다음 두 데이터를 조합하여 분석합니다.
    • 여기서도 개인정보는 저장하지 않고, 특정 해싱된 식별자를 사용해 서버와 GA 데이터를 결합합니다.

이 방법은 Google Analytics의 사용과 별도로 데이터를 자체적으로 보유하고 관리할 수 있기 때문에, GA의 제한에 얽매이지 않고 데이터를 결합하여 사용할 수 있다는 장점이 있습니다.

3. CRM과의 결합 (고급)

CRM 데이터를 활용하여 사용자 데이터를 분석하는 것도 하나의 방법입니다. CRM과 GA 데이터를 통합할 때 중요한 사항은 개인 정보의 익명화입니다. CRM에서는 사용자 정보와 행동 데이터를 보유하고 있으며, 이 데이터를 익명화하거나 요약된 형태로 GA의 행동 데이터와 결합할 수 있습니다.

  • 예를 들어, CRM에서 사용자 그룹을 특정 기준(예: subscription_status)으로 분류한 후, GA의 행동 데이터를 통해 어떤 그룹이 어떤 행동을 하는지 분석하는 방식입니다.
  • 이 과정은 CRM의 데이터를 익명화된 상태에서 데이터 분석 목적으로만 사용하는 것이며, CRM 데이터와 GA 데이터를 직접 통합하여 개인을 식별할 수 있는 형태로 결합하는 것은 금지됩니다.

사용자를 식별할 수 있는 user_id를 그대로 GA에 저장하는 대신, 해싱된 익명화 ID를 사용하거나 서버 로그와 GA 데이터를 병행하여 수집하는 방식을 살펴봤습니다. Google Analytics와 웹 서비스 데이터를 결합하는 과정에서 개인정보 보호법과 GA의 정책을 준수하는 것이 매우 중요함으로 실제 사용시 보다 구체적인 점검이 필요합니다.

 

 

'IT > Etc' 카테고리의 다른 글

맥북에서 miniconda 설치  (1) 2024.10.12
The AI Code Editor - Cursor  (2) 2024.10.08
Napkin - Get visualsfrom your text  (0) 2024.09.14
Multi Agentic GPT  (0) 2024.09.12
글자를 잘 나타내는 AI - ideogram  (0) 2024.08.26

댓글