Ensure ads.txt/app-ads.txt can be crawled

Once an ads.txt/app-ads file is set up on your domain, the Google crawler will:

  • Attempt to crawl the file every 24 hours.
  • Parse the contents of the file to determine seller IDs that are authorized to monetize your inventory.

You can monitor the ads.txt/app-ads.txt status of a domain in the Ad Manager Ads.txt Management tool. In some cases, an ads.txt/app-ads.txt file may have been posted on a domain, but Ad Manager indicates “No ads.txt file was found.” If the file has been posted for up to 24 hours, this usually implies that Google cannot find/crawl/parse the file, even though it may exist.

If this happens, we recommend working through the following troubleshooting steps with your Webmaster.

Confirm the file is not temporarily unavailable

If a previously seen ads.txt/app-ads.txt file is unavailable on a subsequent re-crawl, the previously seen entries will be:

  • Purged if the response is a hard 404 error (page that actually doesn’t exist; HTTP 404 status).
  • Retained for up to five days if the response is a soft 404 error (a real page returned for a URL that doesn't actually exist; HTTP 200 status) or a 500 server error. In this case, Ad Manager shows a “Last seen” time potentially older than the expected 24-hour refresh period.

Confirm that the file is reachable from the root domain

Redirects from domain.com/ads.txt to www.domain.com/ads.txt are fairly common. Ads.txt crawling will start at the root domain, and the root domain needs to return from, or redirect to, the ads.txt file.

  • An ads.txt file on www.domain.com/ads.txt will only be crawled if domain.com/ads.txt redirects to it.
  • Only a single redirect outside the original root domain is followed (e.g., example1.com/ads.txtexample2.com/ads.txt). If a second redirect is included — even if it's for the same domain — the file will not be crawled.

Ensure crawling is not disallowed by robots.txt

The ads.txt/app-ads.txt file for a domain may be ignored by crawlers if the robots.txt file on a domain disallows one of the following:

  • The crawling of the URL path on which an ads.txt/app-ads.txt file is posted.
  • The User Agent of the crawler.
Example: Crawling disallowed on ads.txt file path

For example1.com:

  1. An ads.txt file is posted on example1.com/ads.txt.
  2. The following lines are included in example1.com/robots.txt:
    User-agent: *
    Disallow: /ads
  3. The ads.txt file will be ignored by crawlers that respect the robots.txt standard.
  4. You can modify the robots.txt file as follows to allow crawling of the file (other approaches are possible):
    • Option 1: Modify disallowed path.
      User-agent: *
      Disallow: /ads/
    • Option 2: Explicitly allow ads.txt; depends on crawler support for the Allow robots.txt directive.
      User-agent: *
      Allow: /ads.txt
      Disallow: /ads
Example: Crawling disallowed for User Agent across entire site

For example2.com:

  1. An ads.txt file is posted on example2.com/ads.txt.
  2. The following lines are included in example2.com/robots.txt:
    User-agent: Googlebot
    Disallow: /
  3. The ads.txt file will be ignored by the Google crawler.

Ensure file is returned with an HTTP 200 OK status code

While a request for an ads.txt/app-ads.txt file may return the contents of the file in the response body, if the status code in the response header indicates the file was not found (e.g., status code 404):

  • The response will be ignored.
  • The file will be considered non-existent.

Make sure the file has an HTTP 200 OK status code.

Ensure there are no formatting errors or invalid characters in the file

Formatting errors, such as invalid whitespace characters, may be difficult to detect but can make an ads.txt/app-ads.txt file difficult to parse by a crawler, and may therefore result in a file being ignored. Avoid copying and pasting ads.txt/app-ads.txt entries from a rich text editor; we recommend a plain text editor. You can also check for invalid UTF-8 characters in your ads.txt/app-ads.txt file using a HEX editor

Make an ads.txt/app-ads.txt file reachable via both HTTP and HTTPS

The Google crawler attempts to crawl all ads.txt/app-ads.txt files on both HTTP and HTTPS. However, a 404 (or 40X) response causes previously crawled entries to be purged, even though an ads.txt/app-ads.txt file is crawled via HTTP. Therefore, if crawling via HTTPS returns a 404 (or 40X):

  • The previously crawled entry will be purged.
  • Ad Manager will show a “no ads.txt” status.

Please ensure the ads.txt/app-ads.txt is accessible via both HTTP and HTTPS.

Confirm your server/CDN isn’t returning an invalid response to the Google crawler

When viewed in the browser, a valid ads.txt may appear to be returned. However, if an invalid non-ads.txt response is returned when the User Agent indicates the crawler is the Googlebot:

  • Google won’t detect the ads.txt file.
  • Ad Manager will indicate a status of “No ads.txt found.”

To debug this scenario, ask your webmaster to run the following shell commands (replace mydomain.com with your domain):

  1. To confirm that the ads.txt file can be reached, run:
    curl -iL http://mydomain.com>/ads.txt

    The contents of the ads.txt file should be returned as seen in the browser when you navigate to mydomain.com/ads.txt.
  2. To confirm that the ads.txt file can be found by the Google crawler, run:
    curl -iL -A "'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html).'"
    http://mydomain.com/ads.txt

    If an invalid, non-ads.txt response is returned, this indicates that your server or Content Distribution Network (CDN) is returning an invalid response when the Google crawler attempts to fetch your ads.txt file.

Note there may be other reasons -- apart from the crawler user agent checks covered above -- why your server does not return a valid response to the Google crawler. Please work with your webmaster to investigate and fix such issues by checking your server logs for unsuccessful Google crawls for mydomain.com/ads.txt or mydomain.com/robots.txt.

App-specific tips

These suggestions apply only to app-ads.txt files:

  • Register your app with Google Play or the App Store. 
  • Include a developer website in the Google Play or the App Store listing for the app. 
  • Make sure the developer website listed in Google Play or the App Store for this app is a valid URL. Check for typos and ensure that the app-ads.txt file is not on a subdomain.
Was this helpful?
How can we improve it?