Hướng dẫn · 17 tháng 6, 2026

Ghost CMS cookie consent PDPL: chèn code injection, chặn analytics/embed

Hướng dẫn cookie consent hợp PDPL cho Ghost CMS: chèn code injection, chặn analytics và embed, lưu bằng chứng đồng ý.

consent.vn Editorial6 phút đọc

Trả lời nhanh

Nếu bạn dùng Ghost CMS và đang chạy analytics, YouTube, Maps hay pixel quảng cáo, bạn cần một cơ chế cookie consent để xin/ghi nhận đồng ý trước khi nạp script theo quy định PDPL. Bài này chỉ cách chèn bằng code injection, chặn analytics/embed và lưu bằng chứng đồng ý.

Ghost CMS cookie consent PDPL là gì và vì sao cần làm?

Bạn cần làm vì Ghost CMS thường cho phép nhúng script qua Code Injection, dễ vô tình nạp cookie/trackers trước khi người dùng đồng ý. Với Luật Bảo vệ Dữ liệu Cá nhân (Luật 91/2025/QH15, dự kiến hiệu lực 01/01/2026), doanh nghiệp cần kiểm soát đồng ý, thông báo minh bạch và lưu được bằng chứng consent theo quy định.

Ví dụ thực tế: một blog dùng Ghost chèn Google Analytics, Meta Pixel và YouTube embed trong header/footer. Nếu script tải ngay khi mở trang, cookie có thể được đặt trước consent. Cách đúng là tách script theo trạng thái đồng ý, chỉ nạp khi người dùng chọn “Chấp nhận”.

Chèn cookie banner vào Ghost CMS bằng code injection như thế nào?

Bạn có thể chèn banner/logic consent qua Code Injection trong Ghost Admin, thường ở phần Site Header hoặc Site Footer, rồi điều khiển việc nạp script theo lựa chọn của người dùng.

  1. Xác định các script đang nạp:

    rà soát Google Analytics, Tag Manager, Meta Pixel, YouTube, Maps, chat widget, font/CDN có theo dõi.

  2. Tách script thành 2 nhóm:

    nhóm cần thiết cho vận hành và nhóm chỉ chạy sau đồng ý (analytics, marketing, embed bên thứ ba).

  3. Chèn banner consent qua code injection:

    đặt HTML/CSS/JS của banner vào Site Footer để chạy toàn site.

  4. Mặc định chặn script không cần thiết:

    đổi `src` thành `data-src` hoặc bọc script trong hàm chỉ gọi khi người dùng đồng ý.

  5. Ghi nhận consent:

    lưu trạng thái đồng ý theo loại cookie, thời gian, phiên bản chính sách và nguồn thiết bị.

  6. Kiểm tra lại trên trình duyệt ẩn danh:

    đảm bảo chưa đồng ý thì không thấy request tới analytics/embed.

Mẫu logic chặn script trong Ghost

Bạn có thể dùng mẫu đơn giản sau trong Code Injection (Footer) để kiểm soát tải script sau consent:

<script>
  function loadScript(src) {
    var s = document.createElement('script');
    s.src = src;
    s.async = true;
    document.head.appendChild(s);
  }

  function getConsent() {
    try { return JSON.parse(localStorage.getItem('cookie_consent') || '{}'); }
    catch (e) { return {}; }
  }

  function applyConsent() {
    var c = getConsent();
    if (c.analytics) {
      loadScript('https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID');
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);} gtag('js', new Date());
      gtag('config', 'GA_MEASUREMENT_ID', { anonymize_ip: true });
    }
    if (c.marketing) {
      loadScript('https://connect.facebook.net/en_US/fbevents.js');
    }
  }

  document.addEventListener('DOMContentLoaded', applyConsent);
</script>

Lưu ý: đây chỉ là mẫu kỹ thuật. Nếu bạn triển khai thực tế, nên kiểm tra thêm yêu cầu thông báo, mục đích xử lý và cơ chế rút lại đồng ý theo quy định.

