AI Offer Workflow: từ dữ liệu ads tới đề xuất offer cho một landing page

Quy trình của Chris Koh, chạy ngày 06/10/2026. Tài liệu viết ngày 07/10/2026 cho team, đọc được khi chưa biết gì về Claude Code hay offer.

Quy trình này dùng Claude Code đọc dữ liệu thị trường của GemWatcher, tìm xem các store chạy quảng cáo lâu (tức là đang có lãi) dùng offer gì, viết lại thành một bộ luật ra quyết định, rồi dùng bộ luật đó để phân tích một landing page bất kỳ và dựng một bản tốt hơn.

  • Research 221 brand: đã chạy
  • Playbook 51 luật: đã viết
  • Mục 4 làm lại đúng từng bước: claude.ai + Claude Code nối được cả hai MCP (07/10)
  • Dựng trang trên store workshop: chạy trọn đường bằng Claude Code (07/10)
  • Dựng trang qua Connectors của claude.ai / Desktop: chưa thử
  • App Claude Desktop, Codex, Cursor, VS Code: chưa thử
  • Dựng lại trang trên Shopify theme: chưa chạy trên store thật
  • A/B test: chưa chạy

1. Tóm tắt

Chiều 06/10/2026, từ 14:40 tới 17:00, Chris gõ 12 prompt vào Claude Code và ra được ba thứ:

  1. Một bản nghiên cứu thị trường. 221 brand đang chạy ads ở 11 ngành, 1.182 trang được tải về và đọc offer. Chia brand theo số ngày ad lâu nhất của họ đã chạy, rồi so offer giữa nhóm chạy lâu và nhóm chạy ngắn.
  2. Một playbook. Một thư mục hướng dẫn tên offer-strategy-maker mà Claude Code đọc trước mỗi lần phân tích offer: 6 bước làm việc, một cây quyết định, 51 luật có mã và lý do.
  3. Một ca chạy thật. Phân tích trang sản phẩm quế Ceylon của metabolae.com, đề xuất ba chiến lược offer, dựng ba landing page mẫu và một báo cáo Trước → Sau.

Năm điều nghiên cứu tìm ra, dùng làm mặc định cho mọi phân tích sau:

Điều rút raSố liệu
Ad chạy lâu trỏ về trang sản phẩm88% trang đích của brand có ad chạy từ 60 ngày là trang sản phẩm (PDP); nhóm chạy dưới 21 ngày chỉ 41%
Offer càng gọn, ad càng sống lâuNhóm chạy lâu dùng trung bình 2,1 loại offer mỗi trang; nhóm đang scale 3,0; nhóm chạy ngắn 2,6
Khẩn cấp và quà tặng là offer của đợt saleĐếm ngược / khan hiếm: 14% ở nhóm chạy lâu, 31–33% ở hai nhóm kia. Quà: 6% so với 21–28%
Giảm nông nhưng đềuKhoảng 64% trang có giảm giá ở mọi nhóm; mức giảm trung vị của nhóm chạy lâu là 30%, hai nhóm kia 40–42%
Giá trị đơn tăng nhờ bán kèm48% trang của nhóm chạy lâu có gợi ý mua kèm (cross-sell), gấp đôi nhóm chạy ngắn (23%)
Đọc số này thế nào

"Ad chạy lâu nghĩa là có lãi" là suy luận, không phải số ROAS thật. GemWatcher không biết doanh thu từ ads của store khác. Coi năm điều trên là mặc định có bằng chứng; khi số của chính store nói khác thì số của store thắng.

2. Sơ đồ toàn bộ quy trình

Chris vẽ sơ đồ này trước khi bắt đầu. Bản dưới vẽ lại cho dễ đọc và thêm đầu ra của từng khối.

BạnGõ prompt bằng tiếng Việt trong Claude CodeKhông cần viết code. Claude tự gọi công cụ, chạy script, mở kết quả.
Nguồn dữ liệuGemWatcher MCPTheo dõi khoảng 114 nghìn store Shopify: quảng cáo đang chạy (nạp từ GetHookd mỗi thứ Bảy), điểm landing, doanh thu ước tính.
Chris gọi GemWatcher là "kho kiến thức chuyên gia": thay vì đoán, Claude hỏi dữ liệu thị trường trước (luật C-002).
Bước 1Research: store chạy ads thành công đang làm offer gì? Có bao nhiêu loại offer?Ra: dashboard offer insights, thư viện 12 loại offer có ảnh thật.
Bước 2Playbook: quy trình ra quyết định, đóng thành một skill để Claude đọc trước khi đề xuấtRa: thư mục offer-strategy-maker gồm avatar khách hàng, cây quyết định, checklist, 51 luật.
Bước 3–5Áp playbook lên một landing page: avatar → offer cho từng nhóm → checklist → so với trang hiện tại → đề xuấtRa: báo cáo có Trước → Sau, landing page dựng lại kèm chiến lược offer mới. Trong workshop, trang dựng trên store workshop của GemBoss và có link xem trước.
Chưa làmLắp vào Shopify theme của store, chạy A/B test với cùng một adChọn bản thắng theo doanh thu trên mỗi khách, không theo tỉ lệ chuyển đổi ngày đầu.

Vòng lặp: kết quả A/B của một store ghi thành luật của store đó (mã S). Lặp lại ở từ 3 store trở lên thì nâng thành luật chung (mã M hoặc C) trong playbook.

Sơ đồ gốc Chris vẽ ngày 06/10/2026: Claude Code kết nối GemMCP, research thị trường, playbook dạng skill gồm avatar, checklist, so sánh với offer hiện tại, rồi dựng lại landing page.
Sơ đồ gốc của Chris, gửi kèm prompt ở bước 2. Bấm vào ảnh để xem cỡ lớn.

3. Thuật ngữ

Đọc lướt một lần, quay lại khi gặp từ lạ. Nhóm theo chủ đề.

Công cụ

