Trang chủ
Các bài mới
Latest activity
Biên tập viên
Diễn Đàn
Bài viết mới
Tìm kiếm diễn đàn
Tin Mới
Bài viết mới
New resources
Bài đăng tiểu sử mới
Hoạt động mới nhất
Resources
Latest reviews
Search resources
Thành Viên
Khách truy cập hiện tại
Bài mới trên trang cá nhân
Tìm kiếm bài đăng trong trang cá nhân
Tool
SMTool - Công cụ đăng bài tự động Facebook
50 SEO Tools
Photoshop online
Facebook Video Down
Cầu nguyện Genshin
Biolink
Genshin map
Đăng nhập
Đăng ký
Mới
Tìm kiếm
Tìm kiếm
Chỉ tìm trong tiêu đề
bởi:
Bài viết mới
Tìm kiếm diễn đàn
Menu
Đăng nhập
Đăng ký
Install the app
Install
28/06 cập nhật đăng ký đăng nhập qua Google & Facebook
Diễn Đàn
Thủ thuật
Thủ thuật internet
Đổi nguồn click Zalo thành web — nghi vấn ở sàn và cách fix
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Nội dung
<blockquote data-quote="TenHoshi" data-source="post: 32025" data-attributes="member: 1"><p><h3>1. Nghi vấn</h3><p>Đơn phát sinh từ traffic Zalo bị sàn xếp vào cột <strong>Kênh = </strong>Zalo, nghi là nguyên nhân đơn bị huỷ/không duyệt hoa hồng cao hơn các kênh khác.</p><p></p><p><strong>Chưa có số liệu chứng minh tiền đề này</strong> — nó đến từ quan sát thủ công, chưa tính tỷ lệ huỷ theo từng giá trị Kênh. Các bên áp fix nên biết trước điểm này.</p><p></p><h3>2. Sàn suy ra "Kênh" từ đâu</h3><p>Kết luận từ 3 mẫu đơn thật, cùng một pipeline s.shopee.vn/an_redir mà ra 3 kênh khác nhau:</p><p></p><table style='width: 100%'><tr><th>Kênh sàn báo</th><th>Khớp với</th></tr><tr><td>Facebook</td><td>referrer m.facebook.com / l.facebook.com</td></tr><tr><td>EdgeBrowser</td><td>không có referrer nhận diện được → rơi về tên trình duyệt</td></tr><tr><td>Others</td><td>không phân loại được</td></tr></table><p>→ Sàn chốt kênh <strong>lúc click</strong>, <strong>ưu tiên referrer</strong>, UA/tên trình duyệt làm dự phòng.</p><p></p><p>Giá trị Kênh quan sát được: Facebook, Zalo, Websites, Others, YouTube, EdgeBrowser, Google Search, TikTok.</p><p></p><h3>3. Nguyên nhân kỹ thuật</h3><p>Redirect 302 <strong>giữ nguyên referrer của request gốc</strong>. Khách bấm link trong webview Zalo thì referrer <a href="https://jp.zaloapp.com/">https://jp.zaloapp.com/</a> được đẩy thẳng sang sàn → sàn xếp kênh Zalo.</p><p></p><p>Đo trên dự án referrer jp.zaloapp.com chiếm<strong> (30%)</strong>, UA webview Zalo chiếm <strong>36%</strong>.</p><p></p><h3>4. Cách fix</h3><p>Bỏ 302 cho người thật, chuyển tiếp bằng <strong>trang trung gian HTML</strong>: trình duyệt tải trang của domain rút gọn rồi tự location.replace() sang sàn → referrer gửi sang sàn là domain rút gọn, không còn jp.zaloapp.com. Thêm Referrer-Policy: origin để chắc chắn không rơi về referrer cũ. Khách không phải thao tác thêm, chuyển tiếp xong trong ~150ms.</p><p></p><p><strong>Bot xem trước link vẫn phải nhận 302.</strong> Zalo/Telegram/Facebook dựng thẻ preview trong chat bằng bot; cho bot xem trang trung gian thì thẻ hiện "Đang mở liên kết…" thay vì sản phẩm. Bot chiếm khoảng 2/3 request (7 ngày gần nhất: 69.183 bot / 36.357 người thật).</p><p></p><p>[CODE]// $goto = link affiliate đích đã dựng xong</p><p>$ua = strtolower($_SERVER['HTTP_USER_AGENT'] ?? '');</p><p></p><p>// Bot = không phải trình duyệt (mọi trình duyệt thật đều có token "mozilla";</p><p>// Opera Mini là ngoại lệ duy nhất còn thấy trong log), hoặc bot giả token mozilla.</p><p>// Vế 1 bắt trọn curl, Go-http-client, python-requests, TelegramBot, UA rỗng và</p><p>// "Zalo/… CFNetwork/… Darwin/…" (bộ lấy preview native của Zalo iOS).</p><p>$is_bot = (strpos($ua, 'mozilla') === false && strpos($ua, 'opera') === false)</p><p> || preg_match('#bot|crawl|spider|slurp|externalhit|preview|embed|coccoc|yandex'</p><p> . '|ahrefs|semrush|okhttp|fasthttp|curl/|wget|python-requests|go-http-client'</p><p> . '|chatgpt|headlesschrome#', $ua);</p><p></p><p>if ($is_bot) {</p><p> header('Location: ' . $goto); // thẻ preview trong chat vẫn ra sản phẩm</p><p> exit;</p><p>}</p><p></p><p>header('Referrer-Policy: origin');</p><p>header('Cache-Control: no-store');</p><p>$js = json_encode($goto, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP</p><p> | JSON_HEX_APOS | JSON_HEX_QUOT);</p><p>$h = htmlspecialchars($goto, ENT_QUOTES, 'UTF-8');</p><p>?></p><p><!DOCTYPE html><html lang="vi"><head><meta charset="utf-8"></p><p><!-- Script đứng trước mọi thứ khác: chạy ngay khi parse tới đây, không đợi style/body --></p><p><script>location.replace(<?= $js ?>);</script></p><p><noscript><meta data-fr-http-equiv="refresh" content="0;url=<?= $h ?>"></noscript></p><p><title>Đang mở liên kết…</title></head><body></body></html></p><p>[/CODE]</p><p></p><p>Hai việc kèm theo (ít quan trọng hơn nhưng nên làm cùng):</p><ul> <li data-xf-list-type="ul">sub_id<strong> không chứa chữ nhận diện nguồn.</strong> Bên mình đổi tag mặc định zalobot → web + 4 ký tự ngẫu nhiên, mỗi bot một mã. Khách cũ không bị đổi ngầm để không vỡ bộ lọc đối soát đơn cũ — nên hiện vẫn còn 12.334/16.735 link 7 ngày mang tag cũ.</li> <li data-xf-list-type="ul"><strong>Ghi log click sau </strong>fastcgi_finish_request() để 2 query không nằm trên đường găng, bù lại độ trễ của round-trip thêm.</li> </ul><p>Rollback: trả lại đúng một dòng header('Location: ' . $goto).</p><p></p><h3>5. Nghiệm thu (bước còn thiếu, cả bên mình cũng chưa làm được)</h3><p>Log phía mình <strong>không</strong> thấy được kết quả: us_ckref ghi referrer <em>đến</em> domain rút gọn, vẫn là jp.zaloapp.com. Chỉ báo cáo đơn của sàn mới thấy cột Kênh đổi hay không.</p><p></p><p>Shopee Affiliate Open API — <strong>Kênh = trường </strong>referrer<strong> trên </strong>ConversionReport (không phải channelType, trường đó trả Social Medias cho mọi đơn):</p><p></p><p>[CODE]{ conversionReport(purchaseTimeStart: <ts>, purchaseTimeEnd: <ts>, limit: 100, scrollId: "<cursor>") {</p><p> nodes { clickTime purchaseTime utmContent device referrer</p><p> orders { orderStatus items { channelType fraudStatus displayItemStatus } } }</p><p> pageInfo { hasNextPage scrollId } } }[/CODE]</p><p></p><p>Phân trang bằng scrollId. Gom theo clickTime (đơn mua sau mốc vẫn có thể từ click trước mốc), tách trước/sau mốc deploy, chỉ so trong cùng nhóm sub_id — trộn traffic Facebook/website có sẵn thì tỷ lệ loãng, không kết luận được gì.</p><p></p><p>Không có App ID/Secret thì chủ tài khoản affiliate tự lọc cột Kênh trong Shopee Affiliate Center theo SubID, so trước/sau mốc — nhanh hơn chờ key.</p><p></p><h3>6. Hạn chế đã biết</h3> <ul> <li data-xf-list-type="ul"><strong>UA vẫn chứa </strong>Zalo<strong>.</strong> Nếu sàn cũng sniff UA thì 15% click người thật (5.548/36.357, 7 ngày) vẫn lộ. Chưa có mẫu đơn nào cho đúng tổ hợp mới (referrer = domain rút gọn + UA Zalo) nên chưa biết sàn xử thế nào. Hướng dự phòng: đẩy click vào <strong>app Shopee</strong> bằng deeplink để UA thoát khỏi webview Zalo.</li> <li data-xf-list-type="ul">Đơn hoàn tiền/nhóm chat có thể bị từ chối vì là <strong>traffic khuyến khích</strong>, không phải vì chữ "Zalo". Nếu đúng vậy thì fix này không chạm tới nguyên nhân.</li> <li data-xf-list-type="ul">Thêm một round-trip HTML trước khi sang sàn (~150ms). Giao diện chờ nên nín 400ms rồi mới hiện, nếu hiện ngay khách thấy một nháy rồi mất, cảm giác chậm hơn cả khi không hiện.</li> </ul></blockquote><p></p>
[QUOTE="TenHoshi, post: 32025, member: 1"] [HEADING=2]1. Nghi vấn[/HEADING] Đơn phát sinh từ traffic Zalo bị sàn xếp vào cột [B]Kênh = [/B]Zalo, nghi là nguyên nhân đơn bị huỷ/không duyệt hoa hồng cao hơn các kênh khác. [B]Chưa có số liệu chứng minh tiền đề này[/B] — nó đến từ quan sát thủ công, chưa tính tỷ lệ huỷ theo từng giá trị Kênh. Các bên áp fix nên biết trước điểm này. [HEADING=2]2. Sàn suy ra "Kênh" từ đâu[/HEADING] Kết luận từ 3 mẫu đơn thật, cùng một pipeline s.shopee.vn/an_redir mà ra 3 kênh khác nhau: [TABLE] [TR] [TH]Kênh sàn báo[/TH] [TH]Khớp với[/TH] [/TR] [TR] [TD]Facebook[/TD] [TD]referrer m.facebook.com / l.facebook.com[/TD] [/TR] [TR] [TD]EdgeBrowser[/TD] [TD]không có referrer nhận diện được → rơi về tên trình duyệt[/TD] [/TR] [TR] [TD]Others[/TD] [TD]không phân loại được[/TD] [/TR] [/TABLE] → Sàn chốt kênh [B]lúc click[/B], [B]ưu tiên referrer[/B], UA/tên trình duyệt làm dự phòng. Giá trị Kênh quan sát được: Facebook, Zalo, Websites, Others, YouTube, EdgeBrowser, Google Search, TikTok. [HEADING=2]3. Nguyên nhân kỹ thuật[/HEADING] Redirect 302 [B]giữ nguyên referrer của request gốc[/B]. Khách bấm link trong webview Zalo thì referrer [URL]https://jp.zaloapp.com/[/URL] được đẩy thẳng sang sàn → sàn xếp kênh Zalo. Đo trên dự án referrer jp.zaloapp.com chiếm[B] (30%)[/B], UA webview Zalo chiếm [B]36%[/B]. [HEADING=2]4. Cách fix[/HEADING] Bỏ 302 cho người thật, chuyển tiếp bằng [B]trang trung gian HTML[/B]: trình duyệt tải trang của domain rút gọn rồi tự location.replace() sang sàn → referrer gửi sang sàn là domain rút gọn, không còn jp.zaloapp.com. Thêm Referrer-Policy: origin để chắc chắn không rơi về referrer cũ. Khách không phải thao tác thêm, chuyển tiếp xong trong ~150ms. [B]Bot xem trước link vẫn phải nhận 302.[/B] Zalo/Telegram/Facebook dựng thẻ preview trong chat bằng bot; cho bot xem trang trung gian thì thẻ hiện "Đang mở liên kết…" thay vì sản phẩm. Bot chiếm khoảng 2/3 request (7 ngày gần nhất: 69.183 bot / 36.357 người thật). [CODE]// $goto = link affiliate đích đã dựng xong $ua = strtolower($_SERVER['HTTP_USER_AGENT'] ?? ''); $is_bot = (strpos($ua, 'mozilla') === false && strpos($ua, 'opera') === false) || preg_match('#bot|crawl|spider|slurp|externalhit|preview|embed|coccoc|yandex' . '|ahrefs|semrush|okhttp|fasthttp|curl/|wget|python-requests|go-http-client' . '|chatgpt|headlesschrome#', $ua); if ($is_bot) { header('Location: ' . $goto); // thẻ preview trong chat vẫn ra sản phẩm exit; } header('Referrer-Policy: origin'); header('Cache-Control: no-store'); $js = json_encode($goto, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); $h = htmlspecialchars($goto, ENT_QUOTES, 'UTF-8'); ?> <!DOCTYPE html><html lang="vi"><head><meta charset="utf-8"> <!-- Script đứng trước mọi thứ khác: chạy ngay khi parse tới đây, không đợi style/body --> <script>location.replace(<?= $js ?>);</script> <noscript><meta data-fr-http-equiv="refresh" content="0;url=<?= $h ?>"></noscript> <title>Đang mở liên kết…</title></head><body></body></html> [/CODE] Hai việc kèm theo (ít quan trọng hơn nhưng nên làm cùng): [LIST] [*]sub_id[B] không chứa chữ nhận diện nguồn.[/B] Bên mình đổi tag mặc định zalobot → web + 4 ký tự ngẫu nhiên, mỗi bot một mã. Khách cũ không bị đổi ngầm để không vỡ bộ lọc đối soát đơn cũ — nên hiện vẫn còn 12.334/16.735 link 7 ngày mang tag cũ. [*][B]Ghi log click sau [/B]fastcgi_finish_request() để 2 query không nằm trên đường găng, bù lại độ trễ của round-trip thêm. [/LIST] Rollback: trả lại đúng một dòng header('Location: ' . $goto). [HEADING=2]5. Nghiệm thu (bước còn thiếu, cả bên mình cũng chưa làm được)[/HEADING] Log phía mình [B]không[/B] thấy được kết quả: us_ckref ghi referrer [I]đến[/I] domain rút gọn, vẫn là jp.zaloapp.com. Chỉ báo cáo đơn của sàn mới thấy cột Kênh đổi hay không. Shopee Affiliate Open API — [B]Kênh = trường [/B]referrer[B] trên [/B]ConversionReport (không phải channelType, trường đó trả Social Medias cho mọi đơn): [CODE]{ conversionReport(purchaseTimeStart: <ts>, purchaseTimeEnd: <ts>, limit: 100, scrollId: "<cursor>") { nodes { clickTime purchaseTime utmContent device referrer orders { orderStatus items { channelType fraudStatus displayItemStatus } } } pageInfo { hasNextPage scrollId } } }[/CODE] Phân trang bằng scrollId. Gom theo clickTime (đơn mua sau mốc vẫn có thể từ click trước mốc), tách trước/sau mốc deploy, chỉ so trong cùng nhóm sub_id — trộn traffic Facebook/website có sẵn thì tỷ lệ loãng, không kết luận được gì. Không có App ID/Secret thì chủ tài khoản affiliate tự lọc cột Kênh trong Shopee Affiliate Center theo SubID, so trước/sau mốc — nhanh hơn chờ key. [HEADING=2]6. Hạn chế đã biết[/HEADING] [LIST] [*][B]UA vẫn chứa [/B]Zalo[B].[/B] Nếu sàn cũng sniff UA thì 15% click người thật (5.548/36.357, 7 ngày) vẫn lộ. Chưa có mẫu đơn nào cho đúng tổ hợp mới (referrer = domain rút gọn + UA Zalo) nên chưa biết sàn xử thế nào. Hướng dự phòng: đẩy click vào [B]app Shopee[/B] bằng deeplink để UA thoát khỏi webview Zalo. [*]Đơn hoàn tiền/nhóm chat có thể bị từ chối vì là [B]traffic khuyến khích[/B], không phải vì chữ "Zalo". Nếu đúng vậy thì fix này không chạm tới nguyên nhân. [*]Thêm một round-trip HTML trước khi sang sàn (~150ms). Giao diện chờ nên nín 400ms rồi mới hiện, nếu hiện ngay khách thấy một nháy rồi mất, cảm giác chậm hơn cả khi không hiện. [/LIST] [/QUOTE]
Name
Xác nhận
Gửi đi
Diễn Đàn
Thủ thuật
Thủ thuật internet
Đổi nguồn click Zalo thành web — nghi vấn ở sàn và cách fix
Top