스토어프론트에서 세션 쿠키 로테이션 식별 및 해결

쿠키 로테이션이란 단일 방문 중 스토어프론트의 무언가가 세션 쿠키를 재생성하는 것을 의미합니다. 각각의 새로운 값은 별도의 세션으로 계산되므로 스토어에 실제로 발생한 것보다 더 많은 세션이 기록됩니다. 세션은 전환율의 분모이므로 전환율이 축소되어 표시됩니다. 주문, 판매 및 고객 수에는 영향을 주지 않습니다.

Shopify는 스토어에서 브라우저 세션을 식별하기 위해 _shopify_s라는 쿠키를 사용하며, Shopify Analytics는 해당 쿠키를 사용하여 방문자 활동을 세션으로 그룹화합니다. 세션에는 비활동 및 자정(UTC)과 같은 예상되는 경계도 있으며, 이는 세션 및 방문자 비교에서 다룹니다.

브라우저를 확인하여 스토어프론트에서 쿠키가 로테이션되는지 확인하고, 그 원인을 파악한 다음 해결 방법을 확인할 수 있습니다. 로테이션은 스토어프론트 자체 코드나 앱에서 발생하므로 스토어프론트에서 해결해야 하며, 일부 확인 작업을 위해서는 테마 코드에 액세스해야 합니다.

요구 사항

이 페이지의 확인 작업을 완료하려면 다음 도구가 필요합니다.

  • Chrome, Edge, Firefox, Safari와 같은 개발자 도구가 있는 데스크톱 브라우저.
  • 스토어프론트의 테마 코드, 사용자 지정 스크립트 또는 앱 구성에 대한 액세스.
  • 스토어에서 동의 관리 플랫폼을 사용하는 경우 해당 설정에 대한 액세스.

Shopify 세션 쿠키 작동 방식

다음 쿠키는 스토어프론트에서 방문자 활동을 기록합니다.

스토어프론트에서 방문자 활동을 기록하는 Shopify 쿠키와 각각의 지속 시간입니다.
쿠키설명
_shopify_s브라우저 세션 및 숍 조합을 식별합니다. 마지막 사용으로부터 30분의 롤링 만료 기간을 갖습니다.
_shopify_yShopify Analytics를 지원합니다. 1년 후 만료됩니다.

방문자 브라우저에 세션 쿠키가 설정되면 1a2b3c4d-1a2b-3c4d-1a2b-3c4d5e6f7a8b와 같은 고유한 값을 가집니다. 세션이 만료되고 새 세션이 시작되면 쿠키는 5e6f7a8b-5e6f-7a8b-5e6f-7a8b9c0d1e2f와 같은 다른 고유한 값으로 변경됩니다.

_shopify_s에는 롤링 만료 기능이 있으므로 방문자가 수행하는 각 작업에 의해 만료 시간이 새로 고쳐집니다. 로테이션이 없는 스토어프론트에서는 방문 기간 내내 동일한 값이 유지되며 비활동 상태가 30분 동안 지속된 후에만 만료됩니다. 방문 도중에 값이 변경되는 경우, 변경 전과 후의 활동은 2개의 별도 세션으로 계산됩니다.

브라우저를 사용하여 쿠키 로테이션 확인 작업을 실행할 수 있습니다. Analytics 보고서에는 각 세션이 생성된 이유가 아닌 세션 총계만 표시되므로 해당 보고서로는 쿠키 로테이션을 진단할 수 없습니다. 기존 쿠키와 브라우저 확장 프로그램이 결과에 영향을 미치지 않도록 비공개 또는 시크릿 브라우징 창에서 확인 작업을 완료하십시오.

확인 작업을 실행하는 위치가 중요합니다. 동의 배너는 스토어가 구성된 지역에만 표시되며 대부분의 로테이션은 동의 흐름에서 발생하므로, 배너가 없는 지역에서 확인 작업을 실행하면 문제를 전혀 감지하지 못할 수 있습니다. 스토어가 동의를 요청하는 지역을 확인한 다음, 해당 지역 중 한 곳에서 확인 작업을 실행하십시오. 해당 지역에서 직접 브라우징할 수 없는 경우, 브라우징이 가능한 동료나 개발자에게 요청하십시오. 스토어가 동의를 요청하는 지역을 확인하려면 쿠키 배너 관리를 참조하십시오.

