Close Menu
  • Trang chủ
  • Đời sống
    • Người nổi tiếng
    • Sức khỏe
    • Thể dục & Tập luyện
  • Khám phá
    • Cách làm đẹp
    • Công nghệ
    • Hướng dẫn du lịch
    • Kinh doanh
    • Thời trang
  • Thủ thuật Web
    • Hosting & Máy chủ
    • Hướng dẫn Blogger
    • WordPress & Plugin
  • Tiếng Việt
    • Tiếng Việt
    • Hmoob
    • English
Facebook YouTube X (Twitter) Instagram
Trending
  • CPU Performance API: Chọn giao diện nhẹ hơn cho máy yếu
  • Di chuyển XSLT khỏi trình duyệt trước khi Chrome 158 tắt hỗ trợ
  • Tạo thanh tiêu đề kéo thả cho PWA desktop bằng `window-drag`
  • Thiết kế pipeline cảnh báo package độc hại có thể phát hiện và hoàn tác
  • Lập kế hoạch dự phòng GitHub Actions khi GitHub ngừng hoạt động nhiều giờ
  • Giảm thông báo web rác: kiểm tra quyền trước khi gửi bằng Chrome và FCM
  • Bật cảnh báo mã độc Dependabot cho 8 hệ sinh thái trên GitHub
  • Vì sao nên xem thế giới thủ công của Olivia Rodrigo tại GRAMMY Museum?
Facebook YouTube X (Twitter) Instagram
SaibABCSaibABC
Chú thích cho quảng cáo
  • Trang chủ
  • Đời sống
    1. Người nổi tiếng
    2. Sức khỏe
    3. Thể dục & Tập luyện
    4. View All

    Triển lãm thời trang Michael Jackson: Khi trang phục kể lại sân khấu

    13/09/2026

    Mua vé concert an toàn: 7 bước tránh vé giả trên mạng xã hội

    13/09/2026

    Messi ghi bao nhiêu bàn tại World Cup? Bảng theo từng kỳ đến 2026

    13/09/2026

    Messi và sáu kỳ World Cup: từ thất bại 2014 đến đỉnh cao 2022

    13/09/2026

    Trẻ em ăn nhiều muối từ thực phẩm nào? Cách đọc nhãn để giảm natri

    12/09/2026

    Ghi “tejocote root” chưa chắc là rễ tejocote an toàn

    12/09/2026

    Kê kháng sinh ngoại trú không chỉ là chọn đúng thuốc

    11/09/2026

    Tiêm glutathione có an toàn không? Đừng nhầm bột thực phẩm với nguyên liệu tiêm

    11/09/2026

    Bài tập 5 phút tại văn phòng: Lịch vận động snack-sized

    23/08/2026

    Bài tập core hiệu quả: Từ người mới đến nâng cao

    16/01/2024

    Triển lãm thời trang Michael Jackson: Khi trang phục kể lại sân khấu

    13/09/2026

    Mua vé concert an toàn: 7 bước tránh vé giả trên mạng xã hội

    13/09/2026

    Messi ghi bao nhiêu bàn tại World Cup? Bảng theo từng kỳ đến 2026

    13/09/2026

    Messi và sáu kỳ World Cup: từ thất bại 2014 đến đỉnh cao 2022

    13/09/2026
  • Khám phá
    1. Cách làm đẹp
    2. Công nghệ
    3. Hướng dẫn du lịch
    4. Kinh doanh
    5. Thời trang
    Featured

    CPU Performance API: Chọn giao diện nhẹ hơn cho máy yếu

    By Nuj Coom13/09/2026
    Recent

    CPU Performance API: Chọn giao diện nhẹ hơn cho máy yếu

    13/09/2026

    Tạo thanh tiêu đề kéo thả cho PWA desktop bằng `window-drag`

    13/09/2026

    Thiết kế pipeline cảnh báo package độc hại có thể phát hiện và hoàn tác

    13/09/2026
  • Thủ thuật Web
    1. Hosting & Máy chủ
    2. Hướng dẫn Blogger
    3. WordPress & Plugin
    4. View All

    Cài Let’s Encrypt trên Vultr: Bật HTTPS và tự động gia hạn chứng chỉ

    09/09/2026

    Cài WordPress trên VPS Vultr chi tiết và đưa website chạy HTTPS an toàn

    08/09/2026

    Kết nối tên miền với VPS Vultr và xác minh website hoạt động

    08/09/2026

    Đăng ký và triển khai VPS Ubuntu trên Vultr qua SSH

    07/09/2026

    Phân quyền Blogger cho nhóm cộng tác mà vẫn giữ quyền kiểm soát

    07/09/2026

    Thêm nút Báo cáo nội dung Blogger cho blog tùy biến

    07/09/2026

    Tối ưu ảnh Blogger cho Google Images: Từ tên file đến trang đích

    07/09/2026

    Lazy loading ảnh Blogger có làm mất SEO? Cách kiểm tra Googlebot

    04/09/2026

    WordPress 7.1: Chuyển GIF sang video để giảm dung lượng

    11/09/2026

    Cài WordPress trên VPS Vultr chi tiết và đưa website chạy HTTPS an toàn

    08/09/2026

    WordPress 7.1 xử lý AVIF và HEIC trên trình duyệt ra sao?

    02/09/2026

    WordPress 7.1: Vì sao breakpoint không chỉnh được trong Site Editor?

    02/09/2026

    CPU Performance API: Chọn giao diện nhẹ hơn cho máy yếu

    13/09/2026

    Di chuyển XSLT khỏi trình duyệt trước khi Chrome 158 tắt hỗ trợ

    13/09/2026

    WordPress 7.1: Chuyển GIF sang video để giảm dung lượng

    11/09/2026

    WebMCP cho website: Biến HTML form thành công cụ AI agent có thể gọi

    11/09/2026
  • Tiếng Việt
    • Tiếng Việt
    • Hmoob
    • English
