Перейти до вмісту
AppFoyer
Почати

Посібники app-ads.txt

Що таке app-ads.txt і де він має розташовуватися

Файл в одному абзаці, формат рядка поле за полем, єдине правило щодо розташування, яке вирішує, чи все це взагалі працюватиме, і що робити без вебсайту.

app-ads.txt — це текстовий файл зі списком рекламних компаній, яким дозволено продавати рекламний інвентар вашого застосунку. Він розташовується за адресою /app-ads.txt на вебсайті, зазначеному на сторінці застосунку в магазині, і мережі завантажують його, щоб перевірити, що продавці авторизовані. Піддомен платформи підходить: AdMob верифікує файли на піддоменах AppFoyer. Немає реклами — файл не потрібен.

1:22
Відео, 1:22 · відкривається на YouTube

Зробіть це за кілька хвилин

AppFoyer розміщує сторінки, про які цей посібник, — політику конфіденційності, умови, підтримку, видалення акаунта та app-ads.txt — на власному піддомені, без вашого домену й сервера. Один застосунок — безкоштовно, і ніщо з того, чого вимагає магазин, ніколи не буває за платним доступом.

Перевірено 12 жовтня 2026 р.. Політики магазинів змінюються, іноді без попередження. Усе нижче посилається на офіційну документацію, і авторитетом є та сторінка, а не ця. Якщо вони розходяться, правий магазин. Цей посібник перекладено з англійської; цитати з документації магазинів наведено в англійському оригіналі.

app-ads.txt — це текстовий файл зі списком рекламних компаній, яким дозволено продавати рекламний інвентар вашого застосунку. Він розташовується за адресою /app-ads.txt на вебсайті, який ви вказали на сторінці застосунку в магазині, і рекламні мережі завантажують його, щоб перевірити, що той, хто пропонує ваш інвентар, справді авторизований вами. Без нього покупець не має способу це підтвердити, і саме тому існує цей стандарт.

Якщо ваш застосунок не показує рекламу, цей файл вам узагалі не потрібен. Якщо показує, на це піде близько десяти хвилин — і дев’ять із них ви витратите на те, щоб правильно визначити розташування, бо лише ця частина регулярно йде не так.

Яку проблему він розв’язує

Рекламний інвентар перепродають. Десь між вашим застосунком і рекламодавцем є біржі, реселери й посередники, і доки не з’явилися ads.txt та його «застосунковий» родич, покупець не мав дешевого способу відрізнити “це справді інвентар цього застосунку” від “хтось стверджує, що продає його”. Шахрайство працювало, бо твердження неможливо було перевірити.

Рішення навмисно просте: видавець публікує список тих, кому дозволено продавати від його імені, за адресою, яку контролює лише видавець. Покупець завантажує файл і порівнює. Це весь механізм, і саме тому адреса важливіша за вміст: файл, який міг би розмістити будь-хто, нічого б не доводив.

Формат рядка

Один авторизований продавець на рядок, три обов’язкові поля й одне необов’язкове, через кому:

google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0
ПолеЗначення
google.comДомен рекламної системи — власний канонічний домен мережі, а не ваш.
pub-0000000000000000Ваш ідентифікатор видавця в цій мережі. Скопіюйте його з її дашборда.
DIRECT або RESELLERDIRECT, якщо у вас із нею прямий договір; RESELLER, якщо ви авторизували її перепродавати.
f08c47fec0942fa0Необов’язковий ідентифікатор центру сертифікації, якщо мережа його публікує.

Усе після # — коментар. Рядки, що починаються з contact=, subdomain=, inventorypartnerdomain= тощо, — це змінні, а не записи про продавців, і їх не чіпають.

Дві помилки пояснюють більшість зламаних файлів: пропущена кома, через яку весь рядок неможливо розібрати, і вставлений із форуму підтримки чужий ідентифікатор видавця, який дозволяє незнайомцеві продавати ваш інвентар. Дашборд кожної мережі показує саме той рядок, який їй потрібен, — користуйтеся ним, а не шаблоном.

Де він має розташовуватися — частина, яка вирішує все