쿠키 작동 방식을 확인하려면 각 동의 상태의 스토어프론트에서 확인 작업을 실행하십시오.

  • 배너에 응답하지 않은 상태
  • 쿠키에 동의한 후
  • 동의를 거부한 후

단계:

  1. 비공개 또는 시크릿 브라우징 창에서 스토어프론트를 엽니다. 적절한 지역을 사용하여 확인 중이며 확인하려는 동의 상태를 결정했는지 확인합니다.
  2. 브라우저의 개발자 도구를 엽니다.
  3. 브라우저 개발자 도구에서 쿠키 패널을 엽니다.
    • Chrome에서 애플리케이션 > 저장소 > 쿠키로 이동합니다.
    • Firefox에서 저장소 > 쿠키로 이동합니다.
    • Safari에서는 먼저 설정 > 고급 > 웹 개발자용 기능 보기에서 개발자용 메뉴를 켠 다음, 개발자용 > 웹 속성 표시기 보기 > 저장 공간 > 쿠키로 이동합니다.
    • 기타 브라우저의 경우 단계는 브라우저의 지원 문서를 참조하십시오.
  4. 도메인을 선택합니다.
  5. 목록에서 _shopify_s를 찾아 해당 값의 처음 몇 글자를 기록해 둡니다. 목록에 _shopify_s가 없으면 쿠키 작동 방식에 대한 결론을 내리기 전에 계속 브라우징하면서 쿠키 패널을 30~60초 동안 지켜보십시오.
  6. 개발자 도구를 열어둔 상태로 정상적으로 스토어프론트를 브라우징하고 제품 페이지와 카트를 포함한 3~4개의 페이지를 방문합니다.
  7. 각 페이지로 이동한 후와 단일 페이지에 1분 동안 머무른 후에 _shopify_s 값을 확인합니다.

쿠키 동의 배너 활동에 따라 쿠키는 일반적으로 다음과 같이 작동합니다.

  • 방문자가 동의 배너에 응답하기 전과 거부한 후에는 쿠키가 없는 상태가 유지되는 것이 정상입니다.
  • 방문자가 동의를 수락한 후에는 쿠키가 있어야 하며, 이는 쿠키를 생성해야 하는 유일한 동의 상태입니다.

동의를 수락한 후에도 쿠키가 여전히 없거나 테스트 중인 지역에서 스토어가 동의를 요청하지 않는 경우 스토어프론트의 무언가가 쿠키를 차단하거나 삭제하고 있는 것입니다. 쿠키 로테이션 원인 파악을 진행하십시오.

쿠키 로테이션 확인 중에 다음과 같은 작동이 나타나면 로테이션이 발생하고 있다는 의미입니다.

  • 방문 중 어느 시점에서든 쿠키 값이 변경되는 경우.
  • 나타났다가 사라지는 쿠키입니다.

해당 로직은 스토어프론트 내에서 실행되므로 Shopify에서는 무엇이 쿠키 로테이션을 유발하는지 감지할 수 없습니다. 또한 Shopify는 이러한 동작을 특정 앱이나 공급업체의 문제로 귀속시킬 수도 없습니다.

쿠키 로테이션 원인을 파악하려면 다음 문제 해결 영역을 순서대로 진행해 보십시오. Liquid 스토어프론트에서 발생하는 대부분의 로테이션은 동의 처리로 인해 발생합니다.

  1. 동의 관리 플랫폼 동작을 검토하십시오.
  2. 쿠키 배너 설정을 검토하십시오.
  3. 스토어프론트 스크립트 및 로직을 검토하십시오.
  4. 일반적인 쿠키 스토리지 및 동작을 검토하십시오.

스토어에서 타사 동의 관리 앱을 사용하는 경우 여기에서 시작하십시오. _shopify_s는 필수 쿠키가 아니라 Shopify 쿠키 정책에서 보고 및 분석 쿠키로 분류되므로, 분석 쿠키를 차단하거나 지우는 동의 앱의 영향을 받습니다.

단계:

  1. 스토어에서 어떤 동의 관리 앱을 사용하는지 파악하십시오.
  2. 앱 설정에서 _shopify_s가 어떻게 분류되어 있으며 앱이 해당 카테고리의 쿠키를 어떻게 처리하는지 확인하십시오.
  3. 앱이 방문자의 선택에 따라 한 번만 동작하는 것이 아니라, 페이지가 로드될 때마다 쿠키를 지우고 다시 생성하는지 확인하십시오.