SaibABCSaibABC
Home»Khám phá»Công nghệ»Giảm thông báo web rác: kiểm tra quyền trước khi gửi bằng Chrome và FCM
Công nghệ 13 Mins ReadKhông có bình luận

Giảm thông báo web rác: kiểm tra quyền trước khi gửi bằng Chrome và FCM

Nuj CoomBy Nuj Coom
Facebook Twitter Pinterest LinkedIn Tumblr Email
Chú thích cho quảng cáo

Contents

  1. Phân biệt bốn lớp gây ra thông báo web rác
  2. Kiểm tra luồng xin quyền trước khi kiểm tra FCM
    1. Loại bỏ yêu cầu quyền khi trang vừa tải
    2. Thiết kế lời mời để người dùng không bấm nhầm
  3. Kiểm tra quyền thông báo trên Chrome
  4. Rà soát Firebase Cloud Messaging và đăng ký thuê bao
    1. Thu hồi đăng ký khi người dùng tắt thông báo
  5. Kiểm tra nội dung, liên kết và tần suất thông báo
  6. Kiểm tra Chrome Abusive Notifications Report
  7. Cây chẩn đoán nhanh khi vẫn còn thông báo rác
  8. Checklist nghiệm thu trước khi bật rộng
  9. Nguồn tham khảo

Kết quả cần đạt: sau khi rà soát, website chỉ xin quyền thông báo sau một hành động có chủ đích, không ép người dùng bấm Allow, không gửi nội dung giả mạo hoặc không liên quan, đồng thời có thể vô hiệu hóa đăng ký FCM khi người dùng tắt nhận tin.

Để giảm thông báo web rác, đừng bắt đầu bằng việc đổi Firebase project hoặc tạo lại khóa VAPID. Hãy kiểm tra theo thứ tự: luồng xin quyền → trạng thái quyền trong Chrome → đăng ký FCM → nội dung và tần suất gửi → báo cáo lạm dụng. FCM cung cấp cơ chế gửi tin cho web, nhưng không thay thế trách nhiệm của website trong việc xin quyền và chọn nội dung phù hợp (theo firebase.google.com).

Phân biệt bốn lớp gây ra thông báo web rác

Lớp cần kiểm traVấn đề thường gặpDấu hiệu xác minh
Giao diện xin quyềnHiển thị hộp thoại giả giống nút hệ thống hoặc buộc người dùng cho phép để xem nội dung.Người dùng chưa chủ động yêu cầu nhưng đã thấy lời mời bật thông báo.
Quyền của trình duyệtDomain vẫn được phép gửi thông báo dù người dùng không còn muốn nhận.Chrome hiển thị domain trong danh sách được phép gửi thông báo.
Đăng ký FCMToken hoặc Firebase Installation ID cũ vẫn còn được lưu và tiếp tục nhận tin.Tài khoản hoặc trình duyệt đã tắt nhận tin nhưng bản ghi đăng ký vẫn hoạt động.
Nội dung gửiTiêu đề giả cảnh báo hệ thống, tin nhắn giống thông báo trò chuyện, liên kết lạ hoặc gửi quá dày.Payload không giải thích rõ lý do gửi và đích đến.