Làm sao chặn analytics và embed khi chưa có đồng ý?

Cách an toàn là không để script bên thứ ba tải tự động. Với analytics, bạn chỉ nạp sau khi người dùng chấp thuận nhóm “phân tích”. Với embed như YouTube/Maps, dùng placeholder và chỉ thay bằng iframe thật sau consent.

Bảng so sánh cách chặn thường dùng

Thành phần Cách làm trước consent Cách làm sau consent
Google Analytics Không chèn gtag.js Tải script và khởi tạo tracking
Meta Pixel Không nạp pixel Chỉ nạp sau khi chọn marketing
YouTube embed Hiện ảnh đại diện/thumbnail Thay bằng iframe YouTube
Google Maps Nút “Xem bản đồ” Tải embed khi bấm chấp thuận
Chat widget Ẩn widget hoặc trì hoãn tải Nạp sau consent hoặc theo đánh giá cần thiết

Với Ghost, cách làm thực tế thường là: để nội dung gốc trong Markdown, nhưng thay embed bằng khối placeholder và một nút “Cho phép tải nội dung bên thứ ba”. Khi người dùng bấm, JavaScript mới tạo iframe hoặc script tương ứng.

Cần lưu bằng chứng đồng ý trên Ghost như thế nào?

Bạn nên lưu ít nhất: thời điểm đồng ý, phiên bản banner/policy, các nhóm đã chọn, và cách người dùng đồng ý. Nếu có tài khoản, có thể gắn consent với user ID; nếu là khách vãng lai, lưu bằng cookie/localStorage kèm ID kỹ thuật.

Điểm quan trọng cho SME: đừng chỉ “hiện banner”. Theo quy định, bạn cần chứng minh consent đã được ghi nhận và có thể truy xuất khi có yêu cầu nội bộ hoặc kiểm tra. Nếu dùng consent management platform, hãy đảm bảo có log xuất được, không chỉ lưu trên trình duyệt.

Ghost CMS cookie consent PDPL nên triển khai theo thứ tự nào?

Bạn nên làm theo thứ tự: kiểm kê tracker, phân loại cookie, chặn mặc định, triển khai banner, lưu log, rồi test lại trên site thật. Nếu có tích hợp phức tạp như nhiều theme hoặc nhiều môi trường staging/production, hãy chuẩn hóa bằng một snippet dùng chung.

Điểm cần nhớ: khi có sự cố lộ dữ liệu cá nhân, doanh nghiệp phải thông báo vi phạm dữ liệu trong 72 giờ kể từ khi phát hiện. Vi phạm nghiêm trọng có thể bị xử lý hình sự; mức phạt cụ thể sẽ theo nghị định hướng dẫn của Chính phủ.

Có thể phát sinh nghĩa vụ thông báo và ghi nhận đồng ý theo quy định, vì analytics thường liên quan cookie/identifier. Nên chặn tải trước consent.
Có. Thường dùng Site Footer để chèn banner, logic lưu consent và hàm chỉ nạp script sau khi người dùng chọn.
Dùng thumbnail hoặc placeholder, không nạp iframe YouTube ngay. Chỉ tạo iframe sau khi người dùng đồng ý nhóm nội dung bên thứ ba.
Bạn có thể khó chứng minh đã nhận được đồng ý theo quy định. Nên lưu thời gian, lựa chọn, và phiên bản thông báo.

Nếu bạn cần mẫu banner, policy text hoặc snippet sẵn để dán vào Ghost, consent.vn có thể giúp chuẩn hóa theo luồng cookie consent và lưu bằng chứng đồng ý.

Nguồn: Luật 91/2025/QH15 và Nghị định 13/2023/NĐ-CP: https://thuvienphapluat.vn ; Cơ quan thực thi A05: https://bocongan.gov.vn

Bắt đầu ngay — cài đặt trong 5 phút.

Cần hỗ trợ tuân thủ PDPL?

Bắt đầu ngay