sop-quan-ly-vong-doi-tai-san.html

39.85 KB • 12/09/2026 13:48:48 • HTML

Tải về
sop-quan-ly-vong-doi-tai-san.html
Html
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SOP Quản lý vòng đời &amp; Kháng cáo (TKQC)</title>
<style>
  :root {
    --bg:#f4f6f8; --card:#ffffff; --surface:#f7f8fa; --text:#1f2328; --muted:#57606a; --faint:#8c959f;
    --border:#d8dee4; --border-strong:#b9c1c9; --heading:#0b3b6f; --accent:#87CEFA;
    --code-bg:#eef1f5; --code-text:#a5316a; --th-bg:#87CEFA; --row-alt:#f8fafc;
    --stop-bg:#fdeeee; --stop-bar:#d1242f; --stop-text:#a40e26;
    --ok-bg:#edf7f1; --ok-bar:#2da44e; --ok-text:#1a5c33;
    --pill-bg:#e6f3fc; --pill-text:#0284c7;
    --shadow:0 1px 2px rgba(27,31,36,.06), 0 4px 14px rgba(27,31,36,.05);
  }
  @media (prefers-color-scheme: dark) {
    :root {
      --bg:#0a0d12; --card:#11161d; --surface:#161b22; --text:#e6edf3; --muted:#9198a1; --faint:#6e7681;
      --border:#2a313a; --border-strong:#3d454f; --heading:#87CEFA; --accent:#87CEFA;
      --code-bg:#1c232c; --code-text:#ff9bce; --th-bg:#0d2847; --row-alt:#141a21;
      --stop-bg:#2b1214; --stop-bar:#f85149; --stop-text:#ff8b82;
      --ok-bg:#10251a; --ok-bar:#2da44e; --ok-text:#56d364;
      --pill-bg:#12283d; --pill-text:#7dd3fc;
      --shadow:0 1px 2px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.3);
    }
  }
  * { box-sizing:border-box; }
  html { -webkit-text-size-adjust:100%; }
  body { margin:0; background:var(--bg); color:var(--text);
    font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif;
    font-size:16px; line-height:1.65; }
  .wrap { max-width:980px; margin:0 auto; padding:2rem 1.1rem 4rem; }

  .hero { background:var(--card); border:1px solid var(--border); border-top:4px solid #87CEFA; border-radius:16px;
    padding:1.8rem 1.8rem 1.4rem; box-shadow:var(--shadow); margin-bottom:1.3rem; }
  .eyebrow { font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#0b3b6f; margin-bottom:.5rem; }
  .hero h1 { font-size:1.9rem; line-height:1.22; margin:0 0 .9rem; color:var(--heading); font-weight:800; }
  .meta { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:.7rem 1.4rem;
    border-top:1px solid var(--border); padding-top:.9rem; font-size:.88rem; }
  .meta .k { display:block; font-size:.68rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--faint); }

  section.block { background:var(--card); border:1px solid var(--border); border-radius:14px;
    padding:1.4rem 1.6rem 1.5rem; box-shadow:var(--shadow); margin-bottom:1.3rem; }
  h2 { display:flex; align-items:center; gap:.65rem; font-size:1.3rem; font-weight:800; color:var(--heading); margin:0 0 .9rem; }
  h2 .n { display:inline-flex; align-items:center; justify-content:center; width:1.85rem; height:1.85rem; border-radius:7px; font-size:.95rem; font-weight:800; background:linear-gradient(180deg, #f0f8ff 0%, #e1f2fc 100%); color:#0b3b6f; border:1px solid #b9ddf8; flex-shrink:0; }
  p { margin:.6rem 0; }
  ol,ul { padding-left:1.35rem; margin:.5rem 0; }
  li { margin:.35rem 0; line-height:1.75; }
  li ul { margin:.25rem 0 .1rem; }
  code { font-family:"Cascadia Code",Consolas,ui-monospace,monospace; font-size:.86em;
    background:var(--code-bg); color:var(--code-text); padding:.08em .38em; border-radius:5px; }

  .table-scroll { overflow-x:auto; margin:.8rem 0; }
  table { border-collapse:collapse; width:100%; font-size:.9rem; border:1px solid #b9ddf8; border-radius:8px; }
  th,td { border:1px solid #e2edf8; padding:.55rem .75rem; text-align:left; vertical-align:top; white-space:normal; overflow-wrap:break-word; }
  thead th { background:linear-gradient(180deg, #f0f8ff 0%, #e1f2fc 100%); font-weight:800; font-size:.74rem; letter-spacing:.07em; text-transform:uppercase; color:#0b3b6f; border-bottom:1.5px solid #b9ddf8; }
  tbody tr:nth-child(even) { background:#f8fbfe; }
  td.c { text-align:center; white-space:nowrap; }
  td.q { font-weight:700; min-width:13rem; }
  .st { display:inline-block; font-family:inherit; font-weight:650; font-size:.78rem; line-height:1.25; padding:.06rem .38rem; border-radius:4px; background:#e6f3fc; color:#0284c7; white-space:nowrap; }
  .path { font-family:"Cascadia Code",Consolas,ui-monospace,monospace; font-size:.8rem; white-space:nowrap; color:var(--pill-text); }

  .chang { border:1px solid #b9ddf8; border-radius:12px; overflow:hidden; margin:1.1rem 0; background:var(--card); box-shadow:0 1px 4px rgba(135,206,250,0.12); }
  .chang-arrow { text-align:center; color:var(--muted); margin:.55rem 0; line-height:1.25; }
  .chang-arrow .ar { display:block; font-size:1.4rem; }
  .chang-arrow .cap { display:inline-block; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-top:.15rem; }
  .chang-head { padding:.85rem 1.15rem; background:linear-gradient(180deg, #f0f8ff 0%, #e1f2fc 100%); border-bottom:1px solid #b9ddf8; }
  .chang-head .row { display:flex; align-items:center; gap:.8rem; }
  .chang-head .cn { display:inline-flex; align-items:center; justify-content:center; width:1.85rem; height:1.85rem; border-radius:7px; background:#0b3b6f; color:#ffffff; font-size:.95rem; font-weight:800; flex-shrink:0; }
  .chang-head .t { font-size:1.08rem; font-weight:800; color:#0b3b6f; }
  .chang-head .m { font-size:.84rem; color:#1e40af; font-weight:600; margin-top:.25rem; padding-left:2.65rem; }
  .chang-body { padding:.9rem 1.1rem 1rem; }
  .chang-body > p.intro { margin:0 0 .6rem; color:var(--muted); font-size:.93rem; }
  .lbl { font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#0b3b6f; margin:.7rem 0 .2rem; }
  .lbl:first-child { margin-top:0; }
  .done { border-left:4px solid var(--ok-bar); background:var(--ok-bg); border-radius:0 8px 8px 0; padding:.55rem .9rem; margin:.6rem 0; font-size:.93rem; }
  .done .lbl { color:var(--ok-text); margin-top:0; }
  .done ul { margin:.2rem 0; }
  .done p { margin:.15rem 0; }
  .halt { border-left:4px solid var(--stop-bar); background:var(--stop-bg); border-radius:0 8px 8px 0; padding:.55rem .9rem; margin:.6rem 0; font-size:.93rem; }
  .halt .lbl { color:var(--stop-text); margin-top:0; }
  .halt p { margin:.15rem 0; }

  .ban-list { display:flex; flex-direction:column; gap:.85rem; margin-top:.9rem; }
  .ban-card { border:1px solid #b9ddf8; border-left:4px solid #d1242f; border-radius:10px; background:#ffffff; padding:.85rem 1.1rem; box-shadow:var(--shadow); }
  .ban-head { display:flex; align-items:center; gap:.55rem; font-size:1rem; font-weight:800; color:#d1242f; margin-bottom:.35rem; }
  .ban-head em { font-weight:600; font-size:.88rem; color:var(--muted); font-style:normal; margin-left:.3rem; }
  .ban-icon { font-size:1.1rem; flex-shrink:0; }
  .ban-reason { font-size:.93rem; color:var(--muted); margin:.25rem 0 .45rem; padding-left:1.65rem; }
  .ban-action { display:flex; align-items:flex-start; gap:.55rem; font-size:.94rem; background:#f0fdf4; border:1px solid #bbf7d0; border-radius:7px; padding:.45rem .75rem; color:#166534; margin-top:.35rem; margin-left:1.65rem; }
  .ban-action .arrow { color:#16a34a; font-weight:800; font-size:1.05rem; line-height:1.3; flex-shrink:0; }

  .cases { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; margin-top:.9rem; }
  .case { border:1px solid var(--border-strong); border-radius:12px; background:var(--surface); padding:.85rem 1rem .9rem; }
  .c-path { font-size:.72rem; font-weight:800; letter-spacing:.06em; color:var(--heading); margin-bottom:.4rem; }
  .c-t { font-size:1rem; font-weight:800; color:var(--heading); margin-bottom:.3rem; }
  .c-b { font-size:.92rem; }

  .qa { border:1px solid var(--border-strong); border-radius:10px; background:var(--surface); margin:.5rem 0; overflow:hidden; }
  .qa > summary { cursor:pointer; padding:.6rem .9rem; font-weight:700; font-size:.95rem; color:var(--heading); list-style:none; }
  .qa > summary::-webkit-details-marker { display:none; }
  .qa > summary::before { content:"▸"; display:inline-block; width:1.1rem; color:var(--accent); font-weight:800; }
  .qa[open] > summary::before { content:"▾"; }
  .qa .qa-b { padding:0 .9rem .7rem 2rem; font-size:.93rem; border-top:1px solid var(--border); padding-top:.6rem; }

  .alerts { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:.9rem; }
  .alert { border:1px solid #d1242f; border-radius:12px; background:#ffffff; padding:1rem 1.15rem 1.1rem; box-shadow:var(--shadow); }
  .alert .a-t { font-size:1rem; font-weight:800; color:#d1242f; margin-bottom:.4rem; line-height:1.4; }
  .alert .a-cond { font-size:.95rem; line-height:1.6; color:var(--text); }

  .badge-opt { display:inline-block; font-size:.72rem; font-weight:800; letter-spacing:.06em; padding:.12rem .5rem; border-radius:5px; background:#fef3c7; color:#92400e; border:1px solid #fcd34d; vertical-align:middle; margin-right:.35rem; text-transform:uppercase; }
  .opt-box { margin-top:.45rem; padding:.65rem .85rem; background:#fdfaf3; border:1px dashed #fcd34d; border-radius:8px; font-size:.92rem; }
  .opt-warn { margin-top:.35rem; color:#b45309; font-size:.88rem; }

  .rules { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:.9rem; }
  .rule { border:1.5px solid #87CEFA; border-radius:12px; background:linear-gradient(180deg, #f0f8ff 0%, #e1f2fc 100%); padding:1rem 1.15rem 1.1rem; }
  .rule h3 { margin:0 0 .5rem; font-size:1rem; font-weight:800; color:var(--heading); }
  .rule p { margin:.35rem 0; font-size:.95rem; }
  .rule ul { margin:.3rem 0 .4rem; }
  .rule li { margin:.2rem 0; font-size:.95rem; }

  .footer { text-align:center; color:var(--faint); font-size:.8rem; padding-top:1rem; }
  .footer code { background:none; color:var(--faint); }

  @media (prefers-color-scheme: dark) {
    table { border-color:#1e4976; }
    th,td { border-color:#1e3852; }
    thead th { border-bottom-color:#1e4976; color:#87CEFA; background:linear-gradient(180deg, #132d4b 0%, #0d223a 100%); }
    .chang { border-color:#1e4976; box-shadow:none; }
    .chang-head { background:linear-gradient(180deg, #132d4b 0%, #0d223a 100%); border-bottom-color:#1e4976; }
    .chang-head .cn { background:#0b3b6f; color:#ffffff; }
    .chang-head .t { color:#87CEFA; }
    .chang-head .m { color:#94a3b8; }
    .badge-opt { background:#3b2d07; color:#fbbf24; border-color:#78350f; }
    .opt-box { background:#1a160d; border-color:#78350f; }
    .opt-warn { color:#fbbf24; }
    .ban-card { background:#11161d; border-color:#1e4976; border-left-color:#f85149; }
    .ban-head { color:#f85149; }
    .ban-reason { color:#9198a1; }
    .ban-action { background:#0f291e; border-color:#1c5438; color:#4ade80; }
    .ban-action .arrow { color:#4ade80; }
    .alert { background:#11161d; border-color:#f85149; }
    .alert .a-t { color:#f85149; }
    .case, .qa { background:#131a23; border-color:#2a313a; }
    .c-path, .c-t { color:#87CEFA; }
    .rule { background:linear-gradient(180deg, #132d4b 0%, #0d223a 100%); border-color:#1e4976; }
    .rule h3 { color:#87CEFA; }
  }

  @media (max-width:620px) {
    .hero { padding:1.3rem 1rem; } .hero h1 { font-size:1.45rem; }
    section.block { padding:1.1rem 1rem 1.2rem; }
    .chang-head .m { padding-left:0; }
    td.q { min-width:10rem; }
    .rules { grid-template-columns:1fr; }
    .alerts { grid-template-columns:1fr; }
    .cases { grid-template-columns:1fr; }
  }
</style>
</head>
<body>
<div class="wrap">

  <div class="hero">
    <div class="eyebrow">Tài liệu chuẩn hóa vận hành (SOP V3.3)</div>
    <h1>SOP Quản lý vòng đời &amp; Kháng cáo (TKQC)</h1>
    <div class="meta">
      <div><span class="k">Người ban hành</span>CTO / Ban Công nghệ &amp; Quản lý Tài sản</div>
      <div><span class="k">Đối tượng</span>Đội Nguyên liệu, Nuôi Ads, Topup &amp; Quản lý</div>
      <div><span class="k">Cập nhật</span>2026-09-12</div>
    </div>
  </div>

  <!-- 1 -->
  <section class="block">
    <h2><span class="n">1</span> 2 quy tắc vàng</h2>
    <p><strong>TKQC là tiền và tài sản dòng tiền trực tiếp.</strong> Sai một thao tác hay sai nhóm là mất tiền, mù hóa đơn, mất quyền kiểm soát tài sản.</p>
    <div class="rules">
      <div class="rule">
        <h3>1. Đầu vào chuẩn hạ tầng giám sát</h3>
        <p>Mọi TKQC muốn lưu hành (<span class="st">[KHO]</span>, <span class="st">[NUÔI]</span>, <span class="st">[ĐANG DÙNG]</span>) bắt buộc có đủ <strong>3 thành tố</strong>:</p>
        <ul>
          <li>Phải có <strong>ít nhất 2 VIA cầm sống</strong>, <strong>OAuth ACTIVE</strong> (chuẩn đủ: 4 VIA)</li>
          <li>Phải <strong>share sang BM Trung gian</strong> để System User Token quản trị được</li>
          <li>Phải <strong>gắn Email Bill trên BM</strong>, mỗi VIA một địa chỉ</li>
        </ul>
        <p><strong>Thiếu 1 = CẤM CẤP PHÁT, CẤM GIAO KHÁCH.</strong></p>
      </div>
      <div class="rule">
        <h3>2. Trạng thái nhóm phải ĐÚNG 100%</h3>
        <p>Làm đủ điều kiện rồi mới chuyển nhóm, và <strong>chuyển ngay khi thực tế thay đổi</strong>:</p>
        <ul>
          <li><span class="st">[KHO]</span> <strong>cấm nới limit</strong></li>
          <li><span class="st">[NUÔI]</span> <strong>chỉ nới limit qua NolimitGate</strong></li>
          <li><strong>Đã nạp NolimitTopup</strong> là <span class="st">[ĐANG DÙNG]</span></li>
        </ul>
        <p>Lệch nhóm là hệ thống bắn cảnh báo.</p>
      </div>
    </div>
  </section>

  <!-- 2 -->
  <section class="block">
    <h2><span class="n">2</span> Ma trận vòng đời 6 giai đoạn &amp; rules limit</h2>
    <div class="table-scroll">
    <table>
      <thead><tr><th>Giai đoạn</th><th>Là gì</th><th>Ai phụ trách</th><th>Limit</th><th>Được làm</th><th>Cấm</th></tr></thead>
      <tbody>
        <tr><td><span class="st">[CHUẨN BỊ]</span></td><td>Hàng mới, <strong>đang cấu hình</strong></td><td>Đội Nguyên liệu</td><td><strong>Limit gốc</strong></td><td>Backup VIA, OAuth, gắn Email Bill, share BM Trung gian, gỡ dấu vết bên bán</td><td><strong>Add thẻ, chạy camp</strong></td></tr>
        <tr><td><span class="st">[KHO]</span></td><td><strong>Đủ chuẩn</strong>, nằm chờ</td><td>Đội Nguyên liệu</td><td><strong>Giữ nguyên</strong>, chưa niêm phong</td><td>Chờ cấp phát, lập kế hoạch nuôi</td><td><strong>Add thẻ, chạy camp, nới limit</strong></td></tr>
        <tr><td><span class="st">[NUÔI]</span></td><td><strong>Có kế hoạch duyệt</strong>, chạy camp mồi</td><td>Nuôi Ads</td><td><strong>2–10 USD, chỉ qua NolimitGate</strong></td><td>Add thẻ, nới limit, camp mồi</td><td><strong>Chạy nội dung khách, về Kho</strong></td></tr>
        <tr><td><span class="st">[ĐANG DÙNG]</span></td><td><strong>Đã nạp Topup</strong> — đang giao, đã thu hồi, hay chờ khách</td><td>Topup</td><td><strong>Theo tiền khách nạp</strong></td><td>Giao khách, thu hồi tại chỗ</td><td><strong>Cấp Admin cho khách, về Kho hay Nuôi</strong></td></tr>
        <tr><td><span class="st">[LƯU TRỮ]</span></td><td>Die, <strong>còn nút kháng</strong></td><td>Quản lý Tài sản</td><td><strong>1 VND / 0.01 USD</strong></td><td>Thu hồ sơ, gửi kháng</td><td><strong>Giao khách, nới limit, về Nuôi</strong></td></tr>
        <tr><td><span class="st">[KHAI TỬ]</span></td><td>Die, <strong>hết nút kháng</strong>, CTO duyệt</td><td>CTO</td><td><strong>1 VND / 0.01 USD</strong></td><td><strong>Chỉ đọc</strong></td><td><strong>Mọi thao tác, xóa bản ghi</strong></td></tr>
      </tbody>
    </table>
    </div>
  </section>

  <!-- 3 -->
  <section class="block">
    <h2><span class="n">3</span> Quy trình vận hành chi tiết (7 chặng sinh tử)</h2>

    <div class="chang">
      <div class="chang-head">
        <div class="row"><span class="cn">1</span><span class="t">Tiếp nhận lô hàng &amp; bảo toàn quyền sở hữu (4 VIA cầm &amp; Email Bill)</span></div>
        <div class="m">Giai đoạn <span class="st">[CHUẨN BỊ]</span> — Phụ trách: Đội Nguyên liệu</div>
      </div>
      <div class="chang-body">
        <div class="lbl">Thao tác</div>
        <ol>
          <li>Chọn <strong>VIA trắng</strong> làm VIA cầm.</li>
          <li><strong>Share Admin mọi BM cho tất cả VIA cầm</strong>: mỗi VIA cầm trọn lô. <strong>Cấm chia chéo.</strong></li>
          <li><strong>Gắn Email Bill lên BM</strong>: mỗi VIA một địa chỉ <code>&lt;UID_VIA&gt;@&lt;tên miền&gt;</code>.</li>
          <li><strong>Kết nối OAuth</strong> từng VIA trên hệ thống ⟶ <strong>ACTIVE</strong>.</li>
          <li>Bấm <strong>Sync</strong>, đối chiếu số BM / TKQC với biên bản bàn giao. Đưa vào nhóm <span class="st">[CHUẨN BỊ]</span> của lô.</li>
          <li><strong>Gỡ thẻ, mọi Admin lạ</strong> — chỉ làm <strong>sau khi VIA cầm đã là Admin</strong>.</li>
        </ol>
        <div class="done"><div class="lbl">Điều kiện PASS</div>
          <ul>
            <li>Mọi VIA cầm <strong>OAuth ACTIVE</strong>, <strong>thấy đủ BM</strong> của lô</li>
            <li><strong>Đếm đủ TKQC</strong>, khớp bàn giao</li>
            <li>Mỗi BM <strong>đủ Email Bill</strong> của các VIA</li>
            <li><strong>Không còn</strong> thẻ / Admin lạ</li>
          </ul>
        </div>
        <div class="halt"><div class="lbl">Dừng khi</div><p>Đếm thiếu TKQC, share quyền thất bại, thiếu VIA, hoặc BM bị checkpoint ⟶ giữ tại Chuẩn bị, báo Quản lý.</p></div>
      </div>
    </div>

    <div class="chang-arrow"><span class="ar">↓</span><span class="cap">Đạt PASS</span></div>

    <div class="chang">
      <div class="chang-head">
        <div class="row"><span class="cn">2</span><span class="t">Thiết lập hạ tầng quan sát (BM Trung gian &amp; System User Token)</span></div>
        <div class="m">Giai đoạn <span class="st">[CHUẨN BỊ]</span> — Phụ trách: Đội Nguyên liệu</div>
      </div>
      <div class="chang-body">
        <div class="lbl">Thao tác</div>
        <ol>
          <li><strong>Share toàn bộ TKQC</strong> của lô sang BM Trung gian.</li>
          <li><strong>Sync</strong>: token hệ thống của BM Trung gian quét thấy các TKQC vừa share.</li>
          <li><strong>Cấp quyền Admin cho System User</strong> (token hệ thống) trên từng TKQC.</li>
          <li>
            <div class="opt-box">
              <div><span class="badge-opt">Tùy chọn</span><strong>Thêm tầng quan sát qua token của BM gốc:</strong> Add App hệ thống vào từng BM ⟶ cấp Admin cho <strong>System User</strong> ⟶ tạo Permanent System User Token quyền <code>ads_management</code>.</div>
              <div class="opt-warn">⚠️ <em>VIA mới add vào BM bị chặn tạo trong <strong>7 ngày</strong> — làm bằng VIA đã là Admin đủ 7 ngày; chưa tạo được thì bỏ qua, tạo khi đủ ngày.</em></div>
            </div>
          </li>
        </ol>
        <div class="done"><div class="lbl">Điều kiện PASS</div>
          <ul>
            <li>System User của BM Trung gian có <strong>quyền Admin trên 100% TKQC</strong>, đọc được <code>Live/Die</code>, <code>Spent</code>, <code>Limit</code></li>
          </ul>
        </div>
        <div class="halt"><div class="lbl">Dừng khi</div><p>Share sót TKQC, System User chỉ có quyền Xem, hoặc BM Trung gian die / hết chỗ ⟶ đổi sang BM Trung gian khác.</p></div>
      </div>
    </div>

    <div class="chang-arrow"><span class="ar">↓</span><span class="cap">Backup thành công → Nhập kho</span></div>

    <div class="chang">
      <div class="chang-head">
        <div class="row"><span class="cn">3</span><span class="t">Điều kiện nhập KHO</span></div>
        <div class="m">Chuyển <span class="st">[CHUẨN BỊ]</span> → <span class="st">[KHO]</span> — Phụ trách: Đội Nguyên liệu</div>
      </div>
      <div class="chang-body">
        <div class="lbl">Thao tác</div>
        <p>Kiểm <strong>3 cổng</strong> cho <strong>từng Ads</strong>, đạt thì chuyển sang <span class="st">[KHO]</span>. <strong>Không tắt camp, không hạ limit</strong> — việc đó làm ở cửa vào Nuôi.</p>
        <div class="done"><div class="lbl">Điều kiện PASS — đủ 3 cổng</div>
          <ul>
            <li><strong>Cổng VIA:</strong> 4 VIA cầm sống, <strong>OAuth ACTIVE</strong></li>
            <li><strong>Cổng Token:</strong> 100% TKQC đã sang BM Trung gian, token đọc được</li>
            <li><strong>Cổng Bill:</strong> mỗi BM đủ 4 Email Bill</li>
          </ul>
        </div>
        <div class="halt"><div class="lbl">Dừng khi</div><p>Thiếu 1 cổng ⟶ Ads đó ở lại <span class="st">[CHUẨN BỊ]</span>, Ads đạt vẫn vào Kho. Quá 48h chưa xong ⟶ báo CTO.</p></div>
      </div>
    </div>

    <div class="chang-arrow"><span class="ar">↓</span><span class="cap">Chuyển sang Nuôi</span></div>

    <div class="chang">
      <div class="chang-head">
        <div class="row"><span class="cn">4</span><span class="t">Đưa TKQC đi nuôi (Niêm phong, nới limit, add thẻ &amp; chi tiêu mồi)</span></div>
        <div class="m">Chuyển <span class="st">[KHO]</span> → <span class="st">[NUÔI]</span> — Phụ trách: Nuôi Ads, Quản lý duyệt</div>
      </div>
      <div class="chang-body">
        <div class="lbl">Thao tác</div>
        <ol>
          <li><strong>Lập kế hoạch nuôi</strong> trình Quản lý duyệt (gồm mã TKQC, người nuôi, Page / Link mồi, ngân sách, số ngày.)</li>
          <li><strong>Trước khi vào Nuôi</strong>: tắt hết Campaign đang chạy, hạ limit về sàn <strong>1 VND / 0.01 USD</strong>.</li>
          <li><strong>Chuyển nhóm</strong> sang <span class="st">[NUÔI]</span> của đợt.</li>
          <li><strong>Nới limit bằng NolimitGate</strong> lên mức đã duyệt (2–10 USD/TKQC). Không sửa limit tay trên Facebook.</li>
          <li><strong>Add thẻ thanh toán.</strong></li>
          <li><strong>Lên camp mồi</strong> đúng Page / Link trong kế hoạch.</li>
          <li><strong>Hoàn tất giai đoạn mồi</strong> ⟶ tắt camp mồi ⟶ Ads <strong>nằm ở <span class="st">[NUÔI]</span> chờ giao khách</strong>. <strong>Không chuyển ngược về KHO.</strong></li>
        </ol>
        <div class="done"><div class="lbl">Điều kiện PASS</div>
          <ul>
            <li>Ads <strong>đã chạy đủ ngày và chi tiêu trong ngân sách</strong></li>
            <li>Camp mồi <strong>đã tắt</strong>, Ads <strong>nằm ở <span class="st">[NUÔI]</span> chờ giao khách</strong></li>
          </ul>
        </div>
        <div class="halt"><div class="lbl">Dừng khi</div><p>Chưa có kế hoạch duyệt, sai Page / Link, vượt ngân sách, hoặc limit trên Facebook khác mức đặt. Dừng giữa chừng thì tắt camp, hạ limit về sàn, <strong>ở lại <span class="st">[NUÔI]</span></strong>.</p></div>
      </div>
    </div>

    <div class="chang-arrow"><span class="ar">↓</span><span class="cap">Chuyển sang Đang dùng</span></div>

    <div class="chang">
      <div class="chang-head">
        <div class="row"><span class="cn">5</span><span class="t">Đưa TKQC vào Đang dùng và quản lý qua NolimitTopup</span></div>
        <div class="m">Chuyển <span class="st">[NUÔI]</span> hoặc <span class="st">[KHO]</span> → <span class="st">[ĐANG DÙNG]</span> — Phụ trách: Topup</div>
      </div>
      <div class="chang-body">
        <div class="lbl">Thao tác</div>
        <ol>
          <li><strong>Kiểm trước giao</strong>: đủ 3 thành tố, không còn camp nội bộ, limit ở sàn <strong>1 VND / 0.01 USD</strong>, thẻ còn liên kết.</li>
          <li><strong>Nạp Ads vào NolimitTopup</strong> — đúng khách, BM, mã TKQC, đơn nạp.</li>
          <li><strong>Share TKQC sang BM khách quyền Advertiser.</strong> <strong>Cấm cấp Admin.</strong></li>
          <li>Chuyển sang <span class="st">[ĐANG DÙNG]</span>.</li>
          <li>NolimitTopup <strong>nới limit theo tiền khách nạp</strong> và <strong>quy tắc của đơn Topup</strong></li>
          <li><strong>Bật theo dõi chi tiêu</strong> để nhận cảnh báo khi có bất thường.</li>
        </ol>
      </div>
    </div>

    <div class="chang-arrow"><span class="ar">↓</span><span class="cap">Khi khách trả</span></div>

    <div class="chang">
      <div class="chang-head">
        <div class="row"><span class="cn">6</span><span class="t">Thu hồi khách nhưng giữ Ads ở <span class="st">[ĐANG DÙNG]</span></span></div>
        <div class="m">Ở lại <span class="st">[ĐANG DÙNG]</span> — Phụ trách: Topup</div>
      </div>
      <div class="chang-body">
        <div class="lbl">Thao tác</div>
        <ol>
          <li><strong>Gỡ quyền khách</strong>.</li>
          <li><strong>Kết thúc liên kết khách</strong> trên NolimitTopup.</li>
          <li><strong>Tắt camp khách</strong>, đưa <strong>limit về mức an toàn</strong>.</li>
          <li><strong>Giữ Ads ở lại <span class="st">[ĐANG DÙNG]</span></strong>, chờ khách mới.</li>
        </ol>
        <div class="halt"><div class="lbl">Không</div><p>Chuyển Lưu trữ, về Kho, về Nuôi.</p></div>
      </div>
    </div>

    <div class="chang-arrow"><span class="ar">↓</span><span class="cap">Khi Ads die — áp cho mọi giai đoạn</span></div>

    <div class="chang">
      <div class="chang-head">
        <div class="row"><span class="cn">7</span><span class="t">Ads die: Lưu trữ để kháng hoặc Khai tử</span></div>
        <div class="m">Chuyển vào <span class="st">[LƯU TRỮ]</span> hoặc <span class="st">[KHAI TỬ]</span> — Phụ trách: Quản lý Tài sản</div>
      </div>
      <div class="chang-body">
        <p class="intro">Áp dụng cho Ads die ở bất kỳ giai đoạn nào. Có kế hoạch kháng thì chuyển vào <span class="st">[LƯU TRỮ]</span>.</p>
        <div class="lbl">Thao tác</div>
        <ol>
          <li><strong>Chặn chi tiêu &amp; Thu hồ sơ</strong>: tắt camp, hạ limit về sàn <strong>1 VND / 0.01 USD</strong>, gỡ quyền khách và lưu thông tin lỗi.</li>
          <li><strong>Còn nút kháng ⟶ <span class="st">[LƯU TRỮ]</span></strong>: chuyển Lưu trữ và tiến hành gửi kháng.</li>
          <li><strong>Kháng thành công</strong>: kiểm đủ 3 thành tố, đã từng lên Topup về <span class="st">[ĐANG DÙNG]</span>, chưa thì về <span class="st">[KHO]</span>.</li>
          <li><strong>Kháng thất bại ⟶ <span class="st">[KHAI TỬ]</span></strong>.</li>
        </ol>
        <div class="halt"><div class="lbl">Cấm</div><p>Xóa bản ghi, log, lịch sử xử lý.</p></div>
      </div>
    </div>
  </section>

  <!-- 4 -->
  <section class="block">
    <h2><span class="n">4</span> Các đường chuyển giai đoạn bị cấm hẳn</h2>
    <p>Một số chặng đổi giai đoạn bị cấm, không có điều kiện đổi giai đoạn, không được vượt cổng.</p>
    <div class="ban-list">
      <div class="ban-card">
        <div class="ban-head">
          <span class="ban-icon">🚫</span>
          <span>CẤM: <span class="st">[CHUẨN BỊ]</span> → <span class="st">[NUÔI]</span> hoặc <span class="st">[ĐANG DÙNG]</span></span>
        </div>
        <div class="ban-reason"><strong>Vì sao cấm:</strong> Chưa qua Kho là chưa được nghiệm thu chuẩn vận hành.</div>
        <div class="ban-action">
          <span class="arrow">➔</span>
          <div><strong>Hành động đúng:</strong> Bắt buộc vào <strong>KHO</strong> trước, rồi mới đi nuôi hoặc giao khách (hàng đã nuôi từ trước thì từ Kho giao thẳng được).</div>
        </div>
      </div>

      <div class="ban-card">
        <div class="ban-head">
          <span class="ban-icon">🚫</span>
          <span>CẤM: <span class="st">[NUÔI]</span> → <span class="st">[KHO]</span> <em>(Không đi lùi)</em></span>
        </div>
        <div class="ban-reason"><strong>Vì sao cấm:</strong> Luồng đi một chiều, không có đường lùi.</div>
        <div class="ban-action">
          <span class="arrow">➔</span>
          <div><strong>Hành động đúng:</strong> Dừng nuôi thì Ads <strong>ở lại NUÔI</strong>, hạ limit về mức sàn.</div>
        </div>
      </div>

      <div class="ban-card">
        <div class="ban-head">
          <span class="ban-icon">🚫</span>
          <span>CẤM: <span class="st">[ĐANG DÙNG]</span> → <span class="st">[KHO]</span> hoặc <span class="st">[NUÔI]</span></span>
        </div>
        <div class="ban-reason"><strong>Vì sao cấm:</strong> Ads đã chạy quảng cáo mà về nằm im trong kho thì dễ die hơn; đã lên Topup thì không nuôi lại.</div>
        <div class="ban-action">
          <span class="arrow">➔</span>
          <div><strong>Hành động đúng:</strong> Khách trả thì Ads <strong>ở lại ĐANG DÙNG</strong>, gỡ quyền khách, reseal, chờ khách mới.</div>
        </div>
      </div>

      <div class="ban-card">
        <div class="ban-head">
          <span class="ban-icon">🚫</span>
          <span>CẤM: <span class="st">[LƯU TRỮ]</span> → <span class="st">[NUÔI]</span></span>
        </div>
        <div class="ban-reason"><strong>Vì sao cấm:</strong> Đợt nuôi cũ đã đứt, không nối lại được.</div>
        <div class="ban-action">
          <span class="arrow">➔</span>
          <div><strong>Hành động đúng:</strong> Kháng xong đưa về <strong>KHO</strong>, lập kế hoạch nuôi mới.</div>
        </div>
      </div>

      <div class="ban-card">
        <div class="ban-head">
          <span class="ban-icon">🚫</span>
          <span>CẤM: <span class="st">[KHAI TỬ]</span> → Bất kỳ đâu</span>
        </div>
        <div class="ban-reason"><strong>Vì sao cấm:</strong> Một chiều vĩnh viễn, kể cả về <span class="st">[CHUẨN BỊ]</span>.</div>
        <div class="ban-action">
          <span class="arrow">➔</span>
          <div><strong>Hành động đúng:</strong> Không có đường phục hồi. Cân nhắc kỹ trước khi phê duyệt khai tử.</div>
        </div>
      </div>
    </div>
  </section>

  <!-- 5 -->
  <section class="block">
    <h2><span class="n">5</span> Các tình huống bất thường cần có cảnh báo</h2>
    <div class="alerts">
      <div class="alert">
        <div class="a-t">CẢNH BÁO 1: Mất VIA cầm hoặc lỗi OAuth</div>
        <div class="a-cond">VIA cầm <strong>mất quyền Admin</strong>, hoặc <strong>OAuth lỗi</strong>; <strong>dưới 2 VIA</strong> thì phải chuyển về CHUẨN BỊ.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 2: Không đủ VIA dự phòng</div>
        <div class="a-cond">BM ở KHO hoặc ĐANG DÙNG <strong>chỉ còn 1 VIA cầm</strong>, hoặc <strong>không còn VIA nào</strong>; phải bổ sung hoặc chuyển về CHUẨN BỊ.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 3: Đứt hạ tầng quan sát</div>
        <div class="a-cond">Ads ở NUÔI, ĐANG DÙNG hoặc KHO bị <strong>đứt System User Token</strong> (gỡ khỏi BM Trung gian) hoặc BM <strong>thiếu Email Bill</strong>; phải chuyển về CHUẨN BỊ.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 4: Chi tiêu ở giai đoạn cấm</div>
        <div class="a-cond">Ads trong KHO, CHUẨN BỊ, LƯU TRỮ hoặc KHAI TỬ <strong>có chi tiêu</strong>, phát sinh <strong>Campaign ACTIVE</strong>.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 5: Limit NolimitTopup không khớp</div>
        <div class="a-cond">Limit <strong>lệch số tiền khách nạp</strong>, <strong>sai khách hàng</strong> hoặc <strong>sai mã TKQC</strong>.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 6: Chi tiêu bất thường</div>
        <div class="a-cond">Chi tiêu thực tế <strong>vượt mức NolimitTopup quy định</strong> hoặc hệ thống đếm chi tiêu phát hiện <strong>biến động bất thường</strong>.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 7: Thu hồi sót quyền</div>
        <div class="a-cond">Hệ thống <strong>đã ghi nhận thu hồi</strong> nhưng BM khách <strong>vẫn còn quyền Advertiser</strong> trên Facebook.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 8: Không xác định được Email Bill</div>
        <div class="a-cond">Có <strong>Activity hoặc hóa đơn Facebook</strong> nhưng <strong>không dò được email nhận Bill</strong> tương ứng trong hệ thống.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 9: Gắn thẻ ở giai đoạn cấm</div>
        <div class="a-cond">Ads ngoài Nuôi và Đang dùng (ở CHUẨN BỊ, KHO, LƯU TRỮ, KHAI TỬ) mà <strong>bị gắn thẻ thanh toán</strong>.</div>
      </div>
      <div class="alert">
        <div class="a-t">CẢNH BÁO 10: Limit bị nâng ở giai đoạn cấm</div>
        <div class="a-cond">Ads ngoài Nuôi và Đang dùng (ở CHUẨN BỊ, KHO, LƯU TRỮ, KHAI TỬ) mà <strong>limit bị nới/nâng</strong> (hạ về sàn không tính).</div>
      </div>
    </div>
  </section>

  <!-- 6 -->
  <section class="block">
    <h2><span class="n">6</span> Ví dụ vận hành thực tế</h2>
    <p>Các ví dụ dưới đây tập trung vào điểm chuyển trạng thái và quyết định dễ nhầm nhất.</p>
    <div class="cases">
      <div class="case">
        <div class="c-path">CHUẨN BỊ → KHO → NUÔI → ĐANG DÙNG</div>
        <div class="c-t">Lô mới bắt đầu vận hành</div>
        <div class="c-b">Lô mới về: share VIA cầm, OAuth, gắn Email Bill, share BM Trung gian, gỡ dấu vết bên bán ⟶ vào Kho. Ads có kế hoạch nuôi: tắt camp, hạ limit về sàn ⟶ Nuôi ⟶ nới NolimitGate ⟶ add thẻ ⟶ camp mồi. Nuôi xong nằm ở Nuôi chờ khách, Topup nạp mới sang Đang dùng.</div>
      </div>
      <div class="case">
        <div class="c-path">ĐANG DÙNG → ĐANG DÙNG</div>
        <div class="c-t">Khách trả Ads</div>
        <div class="c-b">Gỡ quyền khách, đóng liên kết Topup, tắt camp, hạ limit về mức an toàn. Ads ở lại Đang dùng chờ khách mới, không về Kho.</div>
      </div>
      <div class="case">
        <div class="c-path">ĐANG DÙNG → LƯU TRỮ → ĐANG DÙNG</div>
        <div class="c-t">Die lúc cho thuê, kháng thành công</div>
        <div class="c-b">Ads die khi đang cho thuê ⟶ Lưu trữ, gửi kháng. Kháng được, kiểm đủ 3 thành tố. Ads đã từng lên Topup nên quay về Đang dùng.</div>
      </div>
      <div class="case">
        <div class="c-path">NUÔI → LƯU TRỮ → KHO</div>
        <div class="c-t">Die lúc nuôi, kháng thành công</div>
        <div class="c-b">Ads die giữa đợt nuôi ⟶ Lưu trữ. Kháng được nhưng chưa từng lên Topup nên về Kho, kèm tắt camp và hạ limit về sàn vì thẻ đợt nuôi vẫn còn.</div>
      </div>
      <div class="case">
        <div class="c-path">ĐANG DÙNG → LƯU TRỮ → KHAI TỬ</div>
        <div class="c-t">Die, kháng thất bại</div>
        <div class="c-b">Hết nút kháng, không phục hồi được. Quản lý ghi lý do ⟶ Khai tử. Hồ sơ giữ lại để đánh giá bên bán.</div>
      </div>
      <div class="case">
        <div class="c-path">CẢNH BÁO → CHUẨN BỊ</div>
        <div class="c-t">Chỉ còn một VIA cầm</div>
        <div class="c-b">Hệ thống bắn cảnh báo số 2. Bổ sung VIA ngay; không bổ sung được thì đưa về Chuẩn bị và dừng giao khách mới.</div>
      </div>
    </div>
  </section>

  <!-- 7 -->
  <section class="block">
    <h2><span class="n">7</span> Q&amp;A — Các tình huống phát sinh</h2>
    <p>Bấm vào từng câu hỏi để xem cách xử lý thống nhất.</p>
    <details class="qa"><summary>1. Khách trả Ads thì chuyển sang nhóm nào?</summary><div class="qa-b">Không chuyển. Ads ở lại ĐANG DÙNG: gỡ quyền khách, đóng liên kết Topup, tắt camp, hạ limit về mức an toàn.</div></details>
    <details class="qa"><summary>2. Khi nào Ads được chuyển vào LƯU TRỮ?</summary><div class="qa-b">Khi Ads đã die và còn nút kháng. Lưu trữ không dùng để chứa Ads thu hồi từ khách hay Ads nằm chờ.</div></details>
    <details class="qa"><summary>3. Ads trong Lưu trữ kháng thành công thì đi đâu?</summary><div class="qa-b">Tùy lịch sử: đã từng lên Topup thì về ĐANG DÙNG; chưa từng thì về KHO, kèm tắt camp và hạ limit về sàn. Không có đường về NUÔI.</div></details>
    <details class="qa"><summary>4. Ads die có được chuyển thẳng sang Khai tử không?</summary><div class="qa-b">Chỉ khi đã kiểm tay và xác định hết nút kháng. Còn nút kháng thì bắt buộc qua LƯU TRỮ.</div></details>
    <details class="qa"><summary>5. Ads Đang dùng chưa có khách có cần đưa về Kho không?</summary><div class="qa-b">Không. Hạ limit về mức an toàn và để nguyên ở ĐANG DÙNG.</div></details>
    <details class="qa"><summary>6. Ads còn sống nhưng thiếu điều kiện vận hành thì làm gì?</summary><div class="qa-b">Chuyển về CHUẨN BỊ — cửa này vào được từ mọi giai đoạn trừ Khai tử. Xử lý cho đủ chuẩn rồi đi lại từ chặng nhập Kho.</div></details>
    <details class="qa"><summary>7. Ads trong Kho còn Campaign ACTIVE thì sao?</summary><div class="qa-b">Camp tồn của bên bán không bắt buộc tắt lúc nhập Kho, sẽ tắt ở cửa vào Nuôi. Nhưng có chi tiêu hoặc bị gắn thẻ là bất thường (cảnh báo 4, 9), phải xử lý ngay.</div></details>
    <details class="qa"><summary>8. Limit khác đơn nạp trên NolimitTopup thì lấy bên nào làm chuẩn?</summary><div class="qa-b">Lấy số đọc thực tế từ Facebook. Lệch thì truy lại đơn nạp và quyền của khách.</div></details>
    <details class="qa"><summary>9. Ads còn hai VIA cầm có cần cảnh báo không?</summary><div class="qa-b">Không. Cảnh báo số 2 chỉ bắn khi chỉ còn một VIA cầm, hoặc không còn VIA nào.</div></details>
    <details class="qa"><summary>10. Nuôi dở dang muốn dừng thì Ads về đâu?</summary><div class="qa-b">Ở lại NUÔI: tắt camp, hạ limit về sàn. Muốn giao khách vẫn đi NUÔI → ĐANG DÙNG; muốn nuôi lại thì lập kế hoạch mới, không về Kho.</div></details>
    <details class="qa"><summary>11. Có được xóa Ads đã Khai tử cho gọn không?</summary><div class="qa-b">Không. Bản ghi, log và lịch sử xử lý phải giữ nguyên để phục vụ audit.</div></details>
  </section>

  <div class="footer">
    Bản quyền thuộc Ban Công nghệ &amp; Quản lý Tài sản — Nolimit Ads Manager © 2026<br>
    Nguồn: <code>tai-lieu-khac/sop-quan-ly-vong-doi-tai-san.md</code>
  </div>

</div>
</body>
</html>

Số dòng: 567