Chrome và Google Web Tools xem các yêu cầu quyền gây hiểu lầm, thông báo giả mạo, thông báo lừa đảo hoặc quảng bá phần mềm độc hại là các dạng abusive notifications. Vì vậy, “đã có người bấm Allow” không đồng nghĩa với “đăng ký đó hợp lệ” (theo support.google.com).

Kiểm tra luồng xin quyền trước khi kiểm tra FCM

Loại bỏ yêu cầu quyền khi trang vừa tải

Không gọi Notification.requestPermission() trong mã chạy ngay khi trang mở, trong DOMContentLoaded, trong bộ hẹn giờ tự động hoặc sau một lần chuyển hướng mà người dùng không chủ động yêu cầu.

Chrome Lighthouse đánh dấu việc xin quyền thông báo ngay khi tải trang là thực hành không tốt. Cách an toàn hơn là giải thích trước người dùng sẽ nhận loại tin nào, sau đó chỉ mở hộp thoại quyền khi họ nhấn nút đăng ký rõ ràng (theo developer.chrome.com).

Chú thích cho quảng cáo

Đoạn mã dưới đây chạy ở JavaScript phía trình duyệt. Nút #enable-notifications phải tồn tại trong HTML của website. Hàm registerFcmSubscription() là điểm tích hợp với Firebase của bạn; hãy thay bằng hàm thật của dự án, không sao chép nguyên tên hàm nếu dự án không có hàm đó.

const enableButton = document.querySelector('#enable-notifications');

if (!enableButton) {
  throw new Error('Không tìm thấy nút #enable-notifications');
}

enableButton.addEventListener('click', async () => {
  if (!('Notification' in window)) {
    showMessage('Trình duyệt này không hỗ trợ thông báo web.');
    return;
  }

  try {
    const permission = await Notification.requestPermission();

    if (permission === 'granted') {
      // Thay bằng hàm đăng ký FCM thật của ứng dụng.
      await registerFcmSubscription();
      showMessage('Đã bật thông báo. Bạn có thể tắt bất cứ lúc nào.');
    } else {
      showMessage('Bạn chưa bật thông báo; website vẫn hoạt động bình thường.');
    }
  } catch (error) {
    console.error('Không thể xin quyền thông báo:', error);
    showMessage('Không thể bật thông báo lúc này.');
  }
});

Sau khi thay hàm tích hợp, mở website bằng hồ sơ Chrome thử nghiệm, nhấn nút và kiểm tra hộp thoại quyền chỉ xuất hiện sau cú nhấn. Nếu người dùng từ chối, không tạo bản ghi đăng ký FCM.

Thiết kế lời mời để người dùng không bấm nhầm

  • Nói rõ người dùng sẽ nhận gì, chẳng hạn “cảnh báo đơn hàng đã giao” hoặc “tin nhắn mới”, thay vì chỉ viết “Bấm Allow để tiếp tục”.
  • Không khóa nội dung, video, kết quả tìm kiếm hay nút đóng phía sau yêu cầu cho phép thông báo.
  • Không dùng hình ảnh hoặc lời thoại mô phỏng hộp thoại hệ thống, cảnh báo virus, tin nhắn riêng tư hay yêu cầu cập nhật trình duyệt.
  • Cho phép chọn “Để sau” và vẫn sử dụng website ở trạng thái bình thường.
  • Hiển thị nút tắt hoặc quản lý thông báo trong tài khoản, thay vì buộc người dùng phải tự tìm trong cài đặt trình duyệt.

Nếu website dùng một lớp giao diện trung gian trước hộp thoại Chrome, lớp đó phải giải thích trung thực và không tạo áp lực. Một lời mời giả mạo có thể khiến người dùng đăng ký ngoài ý muốn và là dấu hiệu thường gặp của web notification abuse.

Kiểm tra quyền thông báo trên Chrome

Trên máy tính, mở Chrome rồi vào Cài đặt → Quyền riêng tư và bảo mật → Cài đặt trang web → Thông báo. Kiểm tra domain của website trong danh sách được phép, bị chặn hoặc các mục Chrome đang nhắc người dùng xem xét.

