找出並解決您線上店面的工作階段 cookie 輪換問題
Cookie 輪換代表您線上店面的某個元素在單次訪問期間重新產生工作階段 cookie。每個新值都會計算為獨立的工作階段,因此商店記錄的工作階段數量會高於實際發生的數量,而由於工作階段是轉換率的分母,這會導致您的轉換率被低估。您的訂單、銷售和顧客數量則不受影響。
Shopify 會使用名為 _shopify_s 的 cookie 來識別您商店中的瀏覽器工作階段,且 Shopify Analytics 會使用該 cookie 將訪客的活動分組到工作階段中。工作階段也有預期的邊界 (例如閒置狀態和 UTC 午夜),比較工作階段和訪客中有涵蓋這類資訊。
您可以檢查您的瀏覽器以判斷線上店面中的 cookie 是否發生輪換、找出成因,然後驗證修復措施。輪換源自於您線上店面本身的程式碼或 app,因此您必須在線上店面中解決此問題,而且某些檢查需要存取您的佈景主題程式碼。
需求
若要完成此頁面上的檢查,您需要下列工具:
- 具備開發人員工具的電腦版瀏覽器,例如 Chrome、Edge、Firefox 或 Safari。
- 可存取線上店面的佈景主題程式碼、自訂指令碼或 app 設定。
- 可存取您的同意聲明管理平台設定 (如果您的商店有使用的話)。
Shopify 工作階段 cookie 的運作方式
下列 cookie 會記錄您線上店面的訪客活動:
| Cookie | 說明 |
|---|---|
_shopify_s | 識別瀏覽器工作階段和商店的組合。從上次使用起算,有 30 分鐘的滾動到期時間。 |
_shopify_y | 支援 Shopify Analytics。1 年後到期。 |
在訪客瀏覽器中設定工作階段 cookie 時,其會保留 1a2b3c4d-1a2b-3c4d-1a2b-3c4d5e6f7a8b 等唯一值。工作階段到期並開始新的工作階段時,cookie 會變更為另一個唯一值,例如 5e6f7a8b-5e6f-7a8b-5e6f-7a8b9c0d1e2f。
由於 _shopify_s 具備滾動到期機制,訪客的每項動作都會重新整理此 cookie。在沒有輪換的線上店面中,該值在整個訪問期間會保持不變,並且僅在閒置 30 分鐘後才會到期。如果該值在訪問中途發生變更,變更前後的活動將計算為 2 個獨立的工作階段。
檢查工作階段 cookie 是否發生輪換
您可以使用瀏覽器執行 cookie 輪換檢查。您無法透過分析報告診斷 cookie 輪換問題,因為報告僅顯示工作階段總數,而非每個工作階段建立的原因。請在無痕或私密瀏覽視窗中完成檢查,以免現有的 cookie 和瀏覽器擴充功能影響結果。
您執行檢查的地點非常重要。您的同意聲明橫幅僅會在商店設定的地區顯示,而大多數的輪換發生在同意聲明流程中,因此在沒有橫幅的地區執行檢查可能會完全漏掉此問題。請確認您的商店在哪些地區要求同意聲明,然後從其中一個地區執行檢查。如果您無法親自從該地區瀏覽,請請能這麼做的同事或開發人員協助。若要檢查您的商店在哪些地區要求同意聲明,請參閱管理 cookie 橫幅。
若要確認 cookie 行為,請在每個同意聲明狀態下對線上店面執行檢查:
- 不回覆橫幅
- 同意 cookie 後
- 拒絕同意聲明後
步驟:
- 在無痕或私密瀏覽視窗中開啟您的線上店面。確認您正使用適當的地區進行檢查,並已決定要檢查的同意聲明狀態。
- 開啟瀏覽器的開發人員工具。
- 在瀏覽器的開發人員工具中開啟 Cookie 面板:
- 在 Chrome 中,前往「應用程式」>「儲存空間」>「Cookie」。
- 在 Firefox 中,前往「儲存空間」>「Cookie」。
- 在 Safari 中,請先在「設定」>「進階」>「顯示網頁開發人員的各項功能」中開啟「開發」選單,然後前往「開發」>「顯示網頁檢閱器」>「儲存空間」>「Cookie」。
- 針對其他瀏覽器,請參閱您瀏覽器的支援文件以取得相關步驟。
- 選取您的網域。
- 在清單中找到
_shopify_s,並記下其值的前幾個字元。如果清單中沒有_shopify_s,請繼續瀏覽並觀察「Cookie」面板 30 到 60 秒鐘,然後再對 cookie 行為做出結論。 - 讓開發人員工具保持開啟,並正常瀏覽您的線上店面,造訪 3 或 4 個頁面 (包含產品頁面和購物車)。
- 在造訪每個頁面後檢查
_shopify_s的值,並在單一頁面上停留 1 分鐘後再次檢查。
根據您的 cookie 同意聲明橫幅活動,cookie 通常會呈現以下行為:
- 在訪客回覆同意聲明橫幅之前,以及在訪客拒絕之後,cookie 預期會保持不存在的狀態。
- 在訪客接受同意聲明後預期會出現 cookie,這是唯一必須產生 cookie 的同意聲明狀態。
如果您接受同意聲明後 cookie 仍然不存在,或者如果您的商店沒有在您測試的地區要求同意聲明,就表示線上店面中的某個元素封鎖或刪除了該 cookie。請參閱找出 cookie 輪換的成因並逐步執行操作。
在 cookie 輪換檢查期間,以下行為表示發生了輪換:
- cookie 值在訪問期間的任何時刻發生變更。
- 出現又消失的 Cookie。
找出 Cookie 輪替的原因
Shopify 無法偵測觸發 Cookie 輪替的因素,因為該邏輯是在您的線上店面內部執行。Shopify 亦無法將此行為歸因於特定的 app 或廠商。
若要找出 Cookie 輪替的原因,請依序執行下列疑難排解步驟。Liquid 線上店面的多數輪替是由同意聲明處理作業所導致:
- 檢閱同意聲明管理平台的行為。
- 檢閱cookie 橫幅設定。
- 檢閱線上店面指令碼和邏輯。
- 檢閱一般 Cookie 儲存空間和行為。
同意聲明管理平台的行為
如果您的商店使用第三方同意聲明管理 app,請從這裡開始。_shopify_s 在 Shopify 的 Cookie 政策中被歸類為報告和分析 Cookie,而非必要的 Cookie,因此封鎖或清除分析 Cookie 的同意聲明 app 將對其產生影響。
步驟:
- 確認您的商店使用哪個同意聲明管理 app。
- 在 app 的設定中,找出
_shopify_s的分類方式,以及該 app 如何處理該類別中的 Cookie。 - 檢查該 app 是否會在每次頁面載入時清除並重新建立 Cookie,而不是僅根據訪客的選擇執行一次動作。
若要解決此問題,請與 app 開發人員合作,讓該 app 透過 Customer Privacy API 向 Shopify 報告每位訪客的同意聲明選擇,而不是在每次載入頁面時清除並重新建立分析 Cookie。請勿降低 app 強制執行訪客選擇的頻率,因為拒絕的選擇必須在整個訪問期間持續套用。如需建議的設定,請參閱使用第三方 cookie 橫幅 app 設定 cookie 橫幅。
修正從未向 Shopify 報告訪客選擇的同意聲明工具,其改變的不只是活動歸類為工作階段的方式。修正後,系統將套用先前未報告的選擇,因此不再向拒絕的訪客收集非必要資料,您的工作階段計數可能會因此下降。
cookie 橫幅設定
在您的商店要求同意聲明的地區,Shopify 在訪客接受前不會設定分析 Cookie。在這些地區以外,cookie 橫幅預設為不啟用,因此在與橫幅進行任何互動前,穩定的 _shopify_s 是預期行為。若要確認您的商店在哪個地區要求同意聲明,請參閱管理您的 cookie 橫幅。
若需要提供同意聲明,輪替會發生在訪客做出決定前的這段期間。同意聲明工具不會放任 Cookie 不管,而是重複清除並重新建立 Cookie,每個循環都會記錄為一個新的工作階段。
步驟:
- 在私密瀏覽視窗中開啟您的線上店面,而且不要回覆同意聲明橫幅。
- 觀察瀏覽器「Cookie」面板中的
_shopify_s30 到 60 秒。 - 在橫幅仍未獲回覆的期間,檢查數值是否重複變更,或是 Cookie 是否反覆消失又出現。
- 回覆橫幅,然後檢查該行為是否停止。
若要解決此問題,請確認您的商店設定在哪個地區要求同意聲明,並確保橫幅透過 Customer Privacy API 向 Shopify 報告每位訪客的選擇,而不是在橫幅開啟時清除並重新建立 Cookie。如果該訪客的分析功能遭到封鎖而 Cookie 仍然出現,就代表是同意聲明工具以外的其他項目寫入 Cookie 的,因此請完成此頁面上其餘範圍的疑難排解作業。
線上店面指令碼和邏輯
並非所有輪替都是由同意聲明處理作業引起的。在一般訪問期間,刪除、封鎖、輪替或重新產生 _shopify_s 的任何指令碼或線上店面邏輯,都會造成輪替。例如,cart.js 大約每 10 秒遭到呼叫一次,而 Cookie 數值也會同步重新產生。另一個例子是輪替可追溯至網域錯誤分類,而這與同意聲明工具無關。
步驟:
- 在開發人員工具中開啟「網路」(Network) 分頁,然後選取「保留日誌」(Preserve log)。
- 停留在一個頁面上 60 秒,不進行任何互動。
- 觀察「Cookie」面板中的
_shopify_s數值,並檢查是否有任何要求在短週期內重複,尤其是cart.js。 - 每次數值變更時,請記下變更前一刻執行的要求或指令碼。重複發生但未變更數值的要求並不是發生此問題的原因。
- 在您的佈景主題程式碼、自訂指令碼及代碼管理工具容器中搜尋
document.cookie和_shopify_s。 - 確認您的線上店面是從單一標準網域提供服務。在「Cookie」面板中,檢查
_shopify_s是否在不同網域下顯示一次以上。 - 檢閱最近安裝的 app 和近期對佈景主題進行的變更。如果此行為是最近才開始出現,請將其與這些變更建立關聯。
若要解決此問題,請修正寫入 Cookie 的程式碼,並確定在分析作業執行之前,重新導向可解析為一個標準主機名稱。只有在您確認重複執行的要求會變更 _shopify_s 數值後,才可調節或移除該要求,因為購物車、庫存和聊天功能可以在不更動 Cookie 的情況下合法進行輪詢。
修正會重寫 Cookie 的指令碼、app 或網域只會變更現有訪客活動歸類為工作階段的方式。系統收集的資料不會改變。
Cookie 儲存空間和行為
目前尚未直接將輪替追溯至 Cookie 屬性,但在釐清其他範圍的問題後,值得將其排除。
步驟:
- 在「Cookie」面板中,檢閱
_shopify_s的網域 (Domain)、路徑 (Path)、過期時間 (Expires) 和 SameSite 數值,而不只看它的值。 - 確認沒有任何項目以較短的使用壽命,或是比 Shopify 設定更窄的路徑來覆寫 Cookie。
若要解決此問題,請移除覆寫 Cookie 屬性的程式碼或 app 設定。
驗證修正項目
請透過檢查 Cookie 來確認修正結果,而不是檢查您的「分析」(Analytics) 報告。若 _shopify_s 的值在整次訪問期間保持穩定,即代表修正已生效。在修正前記錄的工作階段資料不會重新處理,因此您的歷史報告會繼續顯示膨脹的工作階段數。
在新的無痕或私密瀏覽視窗中,重複檢查工作階段 Cookie 是否發生輪替的步驟,並確認下列結果:
| 檢查 | 預期結果 |
|---|---|
| 瀏覽 3 到 4 個頁面,不要回覆同意聲明橫幅。 | _shopify_s 未設定,或保持穩定的數值。 |
| 接受同意聲明後重複這項檢查。 | _shopify_s 保持穩定的數值。 |
| 拒絕同意聲明後重複這項檢查。 | _shopify_s 未設定,或保持穩定的數值。 |
| 從產品頁面移至購物車,然後回到瀏覽狀態。 | _shopify_s 的值持續存在。 |
| 停留在同一個頁面上 60 秒,並觀察 Network 分頁。 | 沒有任何重複的要求會變更 _shopify_s 值。 |
持續發生輪替情況時的後續步驟
輪替情況是由 Shopify 無法控制的程式碼或設定所引起,因此應由維護該程式碼的人員負責修復。若您已確認過本頁面的所有相關區域,而 _shopify_s 仍持續輪替,請聯絡負責方:
- 若是同意管理平台或其他 app,請透過 Shopify App Store 中的 app 產品資訊聯絡 app 開發人員。
- 若是自訂佈景主題程式碼、自訂指令碼或代碼管理工具容器,請聯絡維護這些項目的開發人員或代理商。
請提供下列詳細資訊,以便對方重現該行為:
- 您測試的同意狀態,以及各狀態下發生的情況。
- 您記錄的
_shopify_s值,以及每次變更前的頁面或動作。 - 會變更該值的任何重複要求,以及啟動該要求的指令碼。
- 您已進行的變更。