Claude Code
Trợ lý AI của Anthropic chạy trên máy bạn (cửa sổ dòng lệnh, app desktop hoặc extension VS Code). Khác chat thường ở chỗ nó tự đọc file, chạy lệnh, gọi công cụ ngoài và mở kết quả cho bạn xem.
Prompt
Câu bạn gõ cho Claude. Ở đây viết bằng tiếng Việt bình thường, không cần cú pháp đặc biệt.
MCP Model Context Protocol
Chuẩn kết nối để một AI gọi công cụ của hệ thống khác. Nối MCP của GemWatcher xong thì Claude hỏi được dữ liệu GemWatcher ngay trong cuộc trò chuyện.
Tool (của MCP)
Một câu hỏi cụ thể mà MCP trả lời được, ví dụ store_dossier trả hồ sơ một store. GemWatcher có 15 tool, đều chỉ đọc.
Khoá MCP
Chuỗi bí mật chứng minh bạn được phép gọi một MCP. Quy trình này dùng hai loại: khoá GemWatcher bắt đầu bằng gwm_, chìa GemBoss workshop bắt đầu bằng gbw_.
Connector custom connector
Mục Customize › Connectors của Claude Desktop và claude.ai, dùng để nối một MCP bằng một URL. Thêm trên claude.ai thì Claude Desktop cùng tài khoản, cùng tổ chức cũng thấy.
URL connector
URL có khoá nằm sẵn trong đường dẫn, dạng …/k/<khoá>/mcp. Dán vào Connectors là nối được, không cần đăng nhập. Ai có URL là dùng được khoá, nên giữ như mật khẩu.
Store workshop
Một store GemBoss dùng chung cho buổi workshop. Mỗi người clone và dựng trang trong đó, mỗi trang có link xem trước. Không ai publish được, nhưng ai cũng sửa được trang của người khác.
Skill / playbook
Một thư mục hướng dẫn (file chính tên SKILL.md) đặt trong ~/.claude/skills/. Claude Code tự đọc nó khi yêu cầu khớp mô tả, nên lần nào phân tích cũng đi cùng một quy trình.
GemWatcher
Hệ thống nội bộ theo dõi khoảng 114 nghìn store: trang nào mới, đổi gì, ai đang chạy ads, điểm landing. Đây là nguồn dữ liệu chính của quy trình.
GetHookd
Dịch vụ thu thập quảng cáo Meta đang chạy. GemWatcher nạp dữ liệu này mỗi thứ Bảy, nên bạn không cần gọi GetHookd trực tiếp.
Crawl
Cho máy tự tải trang web về để đọc. Bước 1 đã crawl 1.182 trang.
Artifact
Trang web Claude tạo trên claude.ai để trình bày kết quả (dashboard, báo cáo). Mặc định riêng tư, chủ sở hữu bấm Share mới chia sẻ được.

Quảng cáo và bán hàng

Landing page
Trang khách tới sau khi bấm quảng cáo. Trang này có một nhiệm vụ: chốt đơn.
PDP Product Detail Page
Trang chi tiết một sản phẩm. Ad chạy lâu thường trỏ thẳng về PDP chứ không về trang danh mục.
Advertorial
Trang dạng bài viết (kể chuyện, "5 lý do…") dẫn khách sang trang mua. Thực phẩm chức năng và sức khoẻ dùng rất nhiều.
Ad evergreen
Quảng cáo chạy lâu dài, không gắn dịp. Trang của nó phải gọn: tối đa 3 offer, không đếm ngược.
Campaign / đợt
Quảng cáo có ngày kết thúc (Black Friday, sale hè). Được xếp nhiều offer hơn và dùng hạn chót thật.
Tuổi ad max_days_active
Số ngày quảng cáo lâu nhất của brand đã chạy. Brand tắt ad lỗ rất nhanh, nên ad sống 60 ngày trở lên được coi là có lãi. Đây là suy luận, không phải số thật.
CVR tỉ lệ chuyển đổi
Phần trăm khách vào trang rồi mua.
AOV giá trị đơn trung bình
Mỗi đơn trung bình bao nhiêu tiền. Bán kèm, bậc số lượng, ngưỡng freeship đều nhắm vào AOV.
CAC
Chi phí để có một khách mua, chủ yếu là tiền quảng cáo.
ROAS
Doanh thu chia tiền quảng cáo. GemWatcher không có số này của store khác.
Biên lợi nhuận
Phần còn lại sau giá vốn, ship, phí thanh toán. Biên mỏng thì không giảm sâu được.
A/B test
Chia khách làm hai nhóm, mỗi nhóm xem một phiên bản, so kết quả. Mọi đề xuất của playbook là giả thuyết để test, không phải lời hứa tăng trưởng.

Offer

Offer
Lý do để khách mua ngay ở đây: giảm giá, freeship, quà, bảo đảm hoàn tiền, gói nhiều món…
Đòn bẩy lever
Một loại offer. Playbook có 12 loại, liệt kê ngay dưới đây.
Offer package
Bộ offer được chọn cho một trang, xếp theo 4 tầng (Nền, AOV, Gỡ rủi ro, Đợt) và có lý do cho từng món.
Giá gạch compare-at price
Giá cũ bị gạch ngang cạnh giá bán. Phải là giá đã từng bán thật; ở EU tính theo giá thấp nhất 30 ngày trước.
Freeship có ngưỡng
Miễn phí ship cho đơn từ X đô. Ngưỡng trung vị thị trường là $70. Đẩy khách mua thêm một món, nhưng phải tính lãi trước khi bật.
Bảo đảm / hoàn tiền
Cam kết trả lại tiền trong N ngày. 30 ngày là chuẩn; 60–100 ngày để nổi bật.
Bậc số lượng volume / tier bundle
Mua 1 / 2 / 3 món, mua nhiều giá mỗi món rẻ hơn. Bậc giữa thường ghi "Most popular".
BOGO
Buy One Get One: mua một tặng một. Hợp hàng rẻ, biên cao.
Gói khởi đầu starter kit
Sản phẩm chính kèm 2–3 phụ kiện, rẻ hơn mua lẻ 10–15%. Dùng cho đồ bền mua một lần.
Cross-sell
Gợi ý món khác đi kèm: "Complete the look", "Frequently bought together".
Upsell
Mời khách nâng lên bản lớn hơn hoặc mua thêm, ví dụ nâng gói 30 ngày lên 90 ngày.
Order bump
Ô tick thêm một món nhỏ ngay ở trang thanh toán. Trên Shopify cần gói Plus.
Upsell sau mua post-purchase
Mời mua thêm một chạm ngay sau khi khách trả tiền xong.
Subscribe & save
Đăng ký giao định kỳ, rẻ hơn 10–20%. Chỉ cho hàng dùng hết rồi mua lại. Phải nói rõ chu kỳ và cách huỷ.
Trả góp BNPL
Chia tiền thành nhiều kỳ (Klarna, Afterpay, Shop Pay Installments). Dùng khi giá trên khoảng $100 (luật R-017).
Khẩn cấp / khan hiếm
Đếm ngược, "chỉ còn 3 cái". Chỉ dùng khi hạn chót là thật. Giả thì vi phạm luật ở EU, UK, US, India.
Quà tặng GWP
Tặng kèm khi đơn đạt ngưỡng. Là offer của đợt, ít thấy ở ad chạy lâu (6%).
Sale theo dịp / mã giảm giá
Hai loại cuối trong 12 đòn bẩy. Mã giảm giá hợp để đo kênh (mã riêng cho KOL), nhưng mỗi lần bắt khách tự gõ mã là thêm một chỗ khách bỏ đi.

Phương pháp của playbook