Chrome có thể tự gỡ quyền thông báo của những website mà Safe Browsing xác định là đang đánh lừa người dùng cấp quyền. Chrome cũng có thể hạn chế lời nhắc hoặc yêu cầu website xin quyền lại. Vì vậy, quyền bị thay đổi không nhất thiết chứng minh FCM hỏng; trước hết hãy kiểm tra trải nghiệm xin quyền và trạng thái an toàn của domain (theo support.google.com).

Để kiểm tra thực tế, hãy dùng một hồ sơ Chrome sạch hoặc xóa quyền của domain trong phần cài đặt, sau đó thực hiện các kịch bản sau:

  1. Mở trang lần đầu: không được tự động bật hộp thoại quyền.
  2. Đọc lời giải thích và không nhấn nút đăng ký: không được xuất hiện hộp thoại quyền của trình duyệt.
  3. Nhấn nút đăng ký: Chrome mới hiển thị yêu cầu quyền.
  4. Chọn “Không cho phép”: nội dung chính của website vẫn dùng được.
  5. Chọn “Cho phép”: chỉ nhận đúng loại thông báo đã mô tả.
  6. Thu hồi quyền trong Chrome: hệ thống không được tiếp tục coi trình duyệt là thuê bao đang hoạt động.

Chrome có tùy chọn “Use quieter messaging” để giảm các lời nhắc gây gián đoạn. Đây là cơ chế của trình duyệt, không phải cách sửa gốc cho một website liên tục xin quyền hoặc gửi nội dung kém liên quan.

Rà soát Firebase Cloud Messaging và đăng ký thuê bao

FCM trên web cần quyền thông báo, service worker và cấu hình HTTPS. Sau khi được cấp quyền, ứng dụng mới nên đăng ký trình duyệt, lưu định danh cần thiết ở máy chủ và dùng nó để gửi tin đúng đối tượng. Trong hệ thống của bạn, hãy lập bảng đối chiếu tối thiểu gồm:

TrườngMục đíchĐiều kiện cần xử lý
User hoặc account IDBiết đăng ký thuộc người dùng nào.Xóa hoặc vô hiệu hóa khi tài khoản đăng xuất, hủy đăng ký hoặc bị xóa.
Origin hoặc domainTránh dùng nhầm đăng ký từ website khác.Từ chối bản ghi không khớp domain dự kiến.
FCM token hoặc Firebase Installation IDĐịnh tuyến thông báo tới đúng phiên bản trình duyệt.Cập nhật khi giá trị thay đổi; loại bỏ khi FCM trả lỗi token không hợp lệ.
Consent stateGhi nhận người dùng đã bật, tắt hoặc chưa quyết định.Không suy đoán “đã đăng ký” chỉ vì từng có token.
Topic hoặc nhóm nhận tinGiới hạn loại nội dung được gửi.Hủy đăng ký nhóm khi người dùng bỏ chọn.

Đừng gửi một thông báo quảng bá cho toàn bộ token chỉ vì chúng còn tồn tại trong cơ sở dữ liệu. Mỗi chiến dịch nên có tiêu chí đối tượng, mục đích, thời hạn và cơ chế loại trừ người đã tắt nhận tin. Firebase cũng khuyến nghị quản lý định danh cài đặt và không trộn lẫn các cách quản lý đăng ký cũ với cách mới trong cùng một luồng.

Thu hồi đăng ký khi người dùng tắt thông báo

Nút “Tắt thông báo” nên thực hiện cả hai việc: cập nhật trạng thái đồng ý ở máy chủ và xóa hoặc vô hiệu hóa đăng ký FCM tương ứng. Nếu chỉ ẩn nút trên giao diện, máy chủ vẫn có thể gửi tin tới token cũ.

async function disableNotifications() {
  const response = await fetch('/api/notification-subscription', {
    method: 'DELETE',
    headers: { 'Content-Type': 'application/json' },
    credentials: 'include'
  });

  if (!response.ok) {
    throw new Error(`Không thể tắt đăng ký: HTTP ${response.status}`);
  }

  showMessage('Đã tắt đăng ký thông báo trên tài khoản này.');
}

