Meta-ExternalAds — автоматический веб-краулер компании Meta, который обращается к публичным страницам сайтов для сценариев, связанных с рекламными и другими бизнес-продуктами Meta.
Это не обычный пользователь, не Googlebot и не универсальный поисковый робот. В экосистеме Meta у него своя задача, поэтому meta-externalads важно отличать от других агентов компании — прежде всего facebookexternalhit, meta-externalagent и meta-externalfetcher.
Для TrafficVeil оптимальная категория — Ads Verification / рекламные сервисы. Подтверждённый Meta-ExternalAds можно считать легитимным автоматизированным трафиком и исключать из статистики реальных посетителей.
| Параметр | Значение |
|---|---|
| Название | Meta-ExternalAds |
| Оператор | Meta |
| Основной UA | meta-externalads/1.1 |
| Категория | Ads Verification |
| Назначение | Рекламные и другие business-related продукты и сервисы Meta |
| Тип доступа | Direct — активностью управляет оператор |
| ASN Meta | AS32934 |
| Легитимность | Легитимный при подтверждении источника |
| Базовая политика TrafficVeil | Allow для подтверждённого crawler |
Зачем Meta-ExternalAds приходит на сайт
Назначение Meta-ExternalAds связано не с обычным поиском и не с пользовательским просмотром страницы. Этот crawler используется Meta в сценариях, связанных с улучшением рекламных и других бизнес-продуктов и сервисов.
Именно поэтому появление meta-externalads в access.log следует воспринимать как service traffic, а не как визит потенциального клиента.
Например, в логах можно увидеть обращения к публичным страницам сайта без нормальной браузерной сессии, последовательности пользовательских переходов или конверсии. Для автоматического crawler это нормальное поведение.
Как выглядит User-Agent Meta-ExternalAds
На практике встречается несколько вариантов User-Agent. Базовый:
meta-externalads/1.1
Расширенный:
meta-externalads/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)
Также наблюдаются браузероподобные варианты, где идентификатор Meta встроен в более длинный мобильный User-Agent:
Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X)
AppleWebKit/605.1.15 (KHTML, like Gecko)
Version/13.0.3 Mobile/15E148 Safari/604.1
(compatible; meta-externalads/1.1
(+https://developers.facebook.com/docs/sharing/webmasters/crawler))
Поэтому для обнаружения не стоит матчить полную строку целиком. Более устойчивый идентификатор:
meta-externalads
Meta-ExternalAds и другие боты Meta: в чём разница
Одна из главных ошибок при настройке антибота — объединить все User-Agent Meta одним правилом. У разных crawler разные функции, поэтому последствия блокировки тоже различаются.
| Агент | Основной сценарий | Категория |
|---|---|---|
meta-externalads |
Advertising и business-related продукты | Ads Verification |
facebookexternalhit |
Получение данных страницы для превью ссылок | Social / Link Preview |
meta-externalagent |
Автоматическое получение и индексирование web-контента для продуктов Meta, включая AI-сценарии | AI / Content Indexing |
meta-externalfetcher |
Получение страницы по инициативе пользователя продукта Meta | User-Initiated Fetch |
Поэтому правило вроде:
if ($http_user_agent ~* "meta|facebook") {
return 403;
}
слишком широкое. Вместе с ненужным crawler оно может заблокировать полезные сервисные запросы Meta и получение превью ссылок.
Подключите домен и посмотрите живую ленту: кто пришёл, с какой сети, что запрашивал и по какому правилу был пропущен или заблокирован.
Meta-ExternalAds и facebookexternalhit
Особенно важно не путать Meta-ExternalAds с facebookexternalhit.
facebookexternalhit используется при работе с URL, которыми делятся через сервисы Meta. Система может получить страницу, её заголовок, описание и изображение, чтобы сформировать карточку ссылки.
Meta-ExternalAds имеет другой сценарий — advertising и business-related продукты.
Следовательно, решение заблокировать:
meta-externalads
не означает, что необходимо одновременно блокировать:
facebookexternalhit
В TrafficVeil это должны быть отдельные сущности с отдельными политиками.
Meta-ExternalAds и Meta-ExternalAgent
Ещё важнее разделять meta-externalads и meta-externalagent.
Meta-ExternalAgent относится к другому классу автоматического получения контента. Meta связывает его в том числе с использованием публичного web-контента для AI-продуктов и соответствующего индексирования.
Meta-ExternalAds, напротив, следует классифицировать как crawler рекламных и business-сервисов.
Поэтому владелец сайта может, например, разрешать Meta-ExternalAds, но отдельно ограничивать Meta-ExternalAgent. Это нормальная политика и технически более правильно, чем единый переключатель «заблокировать Meta».
Как найти Meta-ExternalAds в access.log
Базовый поиск:
grep -i "meta-externalads" /var/log/nginx/access.log
Количество запросов:
grep -ic "meta-externalads" /var/log/nginx/access.log
Топ URL:
grep -i "meta-externalads" /var/log/nginx/access.log \
| awk '{print $7}' \
| sort \
| uniq -c \
| sort -rn \
| head -30
Топ IP:
grep -i "meta-externalads" /var/log/nginx/access.log \
| awk '{print $1}' \
| sort \
| uniq -c \
| sort -rn \
| head -30
Распределение HTTP-кодов:
grep -i "meta-externalads" /var/log/nginx/access.log \
| awk '{print $9}' \
| sort \
| uniq -c \
| sort -rn
Последняя команда особенно полезна для диагностики. Большое количество 403 или 429 может означать, что WAF или rate limit уже ограничивает Meta-ExternalAds.
Можно ли доверять User-Agent meta-externalads
Нет. Сам по себе User-Agent не является доказательством того, что запрос действительно пришёл от Meta.
Любой HTTP-клиент может отправить:
User-Agent: meta-externalads/1.1
и попытаться получить более доверенный режим обработки.
Это особенно важно для антибот-систем. Правило вида:
UA = meta-externalads → ALWAYS ALLOW
создаёт потенциальный bypass.
Как TrafficVeil должен проверять настоящий Meta-ExternalAds
Вместо одного UA лучше использовать несколько сигналов:
- User-Agent;
- IP;
- ASN;
- network ownership;
- TLS fingerprint;
- HTTP fingerprint;
- частоту запросов;
- набор URL;
- историю поведения источника.
Meta связана с AS32934, поэтому ASN является полезным сигналом при верификации.
Но даже совпадение ASN не стоит использовать как единственное условие. Для TrafficVeil правильнее строить confidence score.
Пример
| Сигнал | Результат |
|---|---|
| UA | meta-externalads/1.1 ✓ |
| ASN | AS32934 ✓ |
| Network owner | Meta/Facebook ✓ |
| Поведение | Соответствует crawler ✓ |
| Threat indicators | Не обнаружены ✓ |
Такому клиенту можно присвоить высокий уровень доверия.
Как выглядит подозрительный Meta-ExternalAds
Совпадение UA не должно автоматически превращать клиента в Verified Meta.
Например:
UA: meta-externalads/1.1
ASN: residential ISP
GET /.env
GET /.git/config
GET /wp-admin/
GET /backup.zip
GET /phpmyadmin/
Такой профиль явно не соответствует нормальному рекламному crawler.
TrafficVeil должен классифицировать его как:
Meta-ExternalAds UA spoofing / suspicious automation
или оставить в категории неизвестной автоматизации до окончательной идентификации.
robots.txt для Meta-ExternalAds
Если владелец сайта не хочет разрешать обход этому crawler, можно создать отдельное правило:
User-agent: meta-externalads
Disallow: /
В наблюдаемых конфигурациях также используется версия:
User-agent: meta-externalads/1.1
Disallow: /
Для частичного ограничения:
User-agent: meta-externalads
Disallow: /account/
Disallow: /checkout/
Disallow: /admin/
Disallow: /internal/
Allow: /
После изменения robots.txt стоит проверить access.log и убедиться, как crawler фактически реагирует на новую политику.
Почему robots.txt не является системой безопасности
Даже для легитимных crawler robots.txt следует воспринимать как декларативную политику crawling, а не как средство защиты информации.
Если URL содержит данные, которые не должны быть публичными, их необходимо закрывать:
- аутентификацией;
- ACL;
- WAF;
- авторизацией API;
- сетевыми правилами.
Нельзя считать:
Disallow: /private/
эквивалентом ограничения доступа.
Как заблокировать Meta-ExternalAds через Nginx
Простейшее правило:
if ($http_user_agent ~* "meta-externalads") {
return 403;
}
Оно блокирует запросы по UA независимо от реального источника.
Это удобно для полного запрета, но не подходит для проверки подлинности.
Блокировка через Apache
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} meta-externalads [NC]
RewriteRule ^ - [F,L]
Нужен ли Rate Limit
Для подтверждённого Meta-ExternalAds агрессивный rate limit обычно не должен быть первым действием.
Если crawler создаёт неожиданно большую нагрузку, сначала стоит выяснить:
- действительно ли это инфраструктура Meta;
- какие URL запрашиваются;
- сколько уникальных страниц обходится;
- какой RPS/RPM;
- попадают ли ответы в CDN/cache;
- сколько нагрузки доходит до origin;
- нет ли аномального поведения.
После этого можно принимать решение о Rate Limit.
Как оценивать реальную нагрузку
Само количество запросов мало о чём говорит.
Для TrafficVeil полезнее рассчитывать:
| Метрика | Что показывает |
|---|---|
| Requests | Общий объём запросов |
| Unique IP | Количество источников |
| Unique URLs | Ширину обхода |
| RPM/RPS | Интенсивность |
| Bandwidth | Объём переданных данных |
| Cache HIT | Какая часть запросов обслуживается без origin |
| Origin requests | Фактическую нагрузку на сервер |
| 403/429 | Срабатывание защиты |
| 5xx | Ошибки приложения или инфраструктуры |
Если по внутренней статистике TrafficVeil за выбранный период обнаружено около 200 запросов Meta-ExternalAds, это небольшая активность. Однако в интерфейсе рядом с числом обязательно стоит показывать период измерения.
Влияет ли блокировка Meta-ExternalAds на Google
Нет прямой связи.
Meta-ExternalAds не является Googlebot. Точечная блокировка:
meta-externalads
не блокирует:
Googlebot
Googlebot-Image
Googlebot-News
AdsBot-Google
AdsBot-Google-Mobile
Поэтому сама по себе она не является запретом индексирования сайта Google.
Что произойдёт после блокировки
Последствия зависят от того, используются ли владельцем сайта рекламные и business-сценарии Meta, для которых crawler требуется.
Если Meta-ExternalAds не нужен, владелец сайта может ограничить его отдельно.
Если сайт активно взаимодействует с рекламной экосистемой Meta, безопаснее сначала оставить подтверждённый crawler разрешённым и наблюдать за его активностью.
Как учитывать Meta-ExternalAds в аналитике
Meta-ExternalAds не является обычным посетителем.
Поэтому его запросы следует исключать из:
- human visits;
- просмотров реальных пользователей;
- конверсий;
- расчёта пользовательской активности;
- статистики malicious bots — если источник подтверждён.
Но полностью выбрасывать эти данные не нужно.
Для TrafficVeil оптимальная структура:
Automated Traffic → Ads Verification → Meta → Meta-ExternalAds
Какой статус использовать в TrafficVeil
| Поле | Рекомендуемое значение |
|---|---|
| Name | Meta-ExternalAds |
| Operator | Meta |
| Category | Ads Verification |
| Access | Direct |
| UA token | meta-externalads |
| Known version | meta-externalads/1.1 |
| ASN signal | AS32934 |
| Legitimacy | Legitimate |
| Default | Allow when verified |
| Human analytics | Exclude |
| Service analytics | Include |
Какую рекомендацию показывать владельцу сайта
Вместо абстрактного:
«Легитимный бот. Решение принимайте по бизнес-пользе»
TrafficVeil может давать более понятное объяснение:
Meta-ExternalAds — crawler Meta, используемый для рекламных и других business-related сервисов. Если вы используете рекламную экосистему Meta, рекомендуем разрешить подтверждённый crawler. Если доступ не нужен, его можно ограничить отдельно, не блокируя остальные сервисные боты Meta.
Рекомендуемая стратегия Allow / Monitor / Block
| Ситуация | Действие |
|---|---|
| UA + инфраструктура Meta подтверждены | Allow |
| Используются рекламные/business-продукты Meta | Allow |
| UA совпадает, происхождение не подтверждено | Monitor / Verify |
| Слишком высокая нагрузка | Verify → Rate Limit |
| UA Meta, но идёт vulnerability scanning | Block как spoofing/suspicious automation |
| Владелец сайта не хочет этот тип crawling | Disallow / Block |
Итог
Meta-ExternalAds — легитимный crawler Meta для сценариев, связанных с рекламными и другими business-related продуктами и сервисами. Его основной идентификатор — meta-externalads, а распространённая версия User-Agent — meta-externalads/1.1.
Главное при настройке антибота — не объединять его со всеми остальными роботами Meta. facebookexternalhit, meta-externalagent, meta-externalfetcher и meta-externalads решают разные задачи и должны иметь независимые политики.
Для TrafficVeil разумная базовая стратегия — Verified → Allow. При этом запросы Meta-ExternalAds следует исключать из человеческой аналитики и учитывать отдельно как Ads Verification traffic.
Если совпадает только User-Agent, доверять запросу нельзя. Статус Verified лучше присваивать после проверки инфраструктурных и поведенческих признаков. Это защищает от простого spoofing, когда сторонний скрипт пытается получить доверенный статус, представившись crawler Meta.
Частые вопросы
Что такое meta-externalads?
Как выглядит User-Agent Meta-ExternalAds?
Это тот же бот, что facebookexternalhit?
Это AI-краулер Meta?
Как проверить настоящий запрос Meta?
Нужно ли блокировать meta-externalads?
Команда TrafficVeil разрабатывает инструменты защиты сайтов от ботов, DDoS и веб-атак. Разборы ботов пишем по логам подключённых доменов и открытым данным операторов.