Avatar / persona
Chân dung một nhóm khách, gồm 4 ô: Bio (họ là ai), Motivation (vì sao mua lúc này), Pain (điều làm họ chần chừ), Behavior (săn sale, tìm trải nghiệm, mua quà, mua lặp lại…). Mỗi trang dựng 2–4 avatar.
Cây quyết định N0–N6
7 câu hỏi đo được, trả lời lần lượt để thu hẹp offer nên dùng: đủ bằng chứng chưa, evergreen hay đợt, kiểu mua, giá và rủi ro, danh mục, biên lợi nhuận, thị trường.
Mã luật
Mỗi luật có mã để trích trong báo cáo: C- luật của Chris, S- số của chính store, M- số thị trường từ GemWatcher, R- nghiên cứu bên ngoài, L- luật pháp.
Độ tin
Mỗi luật ghi nguồn mạnh, vừa hay yếu. Nghiên cứu có bình duyệt là mạnh; blog của agency là yếu.
Màn đầu above the fold
Phần trang thấy được trên điện thoại trước khi cuộn. Khách từ ad Meta phần lớn dùng điện thoại.
Buy box
Khối chọn biến thể, số lượng và nút mua trên trang sản phẩm.
Vùng V1–V9
9 chỗ đặt offer trên hành trình mua: màn đầu, buy box, dưới buy box, thân trang, nút mua dính, giỏ, checkout, sau mua, popup email.
Sticky ATC / cart drawer
Nút "thêm vào giỏ" dính đáy màn hình; giỏ hàng trượt ra từ cạnh phải.
Widget / app block
Khối giao diện của một app (Kaching cho bậc số lượng, Rebuy cho mua kèm, UpCart cho giỏ, Recharge cho subscribe) cắm vào trang.
Shopify theme OS 2.0
Giao diện store Shopify. Gồm template (khung một loại trang), section (khối nội dung kéo thả), app block. Playbook dựng lại trang bằng template riêng trên một bản sao theme chưa publish.

4. Chuẩn bị máy

Bốn thứ, làm một lần: Claude Code, GemWatcher MCP để đọc dữ liệu thị trường, GemBoss workshop MCP để dựng trang, và playbook.

4.1 Claude Code

  1. Cài Claude Code theo hướng dẫn ở claude.com/claude-code. Dùng bản dòng lệnh, app desktop hay extension VS Code đều được.
  2. Đăng nhập bằng tài khoản Claude (gói Pro hoặc Max). Quy trình này chạy hoàn toàn bằng gói subscription.
  3. Cài Node.js 18 trở lên (nodejs.org). Claude cần nó để chụp màn hình trang.
Claude Code hay Claude Desktop?

Cả hai đều nối được hai MCP bên dưới. Phần nghiên cứu nặng (tải trang, chụp màn hình, chạy script) cần Claude Code. Claude Desktop và claude.ai hợp để hỏi dữ liệu và dựng trang qua MCP; hai nơi này có mục Customize › Skills để tải skill lên, nhưng playbook này mới chạy thử trong Claude Code.

Không dùng khoá API trả phí

Luật của fleet (04/10/2026): khoá API Anthropic/OpenAI trả phí chỉ dành cho production của GemBoss. Phân tích, research, dựng trang ở đây đều chạy bằng gói Claude của chính bạn (Claude Code, Desktop hoặc claude.ai).

4.2 GemWatcher MCP: đọc dữ liệu thị trường

Nối xong thì bạn hỏi được những câu như "brand nào ngành supplement đang chạy ads lâu nhất" và Claude tự gọi GemWatcher để trả lời. Dùng ở bước 1, 3, 5, 6.

Người quản trị (Chris)GemWatcher › Settings › AI tools (MCP) › Create keyTạo một khoá cho mỗi người, đặt tên theo người và công cụ, ví dụ lan-claude-code. Khoá chỉ hiện đầy đủ một lần.
BạnDán URL connector vào Claude Desktop / claude.ai, hoặc khoá vào Claude Code / Codex / Cursor / VS CodeMột URL, một lệnh hoặc một đoạn cấu hình, ở mục ngay dưới.
GemWatcherhttps://gemwatcher-api-production.up.railway.app/mcp15 tool chỉ đọc. Khoá chỉ mở cửa này, không mở dashboard và không sửa được gì.

Bước A · Có khoá

Thành viên team không cần vào dashboard GemWatcher. Nhắn Chris xin một khoá MCP mang tên bạn.

Người có quyền dashboard tạo khoá như sau:

  1. Bấm Settings ở chân thanh bên trái (hoặc trong menu tài khoản). Một hộp thoại mở đè lên màn đang xem.
  2. Ở cột trái chọn nhóm Assistant › AI tools (MCP). Gõ "key" vào ô Search settings cũng ra.
  3. Step 1 · Create a key: đặt tên tối đa 17 ký tự (chữ thường, số, -, _), bấm Create key, bấm Copy key. GemWatcher chỉ giữ dấu vân tay của khoá, đóng hộp thoại là không xem lại được nữa.
  4. Step 2 · Add it to your tool: chọn công cụ của người nhận. Tab Claude Desktop / web hiện sẵn URL connector, các tab khác hiện lệnh đã điền khoá.
  5. Step 3 · Check it works: bấm Check the key. Hiện "Working · 15 tools" là khoá chạy. Ở tab Claude Desktop / web, nút này kiểm đúng URL connector.

Mọi lượt gọi bằng khoá hiện ở mục Usage › Callers với tên mcpkey-<tên>. Thu hồi bằng nút Revoke ở danh sách Keys; công cụ dùng khoá đó ngừng chạy trong vòng 10 giây.

Bước B · Gắn khoá vào công cụ của bạn

Thay <KHOÁ_CỦA_BẠN> bằng khoá nhận được (bắt đầu bằng gwm_).

claude.ai hoặc Claude Desktop (không cần cài gì thêm). Đã thử thật trên claude.ai ngày 07/10/2026; app Claude Desktop dùng chung mục Connectors với claude.ai nhưng chưa thử trực tiếp:

  1. Mở Customize › Connectors (mục cũ Settings › Connectors giờ chỉ trỏ sang đây), bấm Add › Add custom connector.
  2. Đặt tên GemWatcher, dán URL connector dưới đây vào ô MCP server URL, bấm Continue. Claude tự kiểm server và chọn sẵn No sign-in. Bấm Add.
  3. Trên trang của connector bấm Connect. Hiện "Connected to GemWatcher" và danh sách 15 tool là xong. Danh sách tool còn trống thì tải lại trang (hoặc bấm ⋯ › Refresh tools list trên trang connector): lần làm theo tài liệu ngày 07/10 phải tải lại một lần mới hiện đủ 15.
  4. Trong cuộc trò chuyện mới, GemWatcher nằm ở menu + › Connectors. Lần đầu Claude gọi tool, bấm Allow once hoặc Always allow.
URL connector
https://gemwatcher-api-production.up.railway.app/k/<KHOÁ_CỦA_BẠN>/mcp
Cách an toàn hơn: khoá trong header, không nằm trong URL

Ô MCP server URL dán https://gemwatcher-api-production.up.railway.app/mcp (không có khoá). Ở bước 2 chọn No sign-in, bấm Add header, chọn tên x-api-key, ô Value dán khoá trần (gwm_…, không có chữ Bearer). claude.ai lưu giá trị header đã mã hoá và không hiện lại.