Đoạn mã chạy ở trình duyệt và /api/notification-subscription chỉ là đường dẫn ví dụ; hãy thay bằng API thật của ứng dụng. API máy chủ phải xác thực người dùng và chỉ vô hiệu hóa đăng ký thuộc tài khoản đó. Không đưa khóa máy chủ FCM, khóa riêng VAPID hoặc thông tin xác thực quản trị vào JavaScript gửi cho trình duyệt.

Kiểm tra nội dung, liên kết và tần suất thông báo

Kiểm tra nội dung, liên kết và tần suất thông báo

Mỗi thông báo nên trả lời được ba câu hỏi: Ai gửi? Vì sao tôi nhận? Nhấn vào sẽ đi đâu? Nếu người dùng không thể trả lời nhanh ba câu này, thông báo có nguy cơ bị xem là rác dù kỹ thuật gửi hoàn toàn đúng.

  • Tiêu đề: mô tả sự kiện cụ thể, chẳng hạn “Đơn hàng đã được giao”, không dùng “Cảnh báo khẩn cấp” nếu không có sự cố thực sự.
  • Nội dung: ngắn, chính xác, không tạo cảm giác mất mát giả tạo hoặc yêu cầu nhập mật khẩu ngoài ngữ cảnh.
  • Biểu tượng: dùng biểu tượng thương hiệu hoặc sản phẩm dễ nhận biết, không dùng hình ảnh giống cảnh báo hệ điều hành.
  • Liên kết: dùng HTTPS, trỏ tới đúng trang liên quan và không chuyển tiếp qua chuỗi domain không rõ nguồn gốc.
  • Tần suất: gộp các sự kiện tương tự, đặt giới hạn theo người dùng và ngừng gửi khi không còn lý do hợp lệ.

Với thông báo nền trên web, FCM hỗ trợ liên kết đưa người dùng về ứng dụng; liên kết này cần là URL HTTPS. Tài liệu Firebase cũng khuyến nghị tiêu đề phải nêu chính xác bản chất thông báo và không lặp tên website hoặc domain trong tiêu đề khi trình duyệt đã hiển thị domain đó (theo firebase.google.com).

Kiểm tra Chrome Abusive Notifications Report

Nếu bạn là chủ sở hữu hoặc người dùng được cấp quyền trong Google Search Console, hãy mở Abusive Notifications Report của domain. Báo cáo có thể hiển thị ví dụ về trang, loại vi phạm và cách trải nghiệm đó xuất hiện. Báo cáo chỉ xem một mẫu URL, vì vậy sửa đúng một trang chưa đủ để kết luận toàn domain đã an toàn.

  1. Ghi lại URL, mẫu giao diện và loại vấn đề trong báo cáo.
  2. Tìm nguồn tạo trải nghiệm: mã của website, trình quản lý thẻ, plugin, mạng quảng cáo hoặc thư viện bên thứ ba.
  3. Loại bỏ yêu cầu quyền gây hiểu lầm và mọi thông báo giả, lừa đảo hoặc liên kết tới phần mềm không mong muốn.
  4. Rà soát các template, landing page, subdomain và script dùng chung.
  5. Kiểm tra lại bằng hồ sơ trình duyệt sạch và các trạng thái cho phép, từ chối, thu hồi quyền.
  6. Gửi yêu cầu xem xét lại khi đã xử lý toàn bộ nhóm vấn đề.

Nếu trạng thái báo cáo là Failing, Chrome có thể chặn tất cả thông báo và cả yêu cầu xin quyền của website. Google cho biết báo cáo dựa trên mẫu URL và cần sửa cả các vi phạm được liệt kê lẫn những vi phạm tương tự còn sót lại; sau khi trạng thái thay đổi, hành vi có thể cần thời gian để phản ánh đầy đủ trên Chrome (theo support.google.com).

Cây chẩn đoán nhanh khi vẫn còn thông báo rác

  • Không thấy hộp thoại xin quyền: kiểm tra quyền hiện tại của domain, chế độ thông báo yên lặng, HTTPS và chính sách quản trị trình duyệt.
  • Người dùng đã từ chối nhưng vẫn nhận tin: tìm token cũ, nhiều domain hoặc nhiều service worker cùng ghi nhận một thiết bị; vô hiệu hóa bản ghi ở máy chủ.
  • Chỉ một số người nhận tin sai: kiểm tra segment, topic, cache cấu hình và việc tài khoản đăng xuất có xóa đăng ký hay không.
  • Chrome gỡ quyền hoặc chặn yêu cầu: kiểm tra Abusive Notifications Report, các lớp giao diện giả, script bên thứ ba và nội dung liên kết.
  • Nhận nhiều bản giống nhau: kiểm tra việc gửi trùng từ cả notification message, data message và service worker; bảo đảm chỉ một luồng chịu trách nhiệm hiển thị.
  • Đã xóa service worker nhưng vẫn nhận tin: kiểm tra permission của domain, các bản ghi FCM ở máy chủ và các trình duyệt hoặc subdomain khác; xóa một service worker không tự động thu hồi mọi quyền của người dùng.

