{"id":6710,"date":"2026-03-09T15:30:53","date_gmt":"2026-03-09T15:30:53","guid":{"rendered":"https:\/\/hashting.com\/?p=6710"},"modified":"2026-03-13T09:06:18","modified_gmt":"2026-03-13T09:06:18","slug":"thomy-cashback-case","status":"publish","type":"post","link":"https:\/\/hashting.com\/es\/thomy-cashback-case\/","title":{"rendered":"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6710\" class=\"elementor elementor-6710\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3ec042c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3ec042c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8da95b1\" data-id=\"8da95b1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0bfde5b elementor-widget elementor-widget-html\" data-id=\"0bfde5b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Hashting \u00d7 Thomy Golden Cap Campaign<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap\" rel=\"stylesheet\">\n<style>\n* { margin:0; padding:0; box-sizing:border-box; }\n:root {\n  --green:#5FBB46; --green-light:#6FCC56; --green-pale:#E8F5E4;\n  --green-border:rgba(95,187,70,0.3); --bg:#F4F3F0; --bg-card:#FFFFFF;\n  --border:#E2E0DC; --text:#1A1A1A; --text-mid:#5A5A5A; --text-dim:#8A8A8A;\n  --dark:#3c3c3b; --thomy-red:#C0122C; --thomy-blue:#003A8C; --thomy-yellow:#FFD200;\n  --wa-green:#25D366; --wa-dark:#075E54; --wa-bg:#ECE5DD; --wa-out:#DCF8C6;\n}\nbody { background:var(--bg); font-family:'Outfit',sans-serif; color:var(--text); overflow-x:hidden; -webkit-font-smoothing:antialiased; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 HERO SECTION \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.hero {\n  background:var(--bg-card);\n  border-bottom:1px solid var(--border);\n  padding:72px 24px 80px;\n  display:grid;\n  grid-template-columns:1fr 320px;\n  gap:64px;\n  max-width:1100px;\n  margin:0 auto;\n  align-items:center;\n}\n\n.hero-left {}\n\n.eyebrow {\n  font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600;\n  letter-spacing:3px; text-transform:uppercase; color:var(--green);\n  margin-bottom:16px; display:flex; align-items:center; gap:8px;\n}\n.eyebrow::before { content:''; width:20px; height:2px; background:var(--green); display:inline-block; }\n\n.hero-title {\n  font-size:clamp(28px,4vw,52px); font-weight:800; line-height:1.08;\n  letter-spacing:-1.5px; margin-bottom:20px; color:var(--text);\n}\n.hero-title span { color:var(--green); }\n\n.hero-deck {\n  font-size:17px; color:var(--text-mid); line-height:1.65;\n  max-width:560px; margin-bottom:28px; font-weight:400;\n}\n\n.author-line {\n  display:flex; align-items:center; gap:12px;\n  padding:14px 0; border-top:1px solid var(--border);\n}\n.author-av {\n  width:34px; height:34px;\n  background:linear-gradient(135deg,var(--green),var(--green-light));\n  border-radius:50%; display:flex; align-items:center; justify-content:center;\n  font-weight:700; font-size:12px; color:white; flex-shrink:0;\n}\n.author-name { font-size:12px; font-weight:600; color:var(--text); }\n.author-meta { font-size:10px; color:var(--text-dim); }\n.read-time {\n  font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--text-dim);\n  background:var(--bg); border:1px solid var(--border); border-radius:4px;\n  padding:3px 9px; margin-left:auto;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 IPHONE STAGE (hero right) \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.iphone-stage {\n  display:flex; flex-direction:column; align-items:center; gap:16px;\n}\n\n.stage-caption {\n  font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:600;\n  letter-spacing:2px; text-transform:uppercase; color:var(--green);\n  text-align:center;\n}\n\n\/* progress dots *\/\n.progress-dots {\n  display:flex; gap:6px; align-items:center;\n}\n.pdot {\n  width:7px; height:7px; border-radius:50%;\n  background:var(--border); transition:all 0.4s ease;\n}\n.pdot.active { background:var(--green); transform:scale(1.2); }\n.pdot.done { background:var(--green-light); }\n\n\/* step label *\/\n.step-label {\n  font-size:11px; font-weight:700; color:var(--text);\n  text-align:center; min-height:16px;\n}\n.step-label span { color:var(--green); }\n\n\/* iphone shell *\/\n.iphone {\n  width:240px; height:500px;\n  background:#1A1A1A;\n  border-radius:42px;\n  border:2px solid rgba(0,0,0,0.15);\n  box-shadow:\n    0 0 0 1px rgba(255,255,255,0.08) inset,\n    0 2px 0 rgba(255,255,255,0.12) inset,\n    0 32px 80px rgba(0,0,0,0.18),\n    0 8px 24px rgba(0,0,0,0.1);\n  position:relative; overflow:hidden;\n}\n\/* dynamic island *\/\n.iphone::before {\n  content:'';\n  position:absolute; top:14px; left:50%; transform:translateX(-50%);\n  width:96px; height:28px;\n  background:#000; border-radius:20px; z-index:30;\n}\n\/* side button *\/\n.iphone::after {\n  content:'';\n  position:absolute; top:100px; right:-3px;\n  width:3px; height:52px;\n  background:#2a2a2a; border-radius:0 2px 2px 0;\n}\n\n.iphone-screen {\n  position:absolute; inset:0; border-radius:40px; overflow:hidden;\n  background:white;\n}\n\n\/* \u2500\u2500 All screens share this wrapper \u2500\u2500 *\/\n.iscreen {\n  position:absolute; inset:0; opacity:0;\n  transition:opacity 0.45s ease;\n  pointer-events:none;\n}\n.iscreen.active { opacity:1; pointer-events:auto; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCREEN 1: CAMERA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.s-camera {\n  background:#000;\n  display:flex; flex-direction:column;\n}\n.cam-vf {\n  flex:1; position:relative; overflow:hidden;\n  background:linear-gradient(180deg,#050505,#0a0a0a);\n}\n\/* status bar *\/\n.ios-status {\n  position:absolute; top:0; left:0; right:0;\n  height:48px; display:flex; align-items:flex-end;\n  justify-content:space-between; padding:0 20px 6px;\n  z-index:25; pointer-events:none;\n}\n.ios-time { font-size:14px; font-weight:700; color:white; letter-spacing:-.3px; }\n.ios-icons { display:flex; gap:5px; align-items:center; font-size:12px; color:white; }\n\n.cam-hud-top {\n  position:absolute; top:56px; left:0; right:0;\n  display:flex; justify-content:center;\n  opacity:0; transition:opacity .4s;\n}\n.cam-hud-top.on { opacity:1; }\n.cam-chip {\n  background:rgba(0,0,0,0.65); border:1px solid rgba(95,187,70,0.5);\n  border-radius:20px; padding:4px 12px;\n  font-family:'JetBrains Mono',monospace; font-size:8px; font-weight:600;\n  color:var(--green); letter-spacing:.1em; text-transform:uppercase;\n}\n\n\/* corner brackets *\/\n.cam-frame {\n  position:absolute; top:72px; bottom:80px; left:28px; right:28px;\n  opacity:0; transition:opacity .5s;\n}\n.cam-frame.on { opacity:1; }\n.cf-corner {\n  position:absolute; width:20px; height:20px;\n  border-color:var(--green); border-style:solid;\n}\n.cf-corner.tl { top:0; left:0; border-width:2px 0 0 2px; border-radius:2px 0 0 0; }\n.cf-corner.tr { top:0; right:0; border-width:2px 2px 0 0; border-radius:0 2px 0 0; }\n.cf-corner.bl { bottom:0; left:0; border-width:0 0 2px 2px; border-radius:0 0 0 2px; }\n.cf-corner.br { bottom:0; right:0; border-width:0 2px 2px 0; border-radius:0 0 2px 0; }\n\n\/* tube *\/\n.tube-wrap {\n  position:absolute; bottom:28px; left:50%; transform:translateX(-50%);\n  width:96px; opacity:0; transition:opacity .7s;\n  animation:tubeFloat 4s ease-in-out infinite;\n}\n.tube-wrap.on { opacity:1; }\n\n\/* scan line *\/\n.scan-line {\n  position:absolute; left:20%; right:20%; height:2px;\n  background:linear-gradient(90deg,transparent,var(--green),transparent);\n  box-shadow:0 0 10px var(--green),0 0 20px rgba(95,187,70,0.4);\n  opacity:0; transition:opacity .3s;\n  animation:scanMove 2s ease-in-out infinite;\n}\n.scan-line.on { opacity:1; }\n\n.cam-flash-overlay {\n  position:absolute; inset:0; background:white; opacity:0; z-index:20; pointer-events:none;\n}\n\n\/* camera detected overlay *\/\n.cam-detected {\n  position:absolute; inset:0;\n  background:rgba(8,26,10,0.96);\n  display:flex; flex-direction:column; align-items:center; justify-content:center;\n  gap:8px; opacity:0; transition:opacity .4s; z-index:15;\n}\n.cam-detected.on { opacity:1; }\n.det-ring {\n  width:56px; height:56px; border:2.5px solid var(--green); border-radius:50%;\n  display:flex; align-items:center; justify-content:center;\n  font-size:22px; color:var(--green); background:rgba(95,187,70,0.07);\n}\n.det-title { font-size:13px; font-weight:700; color:white; }\n.det-prize {\n  background:rgba(255,210,0,0.12); border:1px solid rgba(255,210,0,0.45);\n  color:#FFD200; font-weight:800; font-size:12px; border-radius:20px; padding:5px 16px;\n}\n.det-sub { font-size:8px; color:rgba(255,255,255,.4); font-family:'JetBrains Mono',monospace; letter-spacing:.06em; text-transform:uppercase; }\n\n\/* cam bottom bar *\/\n.cam-bottom {\n  background:rgba(0,0,0,0.9); padding:10px 0 28px;\n  display:flex; align-items:center; justify-content:center; gap:28px;\n  opacity:0; transition:opacity .4s;\n}\n.cam-bottom.on { opacity:1; }\n.cam-thumb { width:28px; height:28px; border-radius:6px; background:#1a1a1a; border:1px solid #333; }\n.shutter { width:52px; height:52px; border-radius:50%; border:3px solid white; display:flex; align-items:center; justify-content:center; cursor:pointer; }\n.shutter-inner { width:42px; height:42px; border-radius:50%; background:white; }\n.cam-flip { font-size:18px; color:white; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCREEN 2: HASHTING FORM \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.s-form {\n  background:white; display:flex; flex-direction:column; overflow:hidden;\n}\n.form-status { height:48px; background:var(--thomy-red); display:flex; align-items:flex-end; padding:0 16px 6px; justify-content:space-between; }\n.form-status .ist { font-size:14px; font-weight:700; color:white; }\n.form-status .isi { display:flex; gap:5px; align-items:center; font-size:11px; color:white; }\n.form-header {\n  background:var(--thomy-red); padding:0 14px 12px;\n  display:flex; align-items:center; gap:8px;\n}\n.fh-logo { background:white; border-radius:4px; padding:2px 8px; font-size:9px; font-weight:900; color:var(--thomy-red); letter-spacing:.04em; }\n.fh-title { font-size:10px; font-weight:700; color:white; }\n.form-hero-band {\n  height:60px; background:linear-gradient(135deg,var(--thomy-blue),#001858);\n  display:flex; align-items:center; padding:0 14px; gap:8px; flex-shrink:0;\n}\n.fhb-text .fhb-big { font-size:16px; font-weight:900; color:var(--thomy-yellow); line-height:1; }\n.fhb-text .fhb-sm { font-size:7px; font-weight:600; color:rgba(255,255,255,.8); }\n.fhb-badge {\n  margin-left:auto; background:var(--thomy-yellow); border-radius:50%;\n  width:40px; height:40px; display:flex; flex-direction:column; align-items:center;\n  justify-content:center; font-weight:900; font-size:8px; color:var(--thomy-blue); line-height:1.1; text-align:center;\n}\n.form-body { padding:10px 12px; flex:1; overflow:hidden; }\n.finstr { font-size:8px; color:#666; margin-bottom:8px; line-height:1.5; text-align:center; }\n.finstr strong { color:var(--thomy-red); }\n.upload-zone {\n  border:1.5px dashed #d0c8c0; border-radius:7px; padding:10px;\n  text-align:center; margin-bottom:8px; background:#fafaf8;\n  display:flex; flex-direction:column; align-items:center; gap:2px;\n}\n.uz-ic { font-size:20px; }\n.uz-ct { font-size:8.5px; font-weight:700; color:var(--thomy-red); }\n.uz-lb { font-size:7px; color:#aaa; }\n.frow { display:flex; gap:5px; }\n.ffg { margin-bottom:5px; flex:1; }\n.ffl { font-size:7px; font-weight:600; color:#555; margin-bottom:2px; }\n.ffi { width:100%; background:#f5f3f0; border:1px solid var(--border); border-radius:4px; padding:4px 7px; font-size:8px; color:#aaa; }\n.fterms { display:flex; gap:5px; align-items:flex-start; margin-bottom:8px; }\n.fchk { width:10px; height:10px; border:1.5px solid var(--green); border-radius:2px; background:var(--green-pale); flex-shrink:0; margin-top:1px; display:flex; align-items:center; justify-content:center; font-size:7px; color:var(--green); font-weight:700; }\n.fterm-t { font-size:7px; color:#888; line-height:1.4; }\n.fsubmit { background:var(--green); color:white; border:none; border-radius:6px; padding:8px 7px; font-size:10px; font-weight:700; width:100%; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:4px; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCREEN 3: SMS VALIDATION \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.s-sms {\n  background:var(--wa-bg); display:flex; flex-direction:column;\n  background-image:repeating-linear-gradient(45deg,rgba(0,0,0,.012) 0px,rgba(0,0,0,.012) 1px,transparent 1px,transparent 9px);\n}\n.sms-status { height:48px; background:var(--wa-dark); display:flex; align-items:flex-end; padding:0 12px 7px; }\n.sms-top { background:var(--wa-dark); padding:0 11px 10px; display:flex; align-items:center; gap:8px; }\n.sms-av { width:30px; height:30px; background:var(--green); border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:12px; color:white; }\n.sms-info .ss { font-size:11px; font-weight:700; color:white; }\n.sms-info .sst { font-size:7.5px; color:rgba(255,255,255,.5); }\n.sms-bdg { background:rgba(255,255,255,.12); border-radius:3px; padding:2px 6px; font-size:7px; color:rgba(255,255,255,.65); font-family:'JetBrains Mono',monospace; margin-left:auto; }\n.sms-feed { flex:1; padding:10px 9px; display:flex; flex-direction:column; gap:5px; overflow:hidden; }\n.sms-date { align-self:center; font-size:7.5px; color:rgba(0,0,0,.4); background:rgba(255,255,255,.65); border-radius:7px; padding:2px 8px; }\n.sms-sys { background:rgba(255,255,255,.55); border-radius:8px; padding:4px 8px; font-size:7.5px; color:rgba(0,0,0,.4); text-align:center; line-height:1.4; margin:0 4px; }\n.bb { max-width:84%; border-radius:10px; padding:7px 9px; font-size:9px; line-height:1.5; opacity:0; transform:translateY(6px); transition:opacity .35s,transform .35s; }\n.bb.s { opacity:1; transform:translateY(0); }\n.bb.out { background:var(--wa-out); align-self:flex-end; border-bottom-right-radius:2px; color:#111; }\n.bb.in { background:white; align-self:flex-start; border-bottom-left-radius:2px; color:#111; box-shadow:0 1px 3px rgba(0,0,0,.06); }\n.bb-t { font-size:7px; color:rgba(0,0,0,.35); text-align:right; margin-top:2px; }\n.bb a { color:var(--wa-dark); font-weight:600; }\n.typi { background:white; border-radius:10px; border-bottom-left-radius:2px; align-self:flex-start; padding:8px 11px; display:flex; gap:3px; align-items:center; opacity:0; transition:opacity .3s; }\n.typi.s { opacity:1; }\n.tdot { width:5px; height:5px; border-radius:50%; background:#ccc; animation:tBnc 1.2s infinite; }\n.tdot:nth-child(2){animation-delay:.2s} .tdot:nth-child(3){animation-delay:.4s}\n.sms-input { background:#F0F0F0; padding:6px 9px; display:flex; align-items:center; gap:6px; border-top:1px solid rgba(0,0,0,.07); }\n.sms-fld { flex:1; background:white; border-radius:16px; padding:5px 10px; font-size:8.5px; color:#aaa; }\n.sms-mic { width:28px; height:28px; background:var(--wa-green); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 SCREEN 4: YOU HAVE WON \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.s-won {\n  background:white; display:flex; flex-direction:column;\n}\n.won-status { height:48px; background:var(--thomy-red); display:flex; align-items:flex-end; padding:0 14px 7px; justify-content:space-between; }\n.won-status .ist { font-size:14px; font-weight:700; color:white; }\n.won-status .isi { display:flex; gap:5px; align-items:center; font-size:11px; color:white; }\n.won-header { background:var(--thomy-red); padding:0 14px 11px; display:flex; align-items:center; gap:8px; }\n.won-logo { background:white; border-radius:4px; padding:2px 8px; font-size:9px; font-weight:900; color:var(--thomy-red); }\n.won-ht-bar { background:var(--green); padding:6px 14px; display:flex; align-items:center; gap:6px; }\n.wh-mark { width:17px; height:17px; background:white; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:9px; font-weight:800; color:var(--green); }\n.wh-lbl { font-size:9px; font-weight:700; color:white; }\n.won-body { padding:11px 12px; flex:1; overflow:hidden; }\n.won-prize-box { background:linear-gradient(135deg,var(--thomy-blue),#001858); border-radius:9px; padding:12px; text-align:center; margin-bottom:10px; }\n.wpb-top { font-size:8px; color:rgba(255,255,255,.55); margin-bottom:4px; }\n.wpb-main { font-size:14px; font-weight:900; color:var(--thomy-yellow); line-height:1; }\n.wpb-amount { font-size:32px; font-weight:900; color:white; line-height:1.1; }\n.wpb-cur { font-size:13px; color:rgba(255,255,255,.65); }\n.validated-box { background:var(--green-pale); border:1px solid var(--green-border); border-radius:7px; padding:8px 10px; margin-bottom:10px; display:flex; align-items:flex-start; gap:7px; }\n.vbox-ic { font-size:15px; }\n.vbox-t { font-size:8.5px; font-weight:700; color:#1a2e1c; margin-bottom:2px; font-style:italic; }\n.vbox-s { font-size:7.5px; color:var(--text-mid); }\n.bank-title { font-size:9px; font-weight:700; color:var(--text); margin-bottom:6px; }\n.bank-note { background:#FFF8E1; border:1px solid #FFE082; border-radius:5px; padding:5px 8px; margin-bottom:7px; font-size:7.5px; color:#5D4037; line-height:1.4; font-style:italic; }\n.bfg { margin-bottom:5px; }\n.bfl { font-size:7px; font-weight:600; color:#555; margin-bottom:2px; }\n.bfi { width:100%; background:#f5f3f0; border:1px solid var(--border); border-radius:4px; padding:4px 7px; font-size:8px; color:#888; }\n.bsubmit { background:var(--thomy-red); color:white; border:none; border-radius:6px; padding:7px 8px; font-size:10px; font-weight:700; width:100%; display:flex; align-items:center; justify-content:center; gap:4px; margin-top:6px; cursor:pointer; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 CASE STUDY BODY \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.case-body {\n  max-width:860px; margin:0 auto; padding:80px 24px 0;\n}\n\n\/* section: what happened *\/\n.section { margin-bottom:64px; }\n.section-eyebrow {\n  font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600;\n  letter-spacing:3px; text-transform:uppercase; color:var(--green);\n  margin-bottom:10px; display:flex; align-items:center; gap:7px;\n}\n.section-eyebrow::after { content:''; flex:0 0 24px; height:1px; background:var(--green-border); }\n\n.section-title { font-size:clamp(20px,3vw,32px); font-weight:800; letter-spacing:-1px; line-height:1.15; margin-bottom:20px; color:var(--text); }\n.section-title span { color:var(--green); }\n.section-body { font-size:16px; color:var(--text-mid); line-height:1.75; font-weight:400; }\n.section-body strong { color:var(--text); font-weight:600; }\n.section-body p + p { margin-top:16px; }\n\n.pq {\n  margin:24px 0; padding:18px 22px;\n  background:var(--green-pale); border-left:4px solid var(--green);\n  border-radius:0 8px 8px 0; font-size:15px; font-style:italic;\n  color:var(--text-mid); line-height:1.6;\n}\n\n\/* lesson cards inline *\/\n.lessons-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; margin:48px 0; }\n.lesson-card {\n  background:var(--bg-card); border:1px solid var(--border); border-radius:12px;\n  padding:24px 20px; transition:border-color .2s;\n}\n.lesson-card:hover { border-color:var(--green-border); }\n.lc-num {\n  font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600;\n  letter-spacing:.12em; text-transform:uppercase; color:var(--green);\n  margin-bottom:8px;\n}\n.lc-title { font-size:15px; font-weight:800; letter-spacing:-.3px; line-height:1.25; margin-bottom:10px; color:var(--text); }\n.lc-body { font-size:13px; color:var(--text-mid); line-height:1.65; }\n.lc-body strong { color:var(--text); font-weight:600; }\n\n\/* \u2550\u2550\u2550\u2550 MISTAKES REDESIGNED LIST \u2550\u2550\u2550\u2550 *\/\n.mistakes-strip {\n  background:var(--bg-card); border:1px solid var(--border);\n  border-radius:16px; padding:48px; margin:48px 0;\n}\n.ms-header { margin-bottom:36px; }\n.ms-ey { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--green); margin-bottom:10px; }\n.ms-t { font-size:clamp(20px,2.8vw,30px); font-weight:800; letter-spacing:-1px; line-height:1.15; color:var(--text); }\n.ms-t span { color:var(--green); }\n.ms-sub { font-size:15px; color:var(--text-mid); line-height:1.65; margin-top:12px; max-width:600px; }\n\n.mistakes-list { display:flex; flex-direction:column; gap:0; }\n\n.mi {\n  display:grid; grid-template-columns:44px 1fr auto;\n  gap:0 20px; padding:22px 0; border-bottom:1px solid var(--border);\n  align-items:flex-start;\n}\n.mi:last-child { border-bottom:none; }\n.mi.featured {\n  background:var(--bg); border-radius:12px;\n  padding:22px 20px; margin:10px -4px;\n  border:1.5px solid var(--green-border); border-bottom:1.5px solid var(--green-border);\n}\n.mi.featured .min { color:var(--green); opacity:1; }\n.min {\n  font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700;\n  color:var(--green); opacity:.5; padding-top:3px;\n}\n.mi-content { display:flex; flex-direction:column; gap:5px; }\n.mit { font-size:14.5px; font-weight:800; color:var(--text); line-height:1.3; letter-spacing:-.3px; }\n.mi.featured .mit { font-size:15.5px; }\n.mib { font-size:13px; color:var(--text-mid); line-height:1.6; }\n.mib strong { color:var(--text); font-weight:700; }\n\n.mi-tag {\n  font-family:'JetBrains Mono',monospace; font-size:8px; font-weight:700;\n  letter-spacing:.08em; text-transform:uppercase; padding:4px 10px;\n  border-radius:20px; white-space:nowrap; flex-shrink:0;\n  margin-top:4px; line-height:1.2; align-self:flex-start;\n}\n.tag-red { background:#FEE2E2; color:#B91C1C; }\n.tag-orange { background:#FEF3C7; color:#92400E; }\n.tag-blue { background:#DBEAFE; color:#1D4ED8; }\n.tag-green { background:var(--green-pale); color:#166534; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 CTA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.cta-block {\n  background:var(--green);\n  border-radius:16px;\n  padding:52px 48px;\n  margin:0 auto 80px;\n  max-width:860px;\n  display:grid; grid-template-columns:1fr auto;\n  align-items:center; gap:40px;\n}\n.cta-left {}\n.cta-eyebrow { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,.7); margin-bottom:10px; }\n.cta-title { font-size:clamp(20px,2.5vw,30px); font-weight:800; letter-spacing:-.8px; line-height:1.15; color:white; margin-bottom:8px; }\n.cta-sub { font-size:14px; color:rgba(255,255,255,.75); line-height:1.6; }\n.cta-btn {\n  display:inline-flex; align-items:center; gap:8px;\n  background:white; color:var(--green);\n  font-family:'Outfit',sans-serif; font-weight:800; font-size:14px;\n  padding:14px 28px; border-radius:8px; text-decoration:none;\n  white-space:nowrap; flex-shrink:0;\n  box-shadow:0 4px 16px rgba(0,0,0,0.15);\n  transition:transform .2s, box-shadow .2s;\n}\n.cta-btn:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.2); }\n.cta-note { font-size:10px; color:rgba(255,255,255,.5); margin-top:6px; font-family:'JetBrains Mono',monospace; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 RESPONSIVE \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@media (max-width:900px) {\n  .hero { grid-template-columns:1fr; gap:40px; padding:48px 24px 56px; }\n  .iphone-stage { order:-1; }\n  .lessons-grid { grid-template-columns:1fr; }\n  .mistakes-grid { grid-template-columns:1fr; }\n  .mistakes-grid .mc:last-child { grid-column:auto; }\n  .mc.highlight { flex-direction:column; }\n  .mc-highlight-right { border-left:none; padding-left:0; border-top:1px solid var(--green-border); padding-top:16px; text-align:left; }\n  .cta-block { grid-template-columns:1fr; text-align:center; padding:36px 28px; gap:24px; }\n  .cta-btn { align-self:center; }\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 KEYFRAMES \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@keyframes phoneIn { to { opacity:1; transform:translateY(0); } }\n@keyframes tubeFloat { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-8px)} }\n@keyframes scanMove { 0%{top:15%} 50%{top:78%} 100%{top:15%} }\n@keyframes tBnc { 0%,60%,100%{transform:translateY(0);background:#ccc} 30%{transform:translateY(-4px);background:var(--green)} }\n@keyframes flashA { 0%{opacity:.8} 100%{opacity:0} }\n@keyframes fadeIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }\n<\/style>\n<\/head>\n<body>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 HERO \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<section style=\"background:var(--bg-card); border-bottom:1px solid var(--border);\">\n<div class=\"hero\">\n\n  <!-- LEFT: COPY -->\n  <div class=\"hero-left\">\n    <div class=\"eyebrow\">Case Study \u00b7 Thomy \u00d7 Hashting<\/div>\n    <h1 class=\"hero-title\">\n      Thomy staged a<br>cyberattack on their<br>own mayo recipe.<br>\n      <span>Every FMCG brand<br>should be watching.<\/span>\n    <\/h1>\n    <p class=\"hero-deck\">\n      Gamified clues. Golden cap rewards. 750 CHF prizes. A community looking for the missing recipe. Here's what the architecture behind it reveals and seven lessons from ten years of cashback promotions.\n    <\/p>\n    <div class=\"author-line\">\n      <div class=\"author-meta\" style=\"font-size:12px;color:var(--text-mid);\">Case Study &nbsp;\u00b7&nbsp; Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands<\/div>\n      <div class=\"read-time\">6 min<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- RIGHT: iPHONE SIMULATION -->\n  <div class=\"iphone-stage\">\n    <div class=\"stage-caption\" id=\"stageCaption\">Step 01 Scan golden cap<\/div>\n\n    <div class=\"iphone\">\n      <div class=\"iphone-screen\">\n\n        <!-- SCREEN 1: CAMERA -->\n        <div class=\"iscreen s-camera active\" id=\"sc1\">\n          <div class=\"cam-vf\">\n            <div class=\"ios-status\">\n              <div class=\"ios-time\">09:41<\/div>\n              <div class=\"ios-icons\">\u25b2 \u25cf \u25a0<\/div>\n            <\/div>\n            <div class=\"cam-hud-top\" id=\"camChip\">\n              <div class=\"cam-chip\">\ud83c\udfc5 FIND &amp; WIN 750 CHF<\/div>\n            <\/div>\n            <div class=\"cam-frame\" id=\"camFrame\">\n              <div class=\"cf-corner tl\"><\/div><div class=\"cf-corner tr\"><\/div>\n              <div class=\"cf-corner bl\"><\/div><div class=\"cf-corner br\"><\/div>\n            <\/div>\n            <!-- Thomy tube SVG -->\n            <div class=\"tube-wrap\" id=\"tw\">\n              <svg viewBox=\"0 0 100 200\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"transform:rotate(160deg);transform-origin:center center;\">\n                <defs>\n                  <linearGradient id=\"tg\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n                    <stop offset=\"0%\" style=\"stop-color:#1a6b2e\"\/>\n                    <stop offset=\"45%\" style=\"stop-color:#2d8a3e\"\/>\n                    <stop offset=\"100%\" style=\"stop-color:#0f5020\"\/>\n                  <\/linearGradient>\n                  <linearGradient id=\"cg\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n                    <stop offset=\"0%\" style=\"stop-color:#FFE100\"\/>\n                    <stop offset=\"50%\" style=\"stop-color:#FFC200\"\/>\n                    <stop offset=\"100%\" style=\"stop-color:#CC9900\"\/>\n                  <\/linearGradient>\n                  <radialGradient id=\"shine\" cx=\"30%\" cy=\"30%\" r=\"60%\">\n                    <stop offset=\"0%\" style=\"stop-color:rgba(255,255,255,0.35)\"\/>\n                    <stop offset=\"100%\" style=\"stop-color:rgba(255,255,255,0)\"\/>\n                  <\/radialGradient>\n                <\/defs>\n                <!-- GOLDEN CAP the hero element -->\n                <ellipse cx=\"50\" cy=\"8\" rx=\"17\" ry=\"5\" fill=\"url(#cg)\"\/>\n                <rect x=\"34\" y=\"4\" width=\"32\" height=\"8\" rx=\"3\" fill=\"url(#cg)\"\/>\n                <rect x=\"37\" y=\"8\" width=\"26\" height=\"24\" rx=\"3\" fill=\"url(#cg)\"\/>\n                <rect x=\"37\" y=\"8\" width=\"26\" height=\"24\" rx=\"3\" fill=\"url(#shine)\"\/>\n                <text x=\"50\" y=\"22\" text-anchor=\"middle\" font-size=\"6\" fill=\"#7A4F00\" font-family=\"sans-serif\" font-weight=\"900\">WIN<\/text>\n                <text x=\"50\" y=\"29\" text-anchor=\"middle\" font-size=\"4.5\" fill=\"#8B6000\" font-family=\"sans-serif\" font-weight=\"700\">THOMY<\/text>\n                <!-- Neck transition -->\n                <rect x=\"35\" y=\"31\" width=\"30\" height=\"10\" rx=\"2\" fill=\"url(#tg)\"\/>\n                <!-- Main body -->\n                <rect x=\"20\" y=\"39\" width=\"60\" height=\"130\" rx=\"10\" fill=\"url(#tg)\"\/>\n                <!-- Label cream background -->\n                <rect x=\"23\" y=\"54\" width=\"54\" height=\"88\" rx=\"5\" fill=\"#f5f0dc\" opacity=\".97\"\/>\n                <!-- THOMY text -->\n                <text x=\"50\" y=\"73\" text-anchor=\"middle\" font-size=\"14\" fill=\"#1a6b2e\" font-family=\"sans-serif\" font-weight=\"900\" letter-spacing=\"1\">THOMY<\/text>\n                <!-- Mayo plate -->\n                <circle cx=\"50\" cy=\"99\" r=\"22\" fill=\"white\" stroke=\"#e0d8c0\" stroke-width=\"1\"\/>\n                <circle cx=\"50\" cy=\"99\" r=\"19\" fill=\"#fffbe8\"\/>\n                <path d=\"M50 86 Q62 92 59 99 Q56 106 50 102 Q43 99 42 92 Q43 86 50 86Z\" fill=\"#f5e764\" stroke=\"#d4c930\" stroke-width=\".7\"\/>\n                <circle cx=\"50\" cy=\"97\" r=\"6\" fill=\"#ffd700\" opacity=\".5\"\/>\n                <!-- 75 anniversary badge -->\n                <circle cx=\"50\" cy=\"134\" r=\"11\" fill=\"#1a6b2e\"\/>\n                <text x=\"50\" y=\"131\" text-anchor=\"middle\" font-size=\"6\" fill=\"#FFD200\" font-family=\"sans-serif\" font-weight=\"900\">75<\/text>\n                <text x=\"50\" y=\"138\" text-anchor=\"middle\" font-size=\"3.5\" fill=\"#FFD200\" font-family=\"sans-serif\">YEARS<\/text>\n                <!-- mayo text -->\n                <text x=\"50\" y=\"153\" text-anchor=\"middle\" font-size=\"5\" fill=\"#2a2a2a\" font-family=\"sans-serif\" font-weight=\"600\" letter-spacing=\".5\">MAYONNAISE<\/text>\n                <text x=\"50\" y=\"160\" text-anchor=\"middle\" font-size=\"4\" fill=\"#4a4a4a\" font-family=\"sans-serif\">\u00c0 LA FRAN\u00c7AISE<\/text>\n                <!-- bottom crimp -->\n                <rect x=\"20\" y=\"163\" width=\"60\" height=\"10\" fill=\"#0f5020\"\/>\n                <line x1=\"28\" y1=\"166\" x2=\"72\" y2=\"166\" stroke=\"rgba(255,255,255,.15)\" stroke-width=\"1\"\/>\n                <line x1=\"28\" y1=\"169\" x2=\"72\" y2=\"169\" stroke=\"rgba(255,255,255,.1)\" stroke-width=\".8\"\/>\n              <\/svg>\n            <\/div>\n            <div class=\"scan-line\" id=\"scanLine\"><\/div>\n            <div class=\"cam-flash-overlay\" id=\"camFlash\"><\/div>\n            <div class=\"cam-detected\" id=\"camDetected\">\n              <div class=\"det-ring\">\u2713<\/div>\n              <div class=\"det-title\">Golden Cap detected!<\/div>\n              <div class=\"det-prize\">FIND &amp; WIN 750 CHF<\/div>\n              <div class=\"det-sub\">Redirecting to form...<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"cam-bottom\" id=\"camBottom\">\n            <div class=\"cam-thumb\"><\/div>\n            <div class=\"shutter\"><div class=\"shutter-inner\"><\/div><\/div>\n            <div class=\"cam-flip\">\ud83d\udd04<\/div>\n          <\/div>\n        <\/div>\n\n        <!-- SCREEN 2: HASHTING FORM -->\n        <div class=\"iscreen s-form\" id=\"sc2\">\n          <div class=\"form-status\">\n            <div class=\"ist\">09:41<\/div><div class=\"isi\">\u25b2 \u25cf \u25a0<\/div>\n          <\/div>\n          <div class=\"form-header\">\n            <div class=\"fh-logo\">THOMY<\/div>\n            <div class=\"fh-title\">Find &amp; Win<\/div>\n          <\/div>\n          <div class=\"form-hero-band\">\n            <div class=\"fhb-text\">\n              <div class=\"fhb-big\">FIND<sub style=\"font-size:8px;vertical-align:0\">75<\/sub> &amp; WIN<\/div>\n              <div class=\"fhb-sm\">750 CHF \u00b7 75 Jahre Thomy<\/div>\n            <\/div>\n            <div class=\"fhb-badge\">750<br>CHF<\/div>\n          <\/div>\n          <div class=\"form-body\">\n            <div class=\"finstr\"><strong>Upload je gouden dop foto<\/strong><br>+ aankoopbewijs om deel te nemen<\/div>\n            <div class=\"upload-zone\">\n              <div class=\"uz-ic\">\ud83d\udcf8<\/div>\n              <div class=\"uz-ct\">Gouden dop foto uploaden<\/div>\n              <div class=\"uz-lb\">Picture of Golden Cap<\/div>\n            <\/div>\n            <div class=\"frow\">\n              <div class=\"ffg\"><div class=\"ffl\">Voornaam *<\/div><div class=\"ffi\">Charlotte...<\/div><\/div>\n              <div class=\"ffg\"><div class=\"ffl\">Naam *<\/div><div class=\"ffi\">Ford...<\/div><\/div>\n            <\/div>\n            <div class=\"ffg\"><div class=\"ffl\">E-mail *<\/div><div class=\"ffi\"><a href=\"\/cdn-cgi\/l\/email-protection\" class=\"__cf_email__\" data-cfemail=\"71121910031d1e050514311409101c011d145f121e1c\">[email&#160;protected]<\/a><\/div><\/div>\n            <div class=\"ffg\"><div class=\"ffl\">Referentie<\/div><div class=\"ffi\">XYZ-ref...<\/div><\/div>\n            <div class=\"fterms\">\n              <div class=\"fchk\">\u2713<\/div>\n              <div class=\"fterm-t\">Ik ga akkoord met de deelnamevoorwaarden en het privacybeleid van Nestl\u00e9.<\/div>\n            <\/div>\n            <button class=\"fsubmit\">\u2705 Deelnemen &amp; winnen<\/button>\n          <\/div>\n        <\/div>\n\n        <!-- SCREEN 3: SMS VALIDATION -->\n        <div class=\"iscreen s-sms\" id=\"sc3\">\n          <div class=\"sms-status\"><div style=\"font-size:14px;font-weight:700;color:white\">09:42<\/div><\/div>\n          <div class=\"sms-top\">\n            <div class=\"sms-av\">#<\/div>\n            <div class=\"sms-info\">\n              <div class=\"ss\">Hashting Solutions<\/div>\n              <div class=\"sst\">Business verified \u2713<\/div>\n            <\/div>\n            <div class=\"sms-bdg\">SMS<\/div>\n          <\/div>\n          <div class=\"sms-feed\" id=\"smsFeed\">\n            <div class=\"sms-date\">Today<\/div>\n            <div class=\"sms-sys\">Secure Meta Business messaging<\/div>\n            <div class=\"bb out\" id=\"w1\">\n              THOMY75 Stuur gouden dop + ref XYZ naar Nestl\u00e9 Suisse om te starten.\n              <div class=\"bb-t\">11:06 \u2713\u2713<\/div>\n            <\/div>\n            <div class=\"typi\" id=\"ty\"><div class=\"tdot\"><\/div><div class=\"tdot\"><\/div><div class=\"tdot\"><\/div><\/div>\n            <div class=\"bb in\" id=\"w2\">\n              Bedankt! \ud83c\udf89 Deelname ontvangen. Validatie loopt.<br>\n              <a href=\"#\">hashting.link\/THOMY75\/status<\/a>\n              <div class=\"bb-t\">11:07<\/div>\n            <\/div>\n            <div class=\"bb in\" id=\"w3\">\n              \u2705 <strong>Je win is gevalideerd.<\/strong><br>Vul bankgegevens in voor uitbetaling 750 CHF \u2192\n              <div class=\"bb-t\">11:32<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"sms-input\">\n            <div class=\"sms-fld\">Typ een bericht...<\/div>\n            <div class=\"sms-mic\">\ud83c\udfa4<\/div>\n          <\/div>\n        <\/div>\n\n        <!-- SCREEN 4: YOU HAVE WON -->\n        <div class=\"iscreen s-won\" id=\"sc4\">\n          <div class=\"won-status\">\n            <div class=\"ist\">09:45<\/div><div class=\"isi\">\u25b2 \u25cf \u25a0<\/div>\n          <\/div>\n          <div class=\"won-header\">\n            <div class=\"won-logo\">THOMY<\/div>\n            <div style=\"font-size:10px;font-weight:700;color:white;\"># You have won<\/div>\n          <\/div>\n          <div class=\"won-ht-bar\">\n            <div class=\"wh-mark\">#<\/div>\n            <div class=\"wh-lbl\">Hashting \u00b7 Win validated \u2713<\/div>\n          <\/div>\n          <div class=\"won-body\">\n            <div class=\"won-prize-box\">\n              <div class=\"wpb-top\">Je win is bevestigd \ud83c\udfc6<\/div>\n              <div class=\"wpb-main\">FIND &amp; WIN<\/div>\n              <div class=\"wpb-amount\">750<span class=\"wpb-cur\"> CHF<\/span><\/div>\n            <\/div>\n            <div class=\"validated-box\">\n              <div class=\"vbox-ic\">\u2705<\/div>\n              <div>\n                <div class=\"vbox-t\">\"Your win has been validated\"<\/div>\n                <div class=\"vbox-s\">Complete your bank details to receive 750 CHF<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"bank-title\">Bankgegevens invoeren<\/div>\n            <div class=\"bank-note\">Vul je IBAN in voor uitbetaling van 750 CHF binnen 5\u20137 werkdagen.<\/div>\n            <div class=\"bfg\"><div class=\"bfl\">IBAN *<\/div><div class=\"bfi\">CH93 0076 2011 6238 5...<\/div><\/div>\n            <div class=\"bfg\"><div class=\"bfl\">Naam rekeninghouder *<\/div><div class=\"bfi\">Charlotte Ford<\/div><\/div>\n            <button class=\"bsubmit\">\ud83d\udcb3 Uitbetaling aanvragen<\/button>\n          <\/div>\n        <\/div>\n\n      <\/div><!-- \/iphone-screen -->\n    <\/div><!-- \/iphone -->\n\n    <!-- progress dots -->\n    <div class=\"progress-dots\">\n      <div class=\"pdot active\" id=\"pd1\"><\/div>\n      <div class=\"pdot\" id=\"pd2\"><\/div>\n      <div class=\"pdot\" id=\"pd3\"><\/div>\n      <div class=\"pdot\" id=\"pd4\"><\/div>\n    <\/div>\n    <div class=\"step-label\" id=\"stepLabel\">\n      <span>01<\/span> Scan golden cap\n    <\/div>\n  <\/div><!-- \/iphone-stage -->\n\n<\/div><!-- \/hero -->\n<\/section>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 CASE STUDY BODY \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"case-body\">\n\n  <div class=\"section\">\n    <div class=\"section-eyebrow\">What happened<\/div>\n    <h2 class=\"section-title\">The campaign that made Switzerland<br>look for a <span>stolen recipe.<\/span><\/h2>\n    <div class=\"section-body\">\n      <p>To celebrate 75 years of Thomy mayonnaise, Charlotte Ford and the team announced that their secret recipe had been stolen in a cyberattack. They launched a platform where consumers could investigate the theft gamified clues, a dedicated community, and a golden cap reward mechanic that turned every Thomy buyer into a potential investigator.<\/p>\n      <p>The campaign has just started. But the architecture behind it already reveals something interesting about what separates a promotion that builds assets from one that just burns budget.<\/p>\n    <\/div>\n  <\/div>\n\n  <div class=\"lessons-grid\">\n    <div class=\"lesson-card\">\n      <div class=\"lc-num\">Lesson 01<\/div>\n      <h3 class=\"lc-title\">High incentive = high fraud risk. Bulletproof the flow first.<\/h3>\n      <div class=\"lc-body\">When the reward is meaningful, the system has to be serious. Most brands do this backwards: creative first, redemption flow last. <strong>That's where campaigns leak.<\/strong> The bigger the prize, the more critical the validation architecture becomes.<\/div>\n    <\/div>\n    <div class=\"lesson-card\">\n      <div class=\"lc-num\">Lesson 02<\/div>\n      <h3 class=\"lc-title\">Product love doesn't drive participation.<\/h3>\n      <div class=\"lc-body\">Everyone likes mayonnaise. But nobody scans caps or shares data just because the mayo tastes good. <strong>Brand love creates attention. Incentives create action.<\/strong> The real skill is attracting the right shopper not just the most motivated one.<\/div>\n    <\/div>\n    <div class=\"lesson-card\">\n      <div class=\"lc-num\">Lesson 03<\/div>\n      <h3 class=\"lc-title\">A promotion without data is just entertainment.<\/h3>\n      <div class=\"lc-body\">The quest, the golden cap, the community all valuable. But if the system doesn't capture who participated, whether they purchased, and whether they returned, <strong>you built a show, not a system.<\/strong><\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"pq\">\n    Engagement without measurement is a campaign. Engagement with measurement becomes a growth asset.\n  <\/div>\n\n  <div class=\"section\">\n    <div class=\"section-eyebrow\">What this reveals<\/div>\n    <h2 class=\"section-title\">This campaign is just getting started.<br>But <span>the structure already teaches.<\/span><\/h2>\n    <div class=\"section-body\">\n      <p>After 10 years running cashback and contest promotions across FMCG, we kept seeing the same issues in category after category, market after market. Most of them are invisible until the campaign is already live.<\/p>\n    <\/div>\n  <\/div>\n\n  <div class=\"mistakes-strip\">\n    <div class=\"ms-header\">\n      <div class=\"ms-ey\">10 years \u00b7 7 patterns<\/div>\n      <h3 class=\"ms-t\">The mistakes we still see<br>across FMCG campaigns<br><span>every single season.<\/span><\/h3>\n      <p class=\"ms-sub\">These aren't edge cases. They happen in every market, every vertical, every season. Spot them before launch not after.<\/p>\n    <\/div>\n\n    <div class=\"mistakes-list\">\n\n      <!-- 01 -->\n      <div class=\"mi\">\n        <div class=\"min\">01<\/div>\n        <div class=\"mi-content\">\n          <div class=\"mit\">Loyal buyers \u2260 new buyers. You're subsidising loyalty and calling it acquisition.<\/div>\n          <div class=\"mib\">High-frequency buyers know your mechanics. If your promo only rewards them, you're paying for behaviour you already had. Design for acquisition new shoppers, new baskets, new revenue.<\/div>\n        <\/div>\n        <span class=\"mi-tag tag-orange\">Acquisition risk<\/span>\n      <\/div>\n\n      <!-- 02 FEATURED: Fraud -->\n      <div class=\"mi featured\">\n        <div class=\"min\">02<\/div>\n        <div class=\"mi-content\">\n          <div class=\"mit\">Big prizes = big fraud. High incentives attract the wrong crowd protect your campaign like Thomy does.<\/div>\n          <div class=\"mib\">A 750 CHF prize is a magnet. Not just for fans also for fraudsters with burner accounts and duplicate receipts. Validation isn't a compliance checkbox. It's the architecture that keeps your campaign clean. <strong>Thomy built it in from day one.<\/strong><\/div>\n        <\/div>\n        <span class=\"mi-tag tag-red\">Fraud risk<\/span>\n      <\/div>\n\n      <!-- 03 -->\n      <div class=\"mi\">\n        <div class=\"min\">03<\/div>\n        <div class=\"mi-content\">\n          <div class=\"mit\">6 steps between scan and reward is 3 too many. You measure completions not drop-off.<\/div>\n          <div class=\"mib\">Most brands only see the 3% who finished. The other 97% left somewhere in your funnel and nobody knows where. Every extra step is a leak you don't see.<\/div>\n        <\/div>\n        <span class=\"mi-tag tag-orange\">UX risk<\/span>\n      <\/div>\n\n      <!-- 04 -->\n      <div class=\"mi\">\n        <div class=\"min\">04<\/div>\n        <div class=\"mi-content\">\n          <div class=\"mit\">Receipt data tells you everything basket, retailer, repeat rate. Most brands collect it. Almost none use it.<\/div>\n          <div class=\"mib\">You're sitting on gold. Every uploaded receipt is a window into actual purchase behaviour. The brands that read it build smarter promotions next time.<\/div>\n        <\/div>\n        <span class=\"mi-tag tag-blue\">Data risk<\/span>\n      <\/div>\n\n      <!-- 05 -->\n      <div class=\"mi\">\n        <div class=\"min\">05<\/div>\n        <div class=\"mi-content\">\n          <div class=\"mit\">A promotion without measurement is entertainment. Engagement without data is applause.<\/div>\n          <div class=\"mib\">Community buzz without capture is a show. Participation numbers without purchase linkage are vanity metrics. You need the connection between attention and transaction.<\/div>\n        <\/div>\n        <span class=\"mi-tag tag-blue\">Measurement risk<\/span>\n      <\/div>\n\n      <!-- 06 -->\n      <div class=\"mi\">\n        <div class=\"min\">06<\/div>\n        <div class=\"mi-content\">\n          <div class=\"mit\">Which retailer actually recruited new volume not just the most entries?<\/div>\n          <div class=\"mib\">Total redemptions don't tell you where new buyers came from. Without a unified funnel, you're optimising your media budget on guesswork.<\/div>\n        <\/div>\n        <span class=\"mi-tag tag-blue\">Attribution risk<\/span>\n      <\/div>\n\n      <!-- 07 FEATURED: Master hook -->\n      <div class=\"mi featured\">\n        <div class=\"min\">07<\/div>\n        <div class=\"mi-content\">\n          <div class=\"mit\">Every euro spent. Every product sold. Linked. That connection is the only proof that compounds.<\/div>\n          <div class=\"mib\">Verified spend-to-sale is the only metric that gets smarter over time. It tells you who to target next, which mechanic to scale, and which retailer to cut. Without it, every campaign starts from zero. <strong>With it, every campaign builds on the last.<\/strong><\/div>\n        <\/div>\n        <span class=\"mi-tag tag-green\">The compounding edge<\/span>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n<\/div><!-- \/case-body -->\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 ENDLESS ENGAGEMENT LINK \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div style=\"padding:0 24px 40px; max-width:860px; margin:0 auto;\">\n  <a href=\"https:\/\/hashting.com\/6599-2\/\" target=\"_blank\" style=\"text-decoration:none; display:block;\">\n    <div style=\"\n      background:var(--bg-card); border:1px solid var(--border); border-radius:16px;\n      padding:32px 36px; display:grid; grid-template-columns:1fr auto;\n      align-items:center; gap:32px; transition:border-color .2s, box-shadow .2s;\n      position:relative; overflow:hidden;\n    \" onmouseover=\"this.style.borderColor='var(--green-border)';this.style.boxShadow='0 8px 32px rgba(95,187,70,0.1)'\" onmouseout=\"this.style.borderColor='var(--border)';this.style.boxShadow='none'\">\n      <div style=\"position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--green);border-radius:16px 0 0 16px;\"><\/div>\n      <div style=\"padding-left:12px;\">\n        <div style=\"font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--green);margin-bottom:8px;\">Hashting Solution<\/div>\n        <div style=\"font-size:18px;font-weight:800;letter-spacing:-.5px;color:var(--text);margin-bottom:6px;\">Endless Engagement<\/div>\n        <div style=\"font-size:13px;font-style:italic;color:var(--text-mid);margin-bottom:8px;line-height:1.5;\">One message is worth a thousand impressions.<br>One link. Endless engagement.<\/div>\n        <div style=\"font-size:13px;color:var(--text-mid);line-height:1.6;\">Build direct consumer relationships that compound with every interaction. Own the connection, regardless of where they buy.<\/div>\n      <\/div>\n      <div style=\"flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:10px;\">\n        <div style=\"background:var(--green);color:white;font-weight:700;font-size:12px;padding:11px 20px;border-radius:8px;white-space:nowrap;display:flex;align-items:center;gap:6px;\">Book a strategy session \u2192<\/div>\n        <div style=\"font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text-dim);letter-spacing:.05em;\">hashting.com<\/div>\n      <\/div>\n    <\/div>\n  <\/a>\n<\/div>\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 CTA \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div style=\"padding:0 24px 96px; max-width:860px; margin:0 auto;\">\n  <div class=\"cta-block\">\n    <div class=\"cta-left\">\n      <div class=\"cta-eyebrow\">Free \u00b7 3 minutes \u00b7 No demo<\/div>\n      <div class=\"cta-title\">Is your next campaign as<br>bulletproof as Thomy's?<\/div>\n      <div class=\"cta-sub\">Input your campaign mechanics. Find out where it's about to leak before you launch.<\/div>\n      <div class=\"cta-note\">Takes 3 minutes \u00b7 No login required<\/div>\n    <\/div>\n    <a href=\"https:\/\/tally.so\/r\/Bz1Ql1\" target=\"_blank\" class=\"cta-btn\">\n      Score my campaign \u2192\n    <\/a>\n  <\/div>\n<\/div>\n\n\n<script>\nconst sleep = ms => new Promise(r => setTimeout(r, ms));\n\nconst STEPS = [\n  { id:'sc1', label:'<span>01<\/span> Scan golden cap', caption:'Step 01 Scan golden cap' },\n  { id:'sc2', label:'<span>02<\/span> Hashting form', caption:'Step 02 Submit photo' },\n  { id:'sc3', label:'<span>03<\/span> SMS validation', caption:'Step 03 Validate win' },\n  { id:'sc4', label:'<span>04<\/span> You have won', caption:'Step 04 750 CHF payout' },\n];\n\nfunction setDots(active) {\n  ['pd1','pd2','pd3','pd4'].forEach((id,i) => {\n    const el = document.getElementById(id);\n    el.className = 'pdot';\n    if (i < active) el.classList.add('done');\n    else if (i === active) el.classList.add('active');\n  });\n}\n\nfunction setScreen(idx) {\n  document.querySelectorAll('.iscreen').forEach(el => el.classList.remove('active'));\n  document.getElementById(STEPS[idx].id).classList.add('active');\n  document.getElementById('stepLabel').innerHTML = STEPS[idx].label;\n  document.getElementById('stageCaption').textContent = STEPS[idx].caption;\n  setDots(idx);\n}\n\nfunction resetCamera() {\n  ['camChip','camFrame','camBottom','tw','scanLine','camDetected'].forEach(id => {\n    const el = document.getElementById(id);\n    if (el) el.classList.remove('on');\n  });\n  const fl = document.getElementById('camFlash');\n  if (fl) fl.style.animation = '';\n}\n\nfunction resetSMS() {\n  ['w1','w2','w3','ty'].forEach(id => {\n    const el = document.getElementById(id);\n    if (el) el.classList.remove('s');\n  });\n}\n\nasync function run() {\n  \/\/ \u2500\u2500 SCREEN 1: Camera \u2500\u2500\n  setScreen(0);\n  await sleep(500);\n  document.getElementById('tw').classList.add('on');\n  document.getElementById('camChip').classList.add('on');\n  document.getElementById('camFrame').classList.add('on');\n  document.getElementById('camBottom').classList.add('on');\n  await sleep(1000);\n  document.getElementById('scanLine').classList.add('on');\n  await sleep(2200);\n  document.getElementById('scanLine').classList.remove('on');\n  const fl = document.getElementById('camFlash');\n  fl.style.animation = 'flashA 0.32s ease forwards';\n  await sleep(340);\n  fl.style.animation = '';\n  document.getElementById('tw').classList.remove('on');\n  await sleep(100);\n  document.getElementById('camDetected').classList.add('on');\n  await sleep(1400);\n  document.getElementById('camDetected').classList.remove('on');\n  resetCamera();\n  await sleep(200);\n\n  \/\/ \u2500\u2500 SCREEN 2: Form \u2500\u2500\n  setScreen(1);\n  await sleep(2200);\n\n  \/\/ \u2500\u2500 SCREEN 3: SMS \u2500\u2500\n  setScreen(2);\n  await sleep(600);\n  document.getElementById('w1').classList.add('s');\n  await sleep(800);\n  document.getElementById('ty').classList.add('s');\n  await sleep(1300);\n  document.getElementById('ty').classList.remove('s');\n  document.getElementById('w2').classList.add('s');\n  await sleep(900);\n  document.getElementById('w3').classList.add('s');\n  await sleep(1200);\n\n  \/\/ \u2500\u2500 SCREEN 4: Won \u2500\u2500\n  setScreen(3);\n  await sleep(4500);\n\n  \/\/ \u2500\u2500 RESET & LOOP \u2500\u2500\n  resetSMS();\n  await sleep(300);\n  run();\n}\n\nwindow.addEventListener('DOMContentLoaded', run);\n<\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Hashting \u00d7 Thomy Golden Cap Campaign Case Study \u00b7 Thomy \u00d7 Hashting Thomy staged acyberattack on theirown mayo recipe. Every FMCG brandshould be watching. Gamified clues. Golden cap rewards. 750 CHF prizes. A community looking for the missing recipe. Here&#8217;s what the architecture behind it reveals and seven lessons from ten years of cashback promotions. [&hellip;]<\/p>\n","protected":false},"author":222351149,"featured_media":6753,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1413,1377,1414],"tags":[],"class_list":["post-6710","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-case-studies","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands - Hashting<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hashting.com\/es\/thomy-cashback-case\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands - Hashting\" \/>\n<meta property=\"og:description\" content=\"Hashting \u00d7 Thomy Golden Cap Campaign Case Study \u00b7 Thomy \u00d7 Hashting Thomy staged acyberattack on theirown mayo recipe. Every FMCG brandshould be watching. Gamified clues. Golden cap rewards. 750 CHF prizes. A community looking for the missing recipe. Here&#8217;s what the architecture behind it reveals and seven lessons from ten years of cashback promotions. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hashting.com\/es\/thomy-cashback-case\/\" \/>\n<meta property=\"og:site_name\" content=\"Hashting\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-09T15:30:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-13T09:06:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm\u00adafbeelding-2026-03-10-om-11.57.52.png\" \/>\n\t<meta property=\"og:image:width\" content=\"708\" \/>\n\t<meta property=\"og:image:height\" content=\"409\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"veronikae65b3a8ad8\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"veronikae65b3a8ad8\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/\"},\"author\":{\"name\":\"veronikae65b3a8ad8\",\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#\\\/schema\\\/person\\\/7a9a76f0c0bdc8abf4b78b3f5b9966b7\"},\"headline\":\"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands\",\"datePublished\":\"2026-03-09T15:30:53+00:00\",\"dateModified\":\"2026-03-13T09:06:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/\"},\"wordCount\":951,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/hashting.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1\",\"articleSection\":[\"Blog\",\"Case Studies\",\"News\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/\",\"url\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/\",\"name\":\"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands - Hashting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/hashting.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1\",\"datePublished\":\"2026-03-09T15:30:53+00:00\",\"dateModified\":\"2026-03-13T09:06:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/hashting.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/hashting.com\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1\",\"width\":708,\"height\":409,\"caption\":\"How Thomy made the most of their 75th birthday campaign.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hashting.com\\\/thomy-cashback-case\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/hashting.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#website\",\"url\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/\",\"name\":\"Hashting\",\"description\":\"direct-to-consumer engagement &amp; promotions through WhatsApp, SMS &amp; Messenger\",\"publisher\":{\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#organization\",\"name\":\"Hashting\",\"url\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hashting.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/Hashting-Hashtag-Green-only_hash-3604813529-1654170585495.png\",\"contentUrl\":\"https:\\\/\\\/hashting.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/Hashting-Hashtag-Green-only_hash-3604813529-1654170585495.png\",\"width\":5906,\"height\":5906,\"caption\":\"Hashting\"},\"image\":{\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hashting\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hashtingcom.wpcomstaging.com\\\/#\\\/schema\\\/person\\\/7a9a76f0c0bdc8abf4b78b3f5b9966b7\",\"name\":\"veronikae65b3a8ad8\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/237c4ba726816ce19cc58d42b1e921a39cbb82d71a15ebd1c1ad0fddabed8366?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/237c4ba726816ce19cc58d42b1e921a39cbb82d71a15ebd1c1ad0fddabed8366?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/237c4ba726816ce19cc58d42b1e921a39cbb82d71a15ebd1c1ad0fddabed8366?s=96&d=identicon&r=g\",\"caption\":\"veronikae65b3a8ad8\"},\"url\":\"https:\\\/\\\/hashting.com\\\/es\\\/author\\\/veronikae65b3a8ad8\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands - Hashting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hashting.com\/es\/thomy-cashback-case\/","og_locale":"es_MX","og_type":"article","og_title":"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands - Hashting","og_description":"Hashting \u00d7 Thomy Golden Cap Campaign Case Study \u00b7 Thomy \u00d7 Hashting Thomy staged acyberattack on theirown mayo recipe. Every FMCG brandshould be watching. Gamified clues. Golden cap rewards. 750 CHF prizes. A community looking for the missing recipe. Here&#8217;s what the architecture behind it reveals and seven lessons from ten years of cashback promotions. [&hellip;]","og_url":"https:\/\/hashting.com\/es\/thomy-cashback-case\/","og_site_name":"Hashting","article_published_time":"2026-03-09T15:30:53+00:00","article_modified_time":"2026-03-13T09:06:18+00:00","og_image":[{"width":708,"height":409,"url":"https:\/\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm\u00adafbeelding-2026-03-10-om-11.57.52.png","type":"image\/png"}],"author":"veronikae65b3a8ad8","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"veronikae65b3a8ad8","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hashting.com\/thomy-cashback-case\/#article","isPartOf":{"@id":"https:\/\/hashting.com\/thomy-cashback-case\/"},"author":{"name":"veronikae65b3a8ad8","@id":"https:\/\/hashtingcom.wpcomstaging.com\/#\/schema\/person\/7a9a76f0c0bdc8abf4b78b3f5b9966b7"},"headline":"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands","datePublished":"2026-03-09T15:30:53+00:00","dateModified":"2026-03-13T09:06:18+00:00","mainEntityOfPage":{"@id":"https:\/\/hashting.com\/thomy-cashback-case\/"},"wordCount":951,"commentCount":0,"publisher":{"@id":"https:\/\/hashtingcom.wpcomstaging.com\/#organization"},"image":{"@id":"https:\/\/hashting.com\/thomy-cashback-case\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1","articleSection":["Blog","Case Studies","News"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/hashting.com\/thomy-cashback-case\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/hashting.com\/thomy-cashback-case\/","url":"https:\/\/hashting.com\/thomy-cashback-case\/","name":"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands - Hashting","isPartOf":{"@id":"https:\/\/hashtingcom.wpcomstaging.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hashting.com\/thomy-cashback-case\/#primaryimage"},"image":{"@id":"https:\/\/hashting.com\/thomy-cashback-case\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1","datePublished":"2026-03-09T15:30:53+00:00","dateModified":"2026-03-13T09:06:18+00:00","breadcrumb":{"@id":"https:\/\/hashting.com\/thomy-cashback-case\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hashting.com\/thomy-cashback-case\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/hashting.com\/thomy-cashback-case\/#primaryimage","url":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1","contentUrl":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1","width":708,"height":409,"caption":"How Thomy made the most of their 75th birthday campaign."},{"@type":"BreadcrumbList","@id":"https:\/\/hashting.com\/thomy-cashback-case\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hashting.com\/"},{"@type":"ListItem","position":2,"name":"Thomy: Case Study \u00a0\u00b7\u00a0 Campaign Architecture \u00b7 FMCG \u00b7 Sauce &amp; Condiment Brands"}]},{"@type":"WebSite","@id":"https:\/\/hashtingcom.wpcomstaging.com\/#website","url":"https:\/\/hashtingcom.wpcomstaging.com\/","name":"Hashting","description":"direct-to-consumer engagement &amp; promotions through WhatsApp, SMS &amp; Messenger","publisher":{"@id":"https:\/\/hashtingcom.wpcomstaging.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hashtingcom.wpcomstaging.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/hashtingcom.wpcomstaging.com\/#organization","name":"Hashting","url":"https:\/\/hashtingcom.wpcomstaging.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/hashtingcom.wpcomstaging.com\/#\/schema\/logo\/image\/","url":"https:\/\/hashting.com\/wp-content\/uploads\/2022\/06\/Hashting-Hashtag-Green-only_hash-3604813529-1654170585495.png","contentUrl":"https:\/\/hashting.com\/wp-content\/uploads\/2022\/06\/Hashting-Hashtag-Green-only_hash-3604813529-1654170585495.png","width":5906,"height":5906,"caption":"Hashting"},"image":{"@id":"https:\/\/hashtingcom.wpcomstaging.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/hashting"]},{"@type":"Person","@id":"https:\/\/hashtingcom.wpcomstaging.com\/#\/schema\/person\/7a9a76f0c0bdc8abf4b78b3f5b9966b7","name":"veronikae65b3a8ad8","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/237c4ba726816ce19cc58d42b1e921a39cbb82d71a15ebd1c1ad0fddabed8366?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/237c4ba726816ce19cc58d42b1e921a39cbb82d71a15ebd1c1ad0fddabed8366?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/237c4ba726816ce19cc58d42b1e921a39cbb82d71a15ebd1c1ad0fddabed8366?s=96&d=identicon&r=g","caption":"veronikae65b3a8ad8"},"url":"https:\/\/hashting.com\/es\/author\/veronikae65b3a8ad8\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.57.52.png?fit=708%2C409&ssl=1","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pe2vFv-1Ke","jetpack-related-posts":[{"id":6718,"url":"https:\/\/hashting.com\/es\/zyla-womens-day\/","url_meta":{"origin":6710,"position":0},"title":"ZYLA-case: 100% cashback. Zero wasted budget. That&#8217;s what happens when you start with the end in mind!","author":"veronikae65b3a8ad8","date":"10th marzo 2026","format":false,"excerpt":"ZYLA \u00d7 Hashting \u00b7 Case Study \u00b7 Women's Day Campaign Case Study \u00b7 ZYLA \u00d7 Hashting Campaign Architecture FMCG \u00b7 Beverages Cashback 7 min ZYLA built a Women's Day campaign.The agency is going for the award.The marketing team is going for the data. Most cultural campaigns generate reach. ZYLA (Spadel\u2026","rel":"","context":"En &quot;Blog&quot;","block_context":{"text":"Blog","link":"https:\/\/hashting.com\/es\/category\/blog\/"},"img":{"alt_text":"FREE SAMPLES without breaking the bank","src":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.53.16.png?fit=733%2C436&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.53.16.png?fit=733%2C436&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.53.16.png?fit=733%2C436&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2026\/03\/Scherm%C2%ADafbeelding-2026-03-10-om-11.53.16.png?fit=733%2C436&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":359,"url":"https:\/\/hashting.com\/es\/in-store-digital-coupon\/","url_meta":{"origin":6710,"position":1},"title":"In-Store con cupones digitales","author":"Hashting Tools","date":"13th junio 2022","format":false,"excerpt":"case study. in-store activation with digital coupon & cashback the challenge. How can a cosmetics brand optimise\u00a0national promo campaign at independent pharmacies? the outcome. Combining Hashting's digital couponing & cashback technology allowed a cosmetics brand to generate 4x higher promo impact and 20% more active pharmacies #1 connect. ON-TRADE MATERIALS\u2026","rel":"","context":"En &quot;Case Studies&quot;","block_context":{"text":"Case Studies","link":"https:\/\/hashting.com\/es\/category\/case-studies\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/in-store-digital-voucher_beauty.png?fit=1200%2C938&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/in-store-digital-voucher_beauty.png?fit=1200%2C938&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/in-store-digital-voucher_beauty.png?fit=1200%2C938&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/in-store-digital-voucher_beauty.png?fit=1200%2C938&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/in-store-digital-voucher_beauty.png?fit=1200%2C938&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4328,"url":"https:\/\/hashting.com\/es\/in-store-contest-with-cashback-energy-drink\/","url_meta":{"origin":6710,"position":2},"title":"Concursos para promociones en tienda con cashback","author":"Hashting Tools","date":"15th diciembre 2022","format":false,"excerpt":"case study. In-Store contest with cashback\/Energy drink the challenge. How can an energy drink brand increase the promo impact of an In-Store contest? the outcome. Hashting's technology allowed a challenger brand in energy drinks to have 5x higher consumer participation while decreasing the budget by 50% #1 connect. EASY CONNECTION\u2026","rel":"","context":"En &quot;Case Studies&quot;","block_context":{"text":"Case Studies","link":"https:\/\/hashting.com\/es\/category\/case-studies\/"},"img":{"alt_text":"TILE 4 \u2014 In-Store Contest \/ Energy drink 97% store participation. When the mechanic is right, they all show up.","src":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/12\/energy-drink-more-impact-.png?fit=960%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/12\/energy-drink-more-impact-.png?fit=960%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/12\/energy-drink-more-impact-.png?fit=960%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/12\/energy-drink-more-impact-.png?fit=960%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4310,"url":"https:\/\/hashting.com\/es\/drive-to-store-with-voucher-coffee-brand\/","url_meta":{"origin":6710,"position":3},"title":"Drive-to-store con ticket de compra","author":"Hashting Tools","date":"15th diciembre 2022","format":false,"excerpt":"case study. Drive to store with voucher-Coffee brand the challenge. How can a coffee brand boost new customer acquisition and generate authentic reviews at the same time the outcome. Hashting's digital coupon technology that runs on WhatsApp allowed a coffee brand to\u00a0recruit 2x more new customers\u00a0& become #1 on coffee\u2026","rel":"","context":"En &quot;Case Studies&quot;","block_context":{"text":"Case Studies","link":"https:\/\/hashting.com\/es\/category\/case-studies\/"},"img":{"alt_text":"Drive-to-Store with Voucher \/ Coffee brand Current: Drive-to-store with Voucher New excerpt: Impressions weren't enough. The voucher got them in the door.","src":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/12\/coffee-tom.jpg?fit=960%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/12\/coffee-tom.jpg?fit=960%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/12\/coffee-tom.jpg?fit=960%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/12\/coffee-tom.jpg?fit=960%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":896,"url":"https:\/\/hashting.com\/es\/digital-sampling-with-review-generation\/","url_meta":{"origin":6710,"position":4},"title":"Sampling digital con rese\u00f1as de tus clientes","author":"Hashting Tools","date":"30th junio 2022","format":false,"excerpt":"case study. digital sampling with ratings & reviews the challenge. How can leading water brand A boost sales impact of their social media campaign during Christmas time? the outcome. Adding Hashting's digital cashback technology to their social media campaign allowed leading water brand A toincrease sales by 250% (IRI)at a\u2026","rel":"","context":"En &quot;Case Studies&quot;","block_context":{"text":"Case Studies","link":"https:\/\/hashting.com\/es\/category\/case-studies\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/digital-sampling-review-generation.png?fit=1200%2C938&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/digital-sampling-review-generation.png?fit=1200%2C938&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/digital-sampling-review-generation.png?fit=1200%2C938&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/digital-sampling-review-generation.png?fit=1200%2C938&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/06\/digital-sampling-review-generation.png?fit=1200%2C938&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":2975,"url":"https:\/\/hashting.com\/es\/digital-sampling-tv\/","url_meta":{"origin":6710,"position":5},"title":"Sampling digital de un anuncio de TV","author":"Hashting Tools","date":"18th agosto 2022","format":false,"excerpt":"case study. digital sampling from TV advertising the challenge. How can a leading instant noodle brand drive and track in-store sales coming from TV ads? the outcome. Hashting's technology allowed the brand for the 1st time ever to track the instant sales impact from a TV campaign\u00a0 and generate\u00a018% more\u2026","rel":"","context":"En &quot;Case Studies&quot;","block_context":{"text":"Case Studies","link":"https:\/\/hashting.com\/es\/category\/case-studies\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/08\/drive-to-store-promotion-tv-ad.png?fit=1200%2C940&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/08\/drive-to-store-promotion-tv-ad.png?fit=1200%2C940&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/08\/drive-to-store-promotion-tv-ad.png?fit=1200%2C940&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/08\/drive-to-store-promotion-tv-ad.png?fit=1200%2C940&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/hashting.com\/wp-content\/uploads\/2022\/08\/drive-to-store-promotion-tv-ad.png?fit=1200%2C940&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/posts\/6710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/users\/222351149"}],"replies":[{"embeddable":true,"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/comments?post=6710"}],"version-history":[{"count":9,"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/posts\/6710\/revisions"}],"predecessor-version":[{"id":6724,"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/posts\/6710\/revisions\/6724"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/media\/6753"}],"wp:attachment":[{"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/media?parent=6710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/categories?post=6710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hashting.com\/es\/wp-json\/wp\/v2\/tags?post=6710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}