Краулер не знає назви вашого пакета й не шукає вас за застосунком. Він читає URL вебсайту розробника зі сторінки застосунку в магазині і завантажує /app-ads.txt з кореня цього домену. Помилитеся з URL на сторінці в магазині — і цілком правильний файл стане невидимим.

AdMob документує правила пошуку, і їх варто один раз прочитати, а не вгадувати:

  • Кореневий каталог означає “the directory following the top level domain” (каталог, що йде одразу після домену верхнього рівня) — example.com/app-ads.txt, а не example.com/some/path/app-ads.txt.
  • Краулери “probe up to one subdomain level from the developer website when constructing an app-ads.txt URL” (перевіряють щонайбільше один рівень піддоменів від вебсайту розробника, коли складають URL app-ads.txt). Для сторінки в магазині, що вказує на support.help.example.com/game, власний приклад AdMob показує спроби help.example.com/app-ads.txt і example.com/app-ads.txt.
  • www. і m. виключено як розташування піддоменів, тож вони зводяться до самого домену.

Окрім адреси, віддача має бути нудно правильною: HTTP 200, Content-Type: text/plain, жодного перенаправлення перед ним, жодного входу, жодного JavaScript, який його рендерить, нічого в robots.txt, що його блокує. Файл, який з’являється лише після перенаправлення з http на https або з кореневого домену на www, — поширена й зовсім непомітна помилка.

Перевірте так, як це зробив би краулер:

curl -i https://your-domain.example/app-ads.txt

Вам потрібні 200 OK, text/plain, жодного заголовка Location: і ваші рядки в тілі відповіді.

«Але в мене немає вебсайту»

Для інді-розробника це звичайна ситуація, і саме тому в багатьох застосунків файлу немає взагалі.

Вимога — це хост, який ви контролюєте і який віддає файл, а не вимога мати маркетинговий сайт, домен компанії чи лендинг. AdMob каже про це прямо: “If you don’t have a suitable website that allows the uploading of an app-ads.txt file at the root level, you can use Firebase Hosting to host your app-ads.txt file.” (Якщо у вас немає відповідного вебсайту, який дозволяє завантажити файл app-ads.txt на кореневий рівень, ви можете розмістити свій файл app-ads.txt на Firebase Hosting.) Хостинг на платформі — це очікуваний варіант, а не обхідний шлях. У посібнику для тих, хто не має вебсайту, розібрано варіанти.

Хоч що б ви використовували, дві умови мають виконуватися довше, ніж тиждень запуску: адреса має залишатися незмінною, бо вона надрукована на сторінці застосунку в магазині, про яку ви більше не згадаєте, і вона має й далі віддавати звичайний текст, без перенаправлення, що непомітно з’явиться перед нею, щойно хтось «покращить» налаштування.

Коли ви щось змінюєте, одразу нічого не відбувається

Рекламні мережі сканують повторно за власним розкладом. AdMob зазначає, що “it can take up to 24 hours for AdMob to crawl and verify your app-ads.txt files” (AdMob може знадобитися до 24 годин, щоб просканувати й верифікувати ваші файли app-ads.txt), а інші мережі працюють повільніше. Файл, завантажений годину тому, який досі вважається відсутнім, майже завжди просто ще не перевірений, — перш ніж щось іще змінювати, перегляньте посібник щодо помилки «не знайдено».

Що тут робить AppFoyer

Сторінка вашого застосунку віддає app-ads.txt на власному піддомені — звичайний текст, 200, без перенаправлення, із заголовками, яких вимагає специфікація, — а редактор перевіряє кожен рядок під час введення, тож пропущену кому буде виявлено ще до того, як її побачить краулер. Ви вказуєте цей піддомен як вебсайт розробника на сторінці застосунку в магазині, на один рівень нижче за appfoyer.page.

AdMob верифікує його там: у жовтні 2026 року він повідомив “app-ads.txt file found and verified” (файл app-ads.txt знайдено й верифіковано) для застосунків, вебсайт розробника яких — адреса AppFoyer. Власних результатів сканування від інших рекламних мереж у нас поки немає.

Офіційні джерела