이 문제를 해결하려면 앱 개발자와 협력하여 페이지가 로드될 때마다 분석 쿠키를 지우고 다시 생성하는 대신 앱이 Customer Privacy API를 통해 방문자의 동의 선택 사항을 Shopify에 보고하도록 하십시오. 거부된 선택 사항은 전체 방문 동안 계속 적용되어야 하므로 앱이 방문자의 선택을 적용하는 빈도를 줄이지 마십시오. 권장 설정에 대해서는 타사 쿠키 배너 앱을 사용하여 쿠키 배너 구성하기를 참조하십시오.

방문자의 선택 사항을 Shopify에 보고하지 않던 동의 툴을 수정하면 활동이 세션으로 그룹화되는 방식 이상의 변화가 생깁니다. 수정 후에는 이전에 보고되지 않았던 선택 사항이 적용되므로 동의를 거부한 방문자에 대해 더 이상 비필수 데이터가 수집되지 않으며 결과적으로 세션 수가 줄어들 수 있습니다.

스토어에서 동의를 요청하는 지역의 경우 Shopify는 방문자가 수락할 때까지 분석 쿠키를 설정하지 않습니다. 해당 지역 이외의 곳에서는 기본적으로 쿠키 배너가 활성화되지 않으므로 배너 상호 작용 전에 안정적인 _shopify_s가 유지되는 것이 정상적인 동작입니다. 스토어에서 동의를 요청하는 지역을 확인하려면 쿠키 배너 관리를 참조하십시오.

동의가 필요한 경우, 방문자가 결정하기 전의 창에서 로테이션이 발생합니다. 동의 툴은 쿠키를 그대로 두지 않고 반복해서 지우고 다시 생성하며, 각 주기는 새로운 세션으로 등록됩니다.

단계:

  1. 프라이빗 브라우징 창에서 스토어프론트를 열고 동의 배너에 응답하지 마십시오.
  2. 브라우저의 쿠키 패널에서 30~60초 동안 _shopify_s를 관찰하십시오.
  3. 배너에 응답하지 않은 상태로 유지되는 동안 값이 반복적으로 변경되거나 쿠키가 사라졌다가 다시 나타나는지 확인하십시오.
  4. 배너에 응답한 다음 해당 동작이 중지되는지 확인하십시오.

이 문제를 해결하려면 스토어가 어느 지역에서 동의를 요청하도록 설정되어 있는지 확인하고, 배너가 열려 있을 때 쿠키를 지우고 다시 생성하는 대신 배너가 Customer Privacy API를 통해 각 방문자의 선택 사항을 Shopify에 보고하는지 확인하십시오. 해당 방문자의 분석이 차단되었는데도 쿠키가 다시 나타난다면 동의 툴 이외의 다른 요소가 쿠키를 기록하고 있는 것이므로 이 페이지의 나머지 영역을 확인하여 해결해 보십시오.

스토어프론트 스크립트 및 로직

모든 로테이션이 동의 처리로 인해 발생하는 것은 아닙니다. 정상적인 방문 중 _shopify_s를 삭제, 차단, 순환 또는 재생성하는 스크립트나 스토어프론트 로직은 모두 로테이션을 유발합니다. 한 예로 cart.js가 약 10초마다 호출되었으며 쿠키 값이 그에 맞춰 다시 생성되었습니다. 또 다른 예로는 로테이션의 원인이 동의 툴링과 관련 없는 도메인 오분류인 것으로 밝혀지기도 했습니다.

단계:

  1. 개발자 도구에서 네트워크 탭을 연 다음 로그 보존을 선택하십시오.
  2. 아무런 상호 작용 없이 한 페이지에 60초 동안 머무르십시오.
  3. 쿠키 패널에서 _shopify_s 값을 관찰하고 짧은 주기로 반복되는 요청이 없는지, 특히 cart.js가 있는지 확인하십시오.
  4. 값이 변경될 때마다 변경 직전에 실행된 요청이나 스크립트를 기록해 두십시오. 값을 변경하지 않고 반복되는 요청은 원인이 아닙니다.
  5. 테마 코드, 사용자 지정 스크립트 및 태그 관리자 컨테이너에서 document.cookie_shopify_s를 검색하십시오.
  6. 스토어프론트가 단일 표준 도메인에서 서비스되는지 확인하십시오. 쿠키 패널에서 서로 다른 도메인에 _shopify_s가 두 번 이상 표시되는지 확인하십시오.
  7. 최근에 설치된 앱과 최근 테마 변경 사항을 검토하십시오. 해당 동작이 최근에 시작되었다면 이러한 변경 사항과 연관 지어 보십시오.