Ba điều gặp khi thử
  • Tài khoản phải có seat trong tổ chức đang chọn thì mới chat được. Tổ chức Team mà chưa gán seat sẽ báo "No seat assigned".
  • Quản trị viên của tổ chức Team thêm connector thì connector đó hiện cho cả tổ chức (đo bằng tài khoản quản trị). Ở tổ chức Team, thành viên thường có thể không tự thêm được. Dự workshop thì dùng tài khoản Claude cá nhân (Pro/Max) để mỗi người tự thêm bằng khoá của mình; đừng để một connector chứa khoá của một người hiện cho cả tổ chức.
  • Dán URL mà quên thay <KHOÁ_CỦA_BẠN>, hoặc khoá bị cắt thiếu, thì claude.ai chỉ báo không nối được (server trả 404, không phải 401). Kiểm lại URL trước.

Claude Code (chạy một lần trong Terminal; --scope user để dùng được ở mọi thư mục):

Terminal
claude mcp add --transport http --scope user gemwatcher https://gemwatcher-api-production.up.railway.app/mcp --header "Authorization: Bearer <KHOÁ_CỦA_BẠN>"
Claude Desktop bản cũ chưa có mục Connectors

Dùng cầu nối mcp-remote (cần Node.js 18+):

  1. Claude Desktop › Settings › Developer › Edit Config. File claude_desktop_config.json mở ra.
  2. Dán đoạn dưới. Nếu file đã có mcpServers, chỉ thêm phần gemwatcher vào trong đó.
  3. Thoát hẳn Claude Desktop (⌘Q) rồi mở lại.
claude_desktop_config.json
{
  "mcpServers": {
    "gemwatcher": {
      "command": "npx",
      "args": ["-y", "mcp-remote@latest", "https://gemwatcher-api-production.up.railway.app/mcp", "--transport", "http-only", "--header", "Authorization:${GEMWATCHER_AUTH}"],
      "env": { "GEMWATCHER_AUTH": "Bearer <KHOÁ_CỦA_BẠN>" }
    }
  }
}

Codex (thêm dòng export vào ~/.zshrc để còn sau khi khởi động lại máy):

Terminal
export GEMWATCHER_MCP_KEY="<KHOÁ_CỦA_BẠN>"
codex mcp add gemwatcher --url https://gemwatcher-api-production.up.railway.app/mcp --bearer-token-env-var GEMWATCHER_MCP_KEY

Cursor: thêm vào ~/.cursor/mcp.json (tạo file nếu chưa có), rồi tải lại Cursor.

~/.cursor/mcp.json
{
  "mcpServers": {
    "gemwatcher": {
      "url": "https://gemwatcher-api-production.up.railway.app/mcp",
      "headers": { "Authorization": "Bearer <KHOÁ_CỦA_BẠN>" }
    }
  }
}

VS Code (cần lệnh code: Command Palette › "Shell Command: Install"):

Terminal
code --add-mcp '{"name":"gemwatcher","type":"http","url":"https://gemwatcher-api-production.up.railway.app/mcp","headers":{"Authorization":"Bearer <KHOÁ_CỦA_BẠN>"}}'

Bước C · Kiểm tra

  1. Claude Code: gõ /mcp, dòng gemwatcher phải ở trạng thái connected (ở Terminal thì claude mcp list). Claude Desktop / claude.ai: trang connector hiện "Connected" và 15 tool. Nếu nối qua mcp-remote: GemWatcher hiện trong menu công cụ của cuộc trò chuyện mới.
  2. Mở cuộc trò chuyện mới và hỏi:
Câu thử
Dùng tool pulse của gemwatcher: hôm nay thị trường có gì đáng xem?

Claude trả về số store đang theo dõi, trang mới và đổi trong 7 ngày là đã nối được. Báo lỗi 401 nghĩa là khoá sai hoặc đã bị thu hồi.

15 tool của GemWatcher

ToolTrả lời câu hỏiDùng ở bước
store_dossierHồ sơ trọn gói một store: doanh thu ước tính, traffic, hạng star / rising, gốc hàng, landing đã chấm, app upsell. Gọi đầu tiên.1, 3, 5
ad_intelAi đang chạy quảng cáo: 25 brand chạy nhiều nhất mỗi ngành, số ad, tuổi ad dài nhất.1, 5
page_landing_scoreĐiểm một trang theo 25 dấu hiệu landing, kèm sự kiện cho biết trang có là đích của ad không.1, 3
search_storesTìm store theo tên miền, ngành, hạng.5
list_pagesLiệt kê trang theo loại × ngành × điểm, ví dụ "20 advertorial tốt nhất ngành X".5, 6
audit_marketTrang landing của một store so với chuẩn ngành.3
store_profilePhong cách thị giác của store: màu, font, kiểu nút, kiểu hero.3
landing_boardLanding điểm cao nhất, phân bố hạng A/B/C/D theo ngành.6
landing_motifsTỉ lệ landing có từng khối (FAQ, so sánh, bảo đảm) theo ngành và theo tuần.6
band_sequenceThứ tự các khối trên trang thật theo ngành: offer, review, FAQ thường nằm ở đâu.6
image_refsẢnh tham chiếu thật theo loại trang và ngành, chỉ để tham khảo bố cục.dựng trang
image_playbookMột vị trí trên trang thường dùng mấy ảnh, ảnh kiểu gì.dựng trang
pulseSố tổng quan: store đang theo dõi, trang mới / đổi / mất trong 7 ngày.kiểm tra kết nối
recent_eventsChuyển động mới nhất: landing mới, đổi giá, trang mất.6
decisionsTín hiệu đáng hành động hôm nay: store chạy ads ra trang mới, giảm sâu, campaign thắng bị dừng.6
GemWatcher không có

ROAS, CVR, AOV thật của store khác, và nội dung trong giỏ, popup, checkout. Đừng trích các số đó.

Giữ khoá như mật khẩu
  • Không dán khoá vào chat nhóm, tài liệu chung, hay file trong repo.
  • Mỗi người, mỗi công cụ một khoá, để thu hồi một khoá không làm hỏng của người khác.
  • Lỡ lộ khoá: báo Chris thu hồi ngay rồi xin khoá mới.

4.3 GemBoss workshop MCP: dựng trang trên store workshop

Dùng ở bước 3 để dựng landing theo chiến lược offer và lấy link xem trước, không cần store Shopify của riêng bạn. Chìa tự lấy, không cần tài khoản.

  1. Mở gemboss.ai/workshop/mcp, nhập mã workshop (người tổ chức phát trong buổi), bấm Get my key.
  2. Trang trả về URL connector của bạn, dạng https://mcp.gemboss.ai/k/gbw_…/mcp. Chìa sống 7 ngày, hoặc tới khi người tổ chức đóng workshop hay đổi mã (lúc đó lấy chìa mới và thay URL trong connector).
  3. Claude Desktop / claude.ai: Customize › Connectors › Add › Add custom connector, đặt tên GemBoss workshop, dán URL, Continue. claude.ai tự chọn No sign-in (thử 07/10); nếu nó chọn "Sign in now" thì đổi sang No sign-in, vì người dự workshop không có tài khoản GemBoss để đăng nhập. Add, bấm Connect, rồi bật connector và bấm Allow trong chat như mục 4.2. Đọc cả phần "Ba điều gặp khi thử" ở mục 4.2.
    • Trang connector báo chưa có tool: tải lại trang, hoặc bấm ⋯ › Refresh tools list. Lần thử 07/10 ra 56 tool đọc và 17 tool ghi.
    • Connect báo lỗi, hoặc claude.ai đòi đăng nhập: chìa sai hoặc đã hết hạn (quá 7 ngày, hoặc người tổ chức đổi mã / đóng workshop). Lấy chìa mới ở gemboss.ai/workshop/mcp và thay URL.
  4. Claude Code: chạy một lần lệnh dưới.
