PubMatic is committed to providing the safest publisher platform possible. To achieve this, we've created a rigorous Inventory Quality Evaluation. The first step is for our ad server to ensure domain and app store URLs are allowlisted. When a URL isn't allowlisted, the impression is passed back to the publisher. To safeguard against impressions being passed back, publishers must allowlist all of their domain and app store URLs. This page provides instructions for doing just that.
In an effort to help publishers maximize their yield, we track domain passbacks and automatically allowlist domains that have more than 100,000 daily passback requests. Domains that are auto-allowlisted are subjected to the same rigorous Inventory Quality Evaluation as the domain upload process. Auto-allowlisting is a safeguard measure and is not meant to replace the allowlist upload process.
Upload an allowlist file
The process for allowlisting domain and app store URLs in the PubMatic UI is simple and straightforward. Follow these steps:
- In the PubMatic UI, navigate to Inventory > Sites & Tags > from the Bulk Uploads drop-down menu, select Upload Domains.
Click Download Template to download the allowlist CSV template (skip ahead to step 5 if you've already downloaded the template and filled it out).
Open the allowlist CSV template and save it to your computer.
Add your site identifiers and domain/app store URL/CTV app ID/bundle IDs (columns A and B) to the CSV template. There's a max of 10,000 site/app domains per CSV file.
Save the changes and return to the Upload Domains page in the PubMatic UI when the template is ready.
Click Select File > select your CSV file > click Upload. The validation will take a few minutes because the domains are sent for inventory quality evaluation.
There's a max of 10,000 site/app domains per CSV file.
You'll know the file upload is complete when the Status column displays Complete (you may need to click the refresh icon).
If a header is missing from the CSV file, you'll see an error message at the top of the page. If this happens, download a new template and repeat the upload process.
- The Processed Entries column displays the number of domain/app store URLs that were successfully uploaded.
If any of the URLs failed, click the blue number in the Failed Entries column to download a CSV file that lists the failed URLs and a description of why each one failed. Refer to the Failed URLs section below for the reason associated with each failed URL. Correct the issues and follow the steps above to upload the allowlist file again.
To review a complete list of domains on your allowlist, click Download Domains.
If a site URL does not match one in the system, the message URL(s) failed to upload will appear. To add a new site, go to Inventory > Sites & Tags > click Add a Site/App.
Edit an allowlist file
Follow these instructions to edit an existing allowlist:
- In the PubMatic UI, navigate to Inventory > Sites & Tags > select Upload Domains from the Bulk Uploads drop-down menu.
- In the Processed Entries column, click the blue number for the CSV file you want to edit.
- Open the CSV file and save it to your computer.
Make your edits and save the file.
Go back to the Upload Domains page and click Choose File > select the file from the pop-up window > click Upload. Just as it did in the original upload, the validation will take a few minutes because the domains are sent for inventory quality evaluation .
- Refer to step 4 - 6 in Upload an allowlist file above.
Download a domain list
To download a file that contains a complete list of domains:
- Navigate to the Upload Domains as follows: Inventory > Sites & Tags > Bulk Upload > select Upload Domains from the drop-down menu.
- In the Download drop-down menu, select All Domains (CSV).
- Click Download File. If Refresh Status is enabled, select this and then download the file.
Domain normalization (how PubMatic manages top-level and subdomains)
When a request is received on the ad server, PubMatic identifies http:// or https:// in the URL and extracts the domain until "/" or "?" is found and then parses the domain from the URL. Once the domain is extracted, PubMatic applies the allowlist and searches for the domain in the allowlisted domains list, first at the subdomain level and then the top-level domain.
Example: Domain extraction for https://abc.xyz.com/mypage.html?a=4&b=5 would be abc.xyz.com. PubMatic then searches for abc.xyz.com first and then xyz.com so that both the subdomain and top-level domain are allowlisted.
If a top-level domain is allowlisted, its subdomains will also be allowlisted.
If a subdomain is specifically added to the allowlist, it will not allowlist its top-level domain or other domains for which this domain is not the top-level domain.
This table provides a complete list of the failure descriptions (that appear in the and the reason behind each one.
|Failure description in the CSV file||Failure reason details|
|Domain is blocked for resellers||Uploaded domain exists in global channel partner blocklist.|
|App is blocked for resellers||Uploaded app exists in global channel partner blocklist.|
|Domain is blocked on PubMatic platform||Uploaded domain exists in global publisher blocklist.|
|App is blocked on PubMatic platform||Uploaded app exists in global publisher blocklist.|
|App requires a manual review. Contact Account Team||The uploaded app doesn't exist in our known shortlist of apps. We will add this app to our shortlist after clearing a manual review|
|Domain's trust score is below the desired threshold (<5 out of 100)||Majestic has assigned this domain a trust flow of <= 5.|
|Domain's trust score is below the desired threshold (<5 out of 100)||This usually means PubMatic received a response of "not found" from Majestic.|
|Domain\App has high SIVT rate||Pixalate has determined this domain/app has high SIVT.|
|Domain\App has high GIVT rate||Pixalate has determined this domain/app has high GIVT.|
|Domain\App has low viewability score||Pixalate has determined this domain/app has low viewability.|
|Domain\App is in vendors blacklist|
Pixalate has determined this domain/app is blacklisted.
|Domain\App is flagged for brand safety||Pixalate has determined this domain/app has is a high risk for brand safety.|
|Traffic Rating Server not available. Please try again.||There was a connection issue with the Majestic server when attempting to perform the domain/app scan. Please try again.|
|App has no rating data||This means Pixalate did not find any rating data when they performed the app/domain scan.|
|Domain's trust score is below the desired threshold||Majestic has assigned this domain a trust flow score of <12.|
|Trust Score Server not available. Please try again.||There was a connection issue with the Majestic server when attempting to perform the domain/app scan. Please try again.|
Invalid iOS app store URL
This means the IOS store URL/app URL normalization failed.
|Invalid Android app store URL||This means the Android store URL/app URL normalization failed.|
|Invalid URL for this site|
This means there was a platform mismatch for uploaded records.
For example, a user tried to upload a domain for an iOS site.
|Invalid app store URL||This means the app store URL was not valid. Please try again.|
Reason for failed uploads
Below are the exceptions you might see in the Status column.
|Upload Scan Server not available. Please try again.||The upload API was down while uploading domains.|
|Download Scan Server not available. Please try again.||The download API was down while fetching scan results.|
|Scan Server not available. Please try again.||The scanning API was down or otherwise timed-out.|