Microsoft URL Negation V2
Overview
The Microsoft URL Negation App helps improve performance by automatically excluding underperforming websites (URLs) from your Microsoft Ads accounts. These are sites where your ads may be receiving lots of impressions or spend, but very few conversions or clicks — essentially wasting media dollars.
With this tool, you don't need to manually sift through reports or make exclusions yourself. Just set your performance thresholds, and the app does the rest!
What does the app do?
Analyzes your publisher performance data in Microsoft Ads.
Finds websites (placements) that are not performing well based on the thresholds you provide.
Automatically excludes those URLs from serving in your Microsoft Ads account.
How to Set It Up (Step-by-Step)
Install the App
Click on the Browse tab
Search for "Microsoft URL Negation V2"
Click Install to add the app to your workspace
Enter the Required Input Values:
Microsoft Ads Account ID
This must be a numeric ID with no letters or special characters.
To find it, log in to Microsoft Ads, and look at the URL in your browser.
Look for the parameter
aid=XXXXXX
— this number is your Account ID.⚠️ Do not use the Account ID shown in the UI — use the one from the URL (Refer to the image).
Thresholds – Minimum Two Required
Enter at least two (at least one of Clicks/Conversions and at least one of Spend/Impressions) of the following to help define what qualifies as an underperforming URL:
Clicks Threshold < e.g., 50
Conversions Threshold < e.g., 10
Spend Threshold > e.g., $200
Impressions Threshold > e.g., 10,000
These thresholds help the app identify which URLs to exclude based on poor performance. For more details on input thresholds see this table.
Run Type
Set this to Historical Run if this is your first time running the app, or if a previous run failed.
Use Daily Run only for ongoing, scheduled use after a successful historical run.
Whitelisted URLs (Optional)
Add URLs (comma-separated) that should never be excluded, even if they fall within your thresholds.
Datasource Owner Email
Email id of the person who will own the datasource in Alli.
Typically, this is your pmg email.
Datasource Owner Alli User ID
This is the Alli User ID of the datasource owner.
Find yours at: https://app.alliplatform.com/me
▶️ Click "Save and Run"
Once all required inputs are filled in, click “Save and Run”. What happens next depends on your stage of using the app:
a. If this is your first-ever run (initial setup):
The app will create a new datasource named microsoft_publisher_performance.
It will then error out and display a message indicating that the datasource needs to be authenticated.
This is expected and not a bug — it’s a required one-time setup step for data access.
Go to Alli Data, search for and authenticate the datasource.
Once authentication is complete, return to the app and run it again with the same inputs.
b. If this is your first successful run:
You should now see a success message in the app output.
At this point, the tool has successfully:
Analyzed your Microsoft Ads performance data
Identified underperforming URLs
Excluded those URLs from serving.
🎯 Now that setup is complete and you have a successful historical run, you can go back and update the Run Type from Historical Run to Daily Run for scheduled, ongoing use.
c. If this is a regular (recurring) run:
Make sure Run Type is set to Daily Run.
The app will check for any new underperforming URLs since the last run and exclude them automatically.
🧾 Input Fields Explained
Field Name | What to Enter | Required / Optional | Default | Description |
---|---|---|---|---|
Microsoft Ads Account ID | Paste the numeric Microsoft Ads Account ID from the url. Look for the | ✅ Required | – | This is the account where the exclusions will be applied. |
Clicks Threshold | Enter a number (e.g., 50). | 🟠 Optional | – | Lower bound – URLs with clicks less than this will be flagged. |
Conversions Threshold | Enter a number (e.g., 10). | 🟠 Optional | – | Lower bound – URLs with conversions less than this will be flagged. |
Spend Threshold | Enter a dollar value (e.g., 200). | 🟠 Optional | – | Upper bound – URLs with spend more than this may be flagged. |
Impressions Threshold | Enter a number (e.g., 10000). | 🟠 Optional | – | Upper bound – URLs with impressions more than this may be flagged. |
Run Type | Choose between Historical Run and Daily Run | ✅ Required | Historical Run | Set this to Historical Run if this is your first time running the app or if you are running after a failed run. Once the run is completed successfully, please change it to Daily Run. |
Whitelisted URLs | Comma-separated list of URLs (e.g., site1.com, site2.com) | 🟠 Optional | – | These URLs will not be negated, even if they fall within thresholds. |
Datasource Owner Email | Email address of the person who should own the datasource | ✅ Required | – | Ensures proper ownership of the created datasource in Alli. |
Datasource Owner Alli User ID | Found at app.alliplatform.com/me | ✅ Required | – | Used to assign datasource ownership in Alli. |
⚠️ Caveats to Keep in Mind
Campaign-Level Exclusions
The app applies exclusions at the campaign level. If a new campaign is launched after the app has run, exclusions will not automatically apply to that campaign. You’ll need to run the app again or wait for the next scheduled run to ensure exclusions are applied to the new campaign.Datasource Naming Convention
The app looks for a publisher performance datasource named "microsoft_publisher_performance".If a datasource with that exact name doesn’t exist, the app will create one automatically and use it.
If you already have a similar datasource with a different name, the app will not use it and will create a new one to maintain consistency across clients.
You can safely delete the older datasource (with the different name) unless it’s actively being used in reports or dashboards outside of this app.
Troubleshooting
If you experience issues:
Take a screenshot of any error or output.
Note the Microsoft Ads Account ID you used.
Open a Jira ticket in Alli Service Desk.
Include: Client name, account ID, app link
If you do not see a response to the ticket within 48 hours, please escalate the ticket to #alli-search-automation channel in slack.