Terminal
claude mcp add --transport http --scope user gemboss-workshop <URL_CONNECTOR_CỦA_BẠN>

Kiểm tra bằng một lệnh chỉ đọc trước khi dựng trang. Claude trả về danh sách trang trong store workshop là đã nối đúng chỗ:

Câu thử
Using GemBoss workshop, list the pages in the workshop store.

Không cần ghi tên store: chìa workshop chỉ mở đúng một store và tự dùng store đó. Nếu Claude hỏi lại "store nào" hoặc báo cần shop_id:

Chìa workshopLàm đượcKhông làm được
Dựng trangClone một URL, dựng trang từ brief, sửa từng khối, xem trước trên desktop và mobilePublish, archive, đổi cài đặt store, sửa sản phẩm, cài plugin, sinh ảnh, tạo offer / discount thật (bậc giá trên trang chỉ để trình bày)
ĐọcTrang, danh mục, số liệu của store workshop, và dữ liệu tham chiếu thị trường của GemBossTool offer của GemBoss (gem.analyze_offer…): phân tích offer là việc của playbook trong Claude của bạn
Lần clone thử ngày 07/10

Lấy chìa ở gemboss.ai/workshop/mcp → Claude Code (chỉ nối chìa đó) clone một trang sản phẩm thật vào store workshop → ra trang nháp và link xem trước, mở được ở khổ 1280 và 390 px, không tràn ngang. Điểm giống bản gốc Claude tự chấm: desktop 0,74, mobile 0,65, tức bản mobile lệch nhiều hơn. Những chỗ khác bản gốc, nên biết trước:

  • Font riêng của brand có thể không tải được, chữ tiêu đề trông khác bản gốc.
  • Review của brand không được chép sang (GemBoss không chép review của người khác), trang hiện "No reviews yet".
  • Nút Add to cart chỉ để nhìn: trang clone không gắn với sản phẩm có thể mua.
  • Lần thử, URL gốc redirect sang trang 404 và Claude tự tìm sản phẩm ở URL khác. Luôn kiểm tên sản phẩm trên trang clone.
Phòng chung
  • Mọi người dựng trong cùng một store workshop. Người khác thấy được, và sửa được, trang bạn làm. Đặt tên trang có tên bạn, và nhắc Claude chỉ sửa trang mang tên bạn.
  • Chìa trong URL là của riêng bạn, đừng gửi lên nhóm chat.
  • Máy đã nối GemBoss thật (gemboss, gemboss-admin, thường là máy staff) thì tắt hai MCP đó trong buổi workshop. Cùng tên tool, Claude có thể clone nhầm vào store thật của người bán.

Hai MCP khác nhau thế nào

GemWatcherGemBoss workshop
Dùng đểĐọc thị trường: ai chạy ads, offer gì, điểm landingDựng và xem trước landing page
Khoá bắt đầu bằnggwm_gbw_
Lấy khoá ở đâuChris tạo cho từng ngườiTự lấy ở gemboss.ai/workshop/mcp bằng mã workshop
Hết hạnTới khi bị thu hồiSau 7 ngày
Tên khi nốiGemWatcher / gemwatcherGemBoss workshop / gemboss-workshop
QuyềnChỉ đọcĐọc + dựng trang trên store workshop

Nối cả hai rồi thì nói rõ tên trong prompt ("dùng GemWatcher…", "dùng GemBoss workshop…") để Claude gọi đúng chỗ.

4.4 Cài playbook

Playbook là thư mục workflows/ai-offer/offer-strategy-maker trong repo chriskoh26/gemoffer (repo riêng tư, nhờ Chris cấp quyền đọc). Chép nó vào thư mục skill của Claude Code:

Terminal
git clone https://github.com/chriskoh26/gemoffer.git
mkdir -p ~/.claude/skills
cp -R gemoffer/workflows/ai-offer/offer-strategy-maker ~/.claude/skills/

Mở phiên Claude Code mới. Gõ "phân tích offer trang <URL>" là Claude tự đọc playbook trước khi làm. Muốn chắc, nói thẳng "dùng skill offer-strategy-maker".

5. Các bước và prompt

Mỗi bước có prompt Chris đã gõ (giữ nguyên văn, kể cả lỗi gõ), Claude đã làm gì, ra cái gì, và một mẫu để bạn chạy với store của mình. Giờ ghi theo giờ Việt Nam ngày 06/10/2026.

1Research offer của store chạy ads thành công

Prompt của Chris · 14:40
Step 1: Dùng MCP của Gemwatcher để research chiến thuật offer của các store đang bán hàng thàn công build một tool đi đọc landing page đang chạy ads trên thị trường ... vào gethook => landing page đang chạy ads => crawl lấy url => phân tích good & bad của landing page đấy, và chỉ ra những landing page mà chạy được ads lâu (họ phải kiếm được tiền), đặc điểm offer của họ có điểm chung gì. => note lại một offer strategy insights Step 2: phân tích một cái landing page hiện tại và tìm ra khoảng trống cơ hội để làm offer tốt hơn. bây giờ bạn hãy giúp tôi connect vào gemwatcher mcp và query tìm ra những những dữ liệu tốt ví dụ như từ những store có doanh thu cao, hay store lịch sử chạy ads hoặc số lượng ads nhiều (chứng tỏ họ bỏ tiền ra nhiều) rồi sau đó build một quick dashboard offer insights mà bạn thấy được

Claude đã làm:

  1. Gọi ad_intel cho 11 ngành, lấy 25 brand chạy nhiều ad nhất mỗi ngành, gộp còn 221 brand.
  2. Gọi store_dossier từng brand (doanh thu ước tính, hạng, các trang đã chấm), rồi page_landing_score từng trang để biết trang nào là đích của ad.
  3. Tải 1.182 trang và file giá products/<handle>.js, đọc offer trên từng trang: giảm giá, freeship, bậc số lượng, bảo đảm, khẩn cấp, quà…
  4. Chia brand làm ba nhóm theo tuổi ad dài nhất: chạy lâu (từ 60 ngày, 100 brand), đang scale (21–59 ngày, 60 brand), chạy ngắn (dưới 21 ngày, 61 brand). Doanh thu trung vị ba nhóm gần nhau ($461K / $619K / $622K mỗi tháng), nên khác biệt không đến từ cỡ store.
  5. Dựng một dashboard so offer ba nhóm.

Ra: dashboard offer insights, năm điều ở mục 1, và bộ số trong references/benchmarks.md của playbook.

Prompt tiếp · 15:00
có thể cho thêm hình min hoạ cho dễ hiểu hơn

Ra: thư viện 12 loại offer, 54 ảnh cắt từ màn hình điện thoại của store thật, kèm ví dụ đối chứng.

