Как опубликовать расширение в Chrome Web Store
Пошаговая инструкция 2026: developer account, $5 one-time fee, обязательный Manifest V3, screenshots, single purpose, privacy policy, review process. Среднее время одобрения: 1-3 рабочих дня.
Чтобы опубликовать расширение в Chrome Web Store: (1) создайте Chrome Web Store Developer Account ($5 одноразовый платёж), (2) убедитесь что расширение использует Manifest V3, (3) запакуйте файлы в ZIP (не папку!), (4) загрузите в Developer Dashboard через "Add new item", (5) заполните карточку (description, category, screenshots 1280×800, privacy policy), (6) отправьте на review — 1-3 рабочих дня.
📦 Что нужно подготовить
- Расширение на Manifest V3 (V2 больше не принимается с 2024)
- Google account (можно использовать существующий)
- $5 USD на привязанной карте (одноразовый платёж)
- Иконки 16×16, 32×32, 48×48, 128×128 PNG
- Скриншоты 1280×800 или 640×400 PNG/JPG (минимум 1, максимум 5)
- Промо-картинка 440×280 PNG (опционально, но повышает CTR)
- Маркетинговый баннер 1400×560 PNG (опционально для featured)
- Privacy Policy URL (обязательно, даже если не собираете данные)
- Подробное описание (минимум 25 символов, рекомендуется 200-1000)
Шаг 1: Регистрация Developer Account
- Перейдите на chrome.google.com/webstore/devconsole/
- Войдите с Google-аккаунтом которым будете владеть расширением
- Согласитесь с Developer Agreement
- Подтвердите способ оплаты и оплатите $5 USD одноразово
- Платёж невозвратный
- Принимаются международные карты (Visa, Mastercard, AMEX)
- В РФ — потребуется зарубежная карта или Stripe-посредник
- Заполните Account Info: name, email, физический адрес (для tax/legal)
- Если планируете публиковать от имени организации — пройдите Group Publishers verification
Шаг 2: Требования Manifest V3
С 2024 года Manifest V2 больше не принимается для новых submissions. Все расширения должны использовать MV3:
{
"manifest_version": 3,
"name": "Ваше расширение",
"version": "1.0.0",
"description": "Краткое описание (не более 132 символов)",
"permissions": [...],
"host_permissions": [...],
"background": {
"service_worker": "background.js"
},
"content_scripts": [...],
"action": {
"default_popup": "popup.html",
"default_icon": {...}
},
"icons": {...}
}
Ключевые требования MV3 для прохождения review
- Нет remote code execution. Никаких
eval(), никакого<script src="https://...">снаружи расширения. Только локальный код. - Background = service worker. Никаких persistent background pages.
- declarativeNetRequest вместо webRequest blocking для модификации запросов.
- CSP (Content Security Policy) по умолчанию строгий — никакого inline JavaScript.
- Vendored libraries. Все библиотеки должны быть включены в пакет расширения, не подгружаться с CDN.
Шаг 3: Single Purpose и permissions
Google требует чтобы расширение имело один чёткий назначенный функционал. Расширения-комбайны с десятью разными фичами отклоняются.
Single Purpose Statement
В Developer Dashboard вы должны заполнить поле Single Purpose Description с одной фразой:
Permissions — минимально необходимые
Каждое запрашиваемое permission должно быть justified в карточке. Google спросит "зачем":
activeTab— для работы с текущей вкладкой при клике на иконкуcontextMenus— для добавления пункта в правый кликstorage— для кеша Trust Score локальноhost_permissions— толькоhttps://toncoinshop.com/*(не<all_urls>)
Избегайте запрашивать tabs, history, cookies, <all_urls> без острой необходимости — это сразу удлиняет review.
Шаг 4: Privacy Policy (обязательно)
С 2024 года Privacy Policy URL обязателен для всех расширений, даже если они не собирают данные.
Privacy Policy должна включать:
- Какие данные собирает расширение (или явное заявление что не собирает)
- Куда отправляются данные
- Цели сбора данных
- Срок хранения
- Контакт для запросов на удаление данных
- Дата последнего обновления политики
User Data Disclosure
В Developer Dashboard в секции Privacy practices нужно явно отметить:
- Собираете ли вы personally identifiable information
- Собираете ли вы health information
- Собираете ли вы financial information
- Собираете ли вы authentication information
- Собираете ли вы personal communications
- Собираете ли вы location data
- Собираете ли вы web history
- Собираете ли вы user activity
- Собираете ли вы website content
Также нужно подтвердить три сертификата:
- «Я НЕ продаю и не передаю данные пользователей третьим сторонам, кроме authorized use cases»
- «Я НЕ использую данные пользователей для целей не связанных с основной функцией расширения»
- «Я НЕ использую данные для определения creditworthiness или lending purposes»
Шаг 5: Подготовка ассетов
| Ассет | Размер | Обяз? |
|---|---|---|
| Store icon | 128×128 PNG | ✅ Да |
| Screenshot | 1280×800 или 640×400 | ✅ Мин. 1 |
| Small promo tile | 440×280 PNG | ⚪ Желательно |
| Marquee banner | 1400×560 PNG | ⚪ Для featured |
Скриншоты должны показывать реальный функционал расширения, не маркетинговую графику. Они проходят отдельный review.
Шаг 6: Упаковка ZIP-архива
Критически важно правильно запаковать файлы:
# Перейдите в папку расширения
cd /path/to/extension/
# Создайте ZIP только из содержимого, не из папки
zip -r ../extension.zip . -x ".*" "node_modules/*"
Проверка: разархивируйте ZIP в новую папку — там должен быть manifest.json на верхнем уровне.
Шаг 7: Заполнение карточки в Developer Dashboard
- Войдите в Developer Dashboard
- Нажмите Add new item
- Загрузите ZIP — система автоматически парсит manifest.json
- Заполните Store Listing:
- Name — название (до 75 символов)
- Summary — короткое описание (до 132 символов, появляется в каталоге)
- Description — полное описание (до 16000 символов, поддерживает markdown-like форматирование)
- Category — основная категория (Productivity / Developer Tools / etc)
- Language — основной язык интерфейса
- Заполните Privacy practices (см. шаг 4)
- Укажите Single Purpose — одну функцию
- Justify каждое запрашиваемое permission
- Загрузите ассеты
- Укажите Distribution: Public (для всех) или Unlisted (только по прямой ссылке)
Шаг 8: Подача на review
- Когда все секции заполнены — нажмите Submit for review
- Подтвердите соглашение с Developer Policies
- Расширение перейдёт в статус Pending review
- Среднее время: 1-3 рабочих дня
- В случае запроса дополнительной информации — отвечайте через сообщения в Dashboard
- После approval — расширение появится в Chrome Web Store по URL
https://chrome.google.com/webstore/detail/[slug]/[id]
Что происходит во время review
Команда Google проверяет:
- Соответствие Single Purpose
- Justification permissions
- Отсутствие malicious behavior
- Соответствие описания фактическому функционалу
- Качество скриншотов
- Compliance с Manifest V3 требованиями (full functionality discoverable from code)
❌ Частые причины отказа
- "Functionality unclear from code". Расширение использует obfuscation или подгружает логику с внешних серверов. Решение: предоставлять полный читаемый исходник.
- "Single purpose violation". Расширение делает несколько несвязанных вещей. Решение: разделить на несколько расширений.
- "Unnecessary permissions". Запрошено больше permissions чем нужно. Решение: минимизировать до строго необходимых.
- "Misleading or low quality content". Описание не соответствует функционалу, скриншоты низкого качества. Решение: подробное точное описание + чёткие скриншоты.
- "Privacy policy missing or insufficient". Решение: разместить детальную privacy policy и указать URL.
- "Spammy keywords". Название или описание содержит keyword spam. Решение: естественный язык.
- "Trademark violation". Использование зарегистрированных торговых марок (Google, Facebook, Telegram без разрешения). Решение: переименовать или использовать "for [brand]".
- "Manifest V2 detected". Решение: мигрировать на MV3.
✅ Чеклист перед submission
- ☐ manifest_version = 3
- ☐ Все permissions justified и минимальны
- ☐ Нет eval(), нет remote script execution
- ☐ Все JS/CSS включены в пакет (не подгружаются с CDN)
- ☐ Privacy Policy URL готов
- ☐ Single Purpose statement готов
- ☐ Иконка 128×128 PNG
- ☐ Минимум 1 скриншот 1280×800
- ☐ Description заполнен (минимум 25 символов)
- ☐ ZIP правильно собран (manifest в корне)
- ☐ $5 fee оплачен и аккаунт верифицирован
- ☐ Локально протестирован в Chrome через "Load unpacked"
📦 Наше расширение
TON Scanner — наше браузерное расширение для автодетекта TON-адресов. Использует Manifest V3, единый кодбаз работает в Chrome, Firefox и Edge. Исходники: github.com/toncoinshop/ton-scanner-extension.