Checklist nghiệm thu trước khi bật rộng

  • Trang mở lần đầu không tự gọi yêu cầu quyền.
  • Lời giải thích nêu rõ loại thông báo và tần suất dự kiến.
  • Người dùng có thể bỏ qua mà vẫn dùng được nội dung chính.
  • FCM chỉ được đăng ký sau khi trạng thái quyền là granted.
  • Token hoặc Firebase Installation ID được gắn đúng người dùng, domain và nhóm nội dung.
  • Token lỗi, cũ hoặc đã hủy được vô hiệu hóa ở máy chủ.
  • Nút tắt thông báo cập nhật cả trạng thái đồng ý và bản ghi gửi.
  • Thông báo không giả làm cảnh báo hệ thống, tin nhắn riêng tư hoặc cảnh báo bảo mật.
  • Liên kết trong thông báo dùng HTTPS và đi tới đúng ngữ cảnh.
  • Đã kiểm tra báo cáo Chrome Abusive Notifications sau khi triển khai.

Nếu đang sửa một hệ thống cũ, hãy triển khai theo đường tối thiểu: tắt yêu cầu quyền tự động → thêm nút đăng ký rõ ràng → dừng gửi cho token không xác minh được → rà soát payload → kiểm tra báo cáo của Google. Sau đó mới tối ưu phân nhóm và tần suất. Cách này giúp phân biệt lỗi về quyền, dữ liệu đăng ký và nội dung thay vì thay đổi tất cả cùng lúc.

Nguồn tham khảo

  • Abusive notifications – Web Tools Help
  • Introduction to the Abusive Notifications Report
  • Chrome enforcement – Web Tools Help
  • Manage Chrome safety and security – Computer
  • Requests the notification permission on page load
  • Get started with Firebase Cloud Messaging in Web apps
  • Receive messages in Web apps

Chú thích cho quảng cáo
bảo mật web Chrome Firebase Cloud Messaging quyền trình duyệt Safe Browsing thông báo đẩy
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Bài trước đóBật cảnh báo mã độc Dependabot cho 8 hệ sinh thái trên GitHub
Bài tiếp theo Lập kế hoạch dự phòng GitHub Actions khi GitHub ngừng hoạt động nhiều giờ
Nuj Coom
  • Website
  • Facebook
  • X (Twitter)
  • Instagram

I'm a doctor, for sure. But I also love writing and sharing knowledge, life experiences, web tricks, and useful lectures. Let's cheer for your passion.

Bài viết liên quan

CPU Performance API: Chọn giao diện nhẹ hơn cho máy yếu

13/09/2026

Di chuyển XSLT khỏi trình duyệt trước khi Chrome 158 tắt hỗ trợ

13/09/2026

Tạo thanh tiêu đề kéo thả cho PWA desktop bằng `window-drag`

13/09/2026
Add A Comment
Leave A Reply Cancel Reply

Bài gần đây

Taylor Swift đăng ký nhãn hiệu cho giọng nói trong bối cảnh deepfake

AI agent cần gì ở blog? Checklist từ nội dung đến dữ liệu có cấu trúc

WordPress 7.1: Chuyển GIF sang video để giảm dung lượng

Thanh toán xuyên biên giới cho doanh nghiệp nhỏ: Phí và rủi ro

AMP cho SEO: Ưu nhược điểm và khi nào nên triển khai

Advertisement
Chú thích cho quảng cáo

ĐĂNG KÝ THÔNG BÁO

Nhận tin tức sáng tạo mới nhất từ ​​SaibABC.Com về các thủ thuật, thiết kế và kinh doanh trên web.

Copyright © 2024. Designed by NujCoom.
  • Trang chủ
  • Chính sách
  • Liên hệ
  • Hmoob
  • English

Type above and press Enter to search. Press Esc to cancel.