Mẫu dùng lại
Dùng MCP GemWatcher tìm các brand ngành [tên ngành] đang chạy ads lâu nhất (ad_intel, store_dossier). Crawl trang đích của họ, so offer của nhóm có ad chạy từ 60 ngày với nhóm dưới 21 ngày, rồi làm một dashboard offer insights có ảnh minh hoạ.
Mẹo

Nói rõ tiêu chí "thành công" bạn muốn dùng (tuổi ad, số ad, doanh thu ước tính). Claude sẽ chia nhóm theo đúng tiêu chí đó và cho bạn thấy nhóm nào khác nhóm nào.

2Viết playbook ra quyết định

Prompt của Chris · 15:31 (kèm sơ đồ ở mục 2)
tôi đã có file research giờ tôi muốn file playbook về phương pháp ra quyết định khi phân tích một store xem nên quyết định tạo ra một offer package ntn là hợp lý bạn hãy viết cho tôi một file offer strategy maker playbook vv để làm guideline để đi phân tích và đưa ra suggestion về offer strategy của mọi trang landing page input vào

Claude đã làm: viết playbook dưới dạng skill của Claude Code. Song song, một agent con tìm nghiên cứu bên ngoài (Baymard, các meta-analysis, A/B test công khai, văn bản luật) và phân loại nguồn mạnh / yếu. Nghiên cứu đó sửa ba chỗ trong playbook:

Prompt tiếp · 15:47
đây là một dự án riêng ko liên quan đến gemboss bạn hãy mở file playbook tôi xem

Ra: thư mục offer-strategy-maker với 6 bước, cây quyết định N0–N6, 12 đòn bẩy, 9 vùng đặt widget, phần dựng lại trang trên Shopify theme, 51 luật. Xem chi tiết ở mục 6.

Mẫu dùng lại
Từ file research này, viết một playbook (skill của Claude Code) để ra quyết định offer package cho mọi landing page: các bước làm, cây quyết định với câu hỏi đo được, luật có mã kèm lý do và nguồn. Luật của tôi đặt ở tầng cao nhất.
Mẹo

Vẽ sơ đồ quy trình bằng tay (giấy, Whimsical, FigJam) rồi gửi ảnh kèm prompt. Claude bám theo đúng các bước bạn vẽ, và ghi chúng thành luật C- của bạn.

3Chạy playbook trên một trang thật

Prompt của Chris · 15:55
bạn hãy tận dũng dữ liệu đã research và file play book sau đó phân tích sản phẩm, và trang này https://metabolae.com/products/ceylon-cinnamon-7200mg đề xuất một chiến lược upsell strategy rồi build một landing page hoàn toàn khác theo một chiến lược offer bạn cho là tốt hơn

Claude đã làm: đi đủ 6 bước của playbook:

Báo cáo chi tiết của ca này là artifact riêng của Chris.

Chiến lược A "liệu trình 90 ngày": bán theo số ngày dùng (30 / 90 / 150 ngày, ghi giá mỗi ngày), vì sản phẩm uống mỗi ngày một viên và store đã có bảo đảm hoàn tiền 90 ngày. Bỏ đếm ngược, giữ giá thật, đưa bảo đảm lên ngay dưới nút mua. Upsell theo vị trí: bậc ngày ở buy box, nâng 30 lên 90 ngày trong giỏ, mời chuyển sang giao định kỳ sau khi mua.

Ra: báo cáo theo mẫu của playbook và landing A. Xem: landing A · Liệu trình 90 ngày (bản minh hoạ, không phải trang của Metabolae, nút mua không đi đâu). Ca này còn lộ ra một luật thiếu, Claude thêm luật L-009 về cách viết claim của thực phẩm chức năng ở Mỹ.

Mẫu dùng lại
Dùng dữ liệu research và playbook offer, phân tích sản phẩm và trang [URL]. Đề xuất chiến lược offer và upsell theo từng vị trí trên hành trình mua, rồi dựng một landing page mới theo chiến lược bạn cho là tốt hơn. Mở ra cho tôi xem.

Trong workshop: dựng trên store workshop. Ngày 06/10 landing là file HTML dựng trên máy (ba bản giờ xem được ở link trong bước 3–5). Có chìa GemBoss workshop (mục 4.3) thì dựng thẳng trên store workshop và nộp link xem trước. File HTML trên máy vẫn là cách dự phòng. Clone trang của brand thật để tập là được, nhưng link xem trước chỉ dùng trong buổi, không gửi ra ngoài.

Mẫu dùng lại · dựng trên store workshop
Dùng GemBoss workshop: clone trang [URL] vào store workshop, đặt tên trang "[tên bạn] · [tên chiến lược]". Chỉ sửa trang mang tên tôi. Sửa các khối offer theo chiến lược vừa đề xuất (bậc gói, bảo đảm dưới nút mua, bỏ khối không có lý do); bậc giá chỉ để trình bày, không tạo discount thật. Kiểm trên desktop và mobile, rồi gửi tôi link xem trước kèm danh sách chỗ đã sửa và mã luật đứng sau.

4Làm báo cáo dễ hiểu: Trước → Sau, kết luận, popup

Prompt của Chris · 16:15
phần trình bày file này cần bổ sung thê before after để tôi hiểu bạn sửa cái gì và tại sao
Prompt của Chris · 16:28
kết luận ở đây xem là sự khác biệt căn bản giữa chiến lược offer của bạn với lanidng page hiện tại là gì bạn có thể có popup bật ra popuyp môt tả toàn bộ chiến lược và những thay đổi before after của landing page đã bulid ra để đọc hiểu

Claude đã làm: 11 thẻ Trước → Sau (ảnh khối trên trang cũ, ảnh khối trên trang mới, một dòng "sửa gì", một dòng "vì sao" kèm mã luật), sơ đồ tư duy cho từng chiến lược, chiến lược B "Routine Club" (giao định kỳ $29,99/tháng là cửa vào, quà theo tháng), và một popup tự bật trên mỗi landing tóm tắt chiến lược. Xem: landing B · Routine Club; popup và thẻ Trước → Sau có trên cả ba landing.

Kết luận khác biệt căn bản: chiến lược mới bán theo thời gian dùng (giá mỗi ngày, gói khớp với thời hạn bảo đảm, huỷ dễ) thay vì bán theo một đợt sale.

Mẫu dùng lại
Thêm phần Trước → Sau vào báo cáo: mỗi chỗ sửa có ảnh trang cũ, ảnh trang mới, sửa gì và vì sao (ghi mã luật). Viết một đoạn kết luận về khác biệt căn bản giữa chiến lược mới và trang hiện tại. Thêm popup trên landing tóm tắt chiến lược và các thay đổi.
Mẹo

Yêu cầu "trước / sau kèm lý do" ngay từ đầu. Một đề xuất không có lý do thì người khác không kiểm được, và chính bạn tuần sau cũng không nhớ vì sao.

5Học từ đối thủ cùng ngành