이 문제를 해결하려면 쿠키를 기록하는 코드를 수정하고, 분석이 실행되기 전에 리디렉션이 하나의 표준 호스트 이름으로 확인되도록 하십시오. 카트, 재고 및 채팅 기능은 쿠키를 건드리지 않고도 정상적으로 폴링할 수 있으므로, 반복되는 요청은 _shopify_s 값을 변경한다는 사실을 확인한 후에만 제한하거나 제거하십시오.

쿠키를 다시 기록하는 스크립트, 앱 또는 도메인을 수정하면 기존 방문자 활동이 세션으로 그룹화되는 방식만 변경됩니다. 수집되는 데이터는 변경되지 않습니다.

로테이션의 원인이 쿠키 속성으로 직접 밝혀진 적은 없지만, 다른 영역에 문제가 없다면 확인해 볼 가치가 있습니다.

단계:

  1. 쿠키 패널에서 _shopify_s의 값뿐만 아니라 Domain, Path, ExpiresSameSite 값을 검토하십시오.
  2. Shopify가 설정한 것보다 수명이 짧거나 경로가 좁은 쿠키로 덮어쓰는 요소가 없는지 확인하십시오.

이 문제를 해결하려면 쿠키 속성을 덮어쓰는 코드나 앱 설정을 제거하십시오.

수정 사항 확인

분석 보고서를 확인하는 대신 쿠키를 검사하여 수정 사항을 확인하십시오. _shopify_s 값이 전체 방문 동안 안정적으로 유지된다면 수정 사항이 제대로 작동한 것입니다. 수정하기 전에 기록된 세션 데이터는 다시 처리되지 않으므로, 과거 보고서에는 부풀려진 세션 수가 계속 표시됩니다.

새 프라이빗 또는 시크릿 브라우징 창에서 세션 쿠키가 로테이션하는지 확인하는 단계를 반복하고 다음 결과를 확인하십시오.

세션 쿠키 로테이션을 해결한 후 반복할 확인 작업과, 수정 사항이 적용되었음을 나타내는 결과입니다.
확인예상 결과
동의 배너에 응답하지 않고 3~4개의 웹페이지를 찾아봅니다._shopify_s가 설정되지 않았거나 안정적인 값을 유지합니다.
동의를 수락한 후 확인을 반복합니다._shopify_s가 안정적인 값을 유지합니다.
동의를 거부한 후 확인을 반복합니다._shopify_s가 설정되지 않았거나 안정적인 값을 유지합니다.
제품 페이지에서 카트로 이동했다가 다시 돌아와 탐색합니다._shopify_s 값이 유지됩니다.
한 페이지에 60초 동안 머무르면서 네트워크 탭을 관찰하십시오._shopify_s 값을 변경하는 반복 요청이 없습니다.

순환이 계속되는 경우의 다음 단계

순환은 Shopify에서 관리하지 않는 코드나 구성으로 인해 발생하므로 해당 코드를 유지 관리하는 사람이 문제를 해결해야 합니다. 이 페이지의 내용을 모두 수행했는데도 _shopify_s이(가) 계속 순환하는 경우 담당자에게 문의하십시오.

  • 동의 관리 플랫폼 또는 다른 앱의 경우 Shopify App Store의 앱 등록 정보를 통해 앱 개발자에게 문의하십시오.
  • 사용자 지정 테마 코드, 사용자 지정 스크립트 또는 태그 관리자 컨테이너의 경우 이를 유지 관리하는 개발자나 대행사에 문의하십시오.

담당자가 동작을 재현할 수 있도록 다음 세부 정보를 포함하십시오.

  • 테스트한 동의 상태 및 각 상태에서 발생한 결과
  • 기록한 _shopify_s 값 및 각 변경 전의 페이지 또는 작업
  • 값을 변경한 모든 반복 요청 및 이를 시작한 스크립트
  • 이미 적용한 변경 사항