Prompt của Chris · 16:34
bạn hãy dùng Gemmcp (gemwatcher) nghiên cứu những đối thủ cùng ngành của sản phẩm này tham khảo xem chiến lược offer strategy của họ là gì xem có áp dụng được cho sản phẩm này ko và build landing page
Prompt tiếp · 16:49
làm đi và mở ra tôi xem

Claude đã làm: dùng search_stores (từ khoá glucose, metabolic, cinnamon…), list_pages (638 trang thực phẩm chức năng, lọc theo từ khoá) và store_dossier, ra 6 đối thủ. Đọc offer thật trên trang của họ: cả 6 lấy subscription làm offer chính, giảm theo độ dài cam kết (ví dụ 1 / 2 / 3 lọ giảm 25 / 35 / 40%), ghi giá mỗi ngày, tặng quà khi đăng ký có ghi giá trị.

Claude cũng ghi rõ cái không nên chép: đếm ngược theo tháng, định vị kiểu "thuốc", lời chuyên gia khi store chưa có chuyên gia thật, cam kết tối thiểu trái với lời hứa "huỷ bất cứ lúc nào".

Ra: chiến lược C "Supply Plans" (gói 30 / 90 / 150 ngày dạng giao định kỳ, mua một lần là lựa chọn phụ), được đề xuất làm bản chính vì khớp cách cả ngành đang bán và store đã có sẵn đúng các mức giá đó. A và B để chạy A/B test. Xem: landing C · Supply Plans.

Mẫu dùng lại
Dùng GemWatcher tìm đối thủ cùng ngành của sản phẩm này (search_stores, list_pages, store_dossier). Đọc offer thật trên trang của họ, lập bảng "đối thủ làm gì / áp dụng được gì / không nên chép gì", rồi dựng landing theo hướng áp dụng được.

6Mở rộng thành playbook theo ngành

Prompt của Chris · 16:52
với việc sử dụng gemmcp (gemwatcher) có bao nhiêu cách để build playbook tôi hình dung là các ngành khác nhau sẽ có những chiêu thức khác nhau

Dữ liệu 221 brand cho thấy mỗi ngành có "chiêu" khác nhau rõ. Mỗi ngành chỉ 14–25 brand nên đây là số định hướng, chưa phải luật:

NgànhNét riêng so với trung bình
SupplementSubscribe 36% (trung bình 8%), bảo đảm 59%, quà 30%; gần như không sale theo dịp
Food & beverageGiảm giá 81%, freeship 75%, subscribe 31%
ApparelSale theo dịp 38%, BOGO 18%, giảm sâu (trung vị 47,5%); không subscribe
JewelryFreeship 79%, gần như không có bậc số lượng, giảm nông (25%)
Baby & kidsBậc số lượng 40%, cao nhất
SkincareGiảm giá 77%, BOGO 20%, giảm 44%
Sports & outdoorsÍt giảm giá (49%), giảm nông nhất (20%)

Sáu cách dựng playbook từ GemWatcher, bổ sung cho nhau:

CáchTool chínhRa được gì
1. Theo ngành, so ad sống lâu với ad sống ngắnad_intel, store_dossier, page_landing_scoreBộ offer mặc định của ngành
2. Theo người thắng (doanh thu, hạng star)search_stores, store_dossierOffer của brand lớn nhất ngành
3. Theo cấu trúc trangband_sequence, landing_motifs, landing_boardOffer, bảo đảm, so sánh đặt ở đâu trên trang
4. Theo thời gianrecent_events, decisionsPlaybook theo mùa: tháng nào ngành nào đổi offer gì
5. Theo đối thủ trực tiếp của một sản phẩmsearch_stores, list_pagesMa trận offer của 5–10 đối thủ (cách làm ở bước 5)
6. Theo phễu advertoriallist_pages (advertorial), ad_intelChiêu "bài viết dẫn về trang mua" của từng ngành

Đề xuất là playbook ba tầng: tầng chung (đã có), tầng ngành (mỗi ngành một file luật N-, dựng bằng cách 1 + 2 + 3, cập nhật hằng tháng bằng cách 4), tầng sản phẩm (cách 5 và 6 khi phân tích một trang cụ thể). Cây quyết định thêm một câu hỏi đầu tiên: "ngành nào?".

Prompt của Chris · 16:55
tôi đang tổ chức buldathon và tôi muốn những người tham gia có thể sáng tạo ra các playbook khác nhau nên tôi đang chưa hình dung ra cần dạy cái gì và có những play book mẫu ntn

Ra: handbook buildathon (6 bài, khoảng 3 giờ, 12 đề playbook mẫu, bảng chấm 100 điểm). Tài liệu này là phần nền cho người tham gia đọc trước.

Mẫu dùng lại
Dựng tầng ngành [tên ngành] cho playbook offer: dùng GemWatcher theo cách 1, 2, 3 (ad_intel, search_stores tier star, band_sequence), viết thành file luật riêng của ngành, mỗi luật có điều kiện đo được, số liệu và độ tin.

6. Bên trong playbook

Phần này tóm tắt những gì Claude đọc mỗi khi phân tích offer. File gốc: offer-strategy-maker/SKILL.md và các file trong references/, rules/.

6.1 Quy trình 6 bước

Bước 1Thu bằng chứng, không đoánHồ sơ store (GemWatcher), giá thật và giá gạch, chính sách hoàn tiền thật, ảnh màn đầu trên điện thoại, danh mục, offer đang có. Đọc tay lại vì máy đọc offer chỉ hiểu tiếng Anh.
Bước 2Định vị tình huống bằng cây quyết địnhTrả lời N1–N6, ghi bằng chứng và mã luật cho từng câu.
Bước 3Dựng 2–4 avatar khách hàng có bằng chứngBằng chứng lấy từ review, FAQ, chữ trên trang và trên ad. Không có bằng chứng thì ghi GIẢ ĐỊNH.
Bước 4Lắp offer package theo 4 tầng, kiểm biên lợi nhuậnMỗi đòn bẩy phải chỉ ra avatar nó phục vụ (luật C-001).
Bước 5So với trang hiện tại, ra danh sách cải thiện có thứ tựLỗi mất niềm tin trước, rồi vá tầng Nền, gỡ rủi ro, tầng AOV, cuối cùng tầng Đợt.
Bước 6Đặt widget đúng vùng V1–V9, dựng lại trangTrên bản sao Shopify theme chưa publish, gửi link xem trước cho chủ store tự duyệt.

6.2 Cây quyết định

N0 · Đủ bằng chứng chưa?Cần: giá và giá gạch thật, chính sách hoàn tiền, ảnh màn đầu, danh mục, tuổi ad.
Chưa → quay lại thu thêm
Đủ → đi tiếp
N1 · Trang phục vụ ad dài hạn hay một đợt?Đo bằng tuổi ad, tên dịp trong URL, trang có đổi theo mùa không.
Evergreen → trang một sản phẩm, tối đa 3 đòn bẩy, không đếm ngược, giảm 20–30%
Một đợt → xếp 4–6 đòn bẩy được, landing riêng, hạn chót thật
N2 · Kiểu mua?Quyết định đòn bẩy tăng giá trị đơn.
Tiêu hao → subscribe, gói 2/3/6
Đồ bền mua một lần → gói khởi đầu, phụ kiện, bảo đảm
Thời trang nhiều SKU → complete the look, đổi size miễn phí
Quà / mùa vụ → gift set, hạn chót giao
Bốc đồng, giá thấp → BOGO, "thêm 1 món để freeship"
N3 · Giá và rủi ro cảm nhận?Giá dưới khoảng $100 nói giảm bằng %, trên $100 nói bằng số tiền.
Loại mới / brand lạ → bảo đảm hào phóng, review có số, video cách dùng
Giá trên ~$100 → hiện trả góp mỗi kỳ
N4 · Danh mục?Khách lạnh từ ad không nên rơi vào trang danh mục 10+ món.
Một sản phẩm chủ lực → tối đa 3 lựa chọn gói
Có phụ kiện → gói khởi đầu, mua kèm dưới buy box
N5 · Biên lợi nhuận?Tính mức giảm tối đa bằng công thức ở 6.4.
Biên cao → có chỗ cho gói, quà, bảo đảm dài
Biên mỏng → ưu tiên đòn bẩy không tốn tiền: bảo đảm, review, ngưỡng freeship
N6 · Thị trường?Luật giá và khẩn cấp khác nhau theo nước.
EU / UK → giá gạch theo giá thấp nhất 30 ngày, cấm đếm ngược giả
US → giá gạch phải từng bán thật, subscription nói rõ cách huỷ
India → giữ COD, giảm thêm cho trả trước

6.3 Offer package 4 tầng

Tầng 1 · Nền (luôn có)Một con số giảm hoặc giá gạch thật · freeship có ngưỡng ghi cạnh giá và trong giỏ · bảo đảm có số ngày · số review cạnh giá. Khoảng 55–65% trang có đủ; thiếu là lỗ hổng đầu tiên phải vá.
Tầng 2 · AOVMột cơ chế tăng giá trị đơn hợp kiểu mua: bậc số lượng, hoặc gói khởi đầu, hoặc subscribe. Cộng mua kèm nếu có phụ kiện.
Tầng 3 · Gỡ rủi roTrả lời nỗi lo lớn nhất của avatar chính: hoàn tiền dài hơn chuẩn, trả góp khi giá cao, đổi size miễn phí.
Tầng 4 · Đợt (tuỳ chọn)Sale theo dịp, quà theo ngưỡng, đếm ngược. Chỉ khi có hạn chót thật. Không đặt trên trang của ad evergreen.

Màn đầu trên điện thoại hiện tối đa 3 đòn bẩy. Mọi con số phải giống nhau trên ad, trang, giỏ và checkout.

6.4 Kiểm biên lợi nhuận

Công thức
lãi/đơn        = AOV × (1 − giảm) − giá vốn − ship − phí thanh toán (~3%) − quà/phụ kiện − CAC
mức giảm tối đa = 1 − (giá vốn + ship + phí + quà + CAC + lãi mục tiêu) / AOV

Thiếu số thì báo cáo ghi CHƯA CÓ SỐ và đề xuất mức thấp của khoảng.

6.5 Luật: ai thắng khi mâu thuẫn

Muốn thêm tư tưởng của mình, nói với Claude: "thêm vào playbook offer: …". Claude ghi thành luật C- mới, hỏi lại nếu điều kiện chưa đo được, và nói ra luật cũ nào bị đè.

6.6 Đặt offer ở đâu: vùng V1–V9

  1. V1 Màn đầuMột câu offer chính, giá, review, freeship hoặc bảo đảm một dòng
  2. V2 Buy boxBậc số lượng, subscribe, trả góp, một dòng bảo đảm dưới nút
  3. V3 Dưới buy boxMua kèm, gói khởi đầu
  4. V4 Thân trangBảo đảm chi tiết, review, so sánh, FAQ
  5. V5 Nút mua dínhNút mua, giá, bậc đang chọn
  6. V6 GiỏThanh tiến độ freeship, quà theo ngưỡng, món thêm rẻ
  7. V7 CheckoutOrder bump một món nhỏ (cần Shopify Plus)
  8. V8 Sau muaUpsell một chạm, mời subscribe
  9. V9 Popup emailMã giảm đơn đầu, chỉ cho khách mới

Một quyết định ở một chỗ: buy box chỉ hỏi "bản nào, bao nhiêu"; mua kèm để xuống dưới. Store đã có app nào (Kaching, Rebuy, UpCart, Recharge…) thì dùng app đó trước khi đề xuất cài thêm.

7. Giới hạn cần nhớ

8. Tự làm lần đầu

Khoảng 60–90 phút cho một trang.

  1. Làm xong mục 4: Claude Code chạy, /mcp thấy gemwatcher và gemboss-workshop (hoặc hai connector đều "Connected" trên Desktop / claude.ai), playbook nằm trong ~/.claude/skills/.
  2. Chọn một landing page đang chạy ads, tốt nhất là trang sản phẩm tiếng Anh của một store Shopify ở Mỹ. Chưa có trang nào thì hỏi Claude: "dùng GemWatcher tìm cho tôi 5 trang sản phẩm ngành [ngành] đang là đích của ads".
  3. Chạy mẫu prompt của bước 3 với URL đó. Trong workshop thì dựng trang trên store workshop bằng mẫu "dựng trên store workshop".
  4. Đọc báo cáo và tự kiểm: mỗi đề xuất có mã luật không? Mỗi avatar có nguồn không? Chỗ nào ghi GIẢ ĐỊNH hay CHƯA ĐỌC?
  5. Chạy mẫu prompt của bước 4 để có Trước → Sau, rồi bước 5 nếu muốn so với đối thủ.
  6. Thấy luật nào sai hoặc thiếu, nói "thêm vào playbook offer: …" và ghi lý do.

Kết quả nên có: một báo cáo theo mẫu templates/report.md, một landing dựng lại (link xem trước trên store workshop, hoặc file mở được trên máy), và một danh sách giả thuyết A/B kèm chỉ số đo.

9. File và nguồn

Ở đâuLà gì
gemoffer/workflows/ai-offer/prompts.mdCác prompt nguyên văn và mẫu dùng lại
gemoffer/workflows/ai-offer/offer-strategy-maker/Playbook (skill), bản chụp ngày 07/10/2026
gemoffer/workflows/ai-offer/research-2026-10-06/Script research 221 brand và thứ tự chạy
gemoffer/workflows/ai-offer/so-do-cua-chris-2026-10-06.pngSơ đồ gốc của Chris
Landing A · B · CBa landing dựng ngày 06/10 cho metabolae.com (bước 3–5). Bản minh hoạ, không bán hàng. Nguồn: gemoffer/src/gemoffer/guide/metabolae-*.html
gemoffer/src/gemoffer/guide/ai-offer-workflow.htmlNguồn của trang này
Dashboard offer insights, báo cáo metabolae, handbook buildathonArtifact riêng của Chris trên claude.ai; nhờ Chris chia sẻ

Bản playbook Chris đang dùng nằm ở máy Chris (~/.claude/skills/offer-strategy-maker/). Bản trong repo được chép lại khi có thay đổi lớn.