> ## Documentation Index
> Fetch the complete documentation index at: https://docs.contentignite.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Diagnostics

> A central place to identify common pitfalls in your setup

export const Image = ({src, branded = false, alt = ""}) => {
  const imgParts = src.split(".");
  const brandClass = branded ? " branded" : "";
  return <>
      <img className={"block dark:hidden" + brandClass} src={"/assets/images/" + imgParts[0] + "--light." + imgParts[1]} alt={alt} />
      <img className={"hidden dark:block" + brandClass} src={"/assets/images/" + imgParts[0] + "--dark." + imgParts[1]} alt={alt} />
    </>;
};

<Image src="insights-hub-diagnostics.png" alt="Preview of the diagnostics insights report in Fusion" branded />

The Diagnostics Hub is designed to highlight any issues that we know will affect monetisation. Through our years of experience dealing with these issues, we are well-equipped to detect and remedy them alongside you.

When you first land in the diagnostics report, you will see a network-wide view of issues, known as your "Network Health".

By choosing a single publisher via the publisher filter in the top right, you will then see a "Publisher Health" view. This provides a deeper dive into nuanced publisher issues, such as a missing CMP Stub, presented via a simple traffic light tile system.

<Note>
  **Data freshness**

  Most data is pulled daily, especially for things like analytics data, CMP, or ads.txt data. However, there are a few exceptions. The following publisher tiles are real-time, where a fix on your side should reflect upon a page refresh of the Diagnostics Hub: Stub Status and Expired Integrations.
</Note>

## Issues

Depending on whether you've selected an individual publisher or are viewing issues across your network as a whole, you may see a number of different issues highlighted to you:

<Image src="insights-hub-diagnostics-tiles.png" alt="Shows a snapshot of the diagnostic tiles and the simple traffic light system used to highlight issues" />

### Drop-off Issue (Network Issue)

A drop-off issue means a publisher's impressions have dropped off by 75% or more over the past 24-hour period. If unexpected, this could indicate that tags have been removed or there is a configuration issue. Something worth looking into!

### Ads.txt Issue

A missing Ads.txt entry can have big consequences on ad serving and therefore revenue. Always aim for zero reported Ads.txt issues and chase anything highlighted!

Learn more about your Ads.txt file in the [Ads.txt hub](reporting/insights/ads-txt).

### Incomplete Supply Chain (Network Issue)

This refers to a specific missing line in your Ads.txt. While all missing Ads.txt lines will impact ad serving and revenue, this line (typically containing `sid-` in the middle of them) will have an increasingly negative impact.

Ensure your ads.txt is up-to-date to resolve these issues.

### CMP Not Found (Network Issue)

If we cannot detect a CMP in a GDPR or CCPA region, we will default to non-personalised ads, which have a much lower CPM. Ensure you have the CMP 'Stub' in place, directly in the head of your page (not served via a tag manager). Any queries, just reach out to your account manager who look into any potential issues for you. Learn more in our [CMP Guide](/getting-started/cmp-guide).

### Tag Latency

Tag latency measures how long it takes for your site to load our tag onto the page. In advertising, it is key to load ads as quickly as possible, before the user scrolls past the unit target or even navigates away to another page.

The best way to deploy our tag is to have it directly in the head of your site. Any other method, such as using a tag manager or serving via an ad server will introduce latency, impacting your earnings.

### Traffic Stats (Graph)

The traffic stats graph merges your analytics data (if connected) with your Publisher Tag data. Typically, Analytics page views will be lower than Content Ignite Page Impressions due to filtering of bots and invalid traffic by your analytics partner. If Analytics data is higher, it is likely that your Publisher Tag is not deployed to every page on your site, potentially leading to lost opportunities.

### CMP Status (Graph)

It’s important to track consent rates over time. Sudden drops in consent rates often correlate with decreased monetisation. These drops could result from CMP changes, triggering mass re-consent, or issues with CMP implementation.

It’s crucial to note that this consent rate reflects what we as an ad tech vendor are seeing. This provides valuable insight beyond your CMP platform, allowing you to spot issues early with real-world data.

Aim for a consent rate of 80%+, though this can vary by audience type. For example, a tech savvy audience might have lower consent rates.

### CMP Error Rate (Publisher Issue)

If a CMP is implemented correctly, the error rate should be zero. Any higher rate will signal a stub issue or configuration problem with your CMP.

As a reminder, CMP issues cause advertising to default to "Non-personalised", which performs considerably worse in terms of monetisation.

CMPs are a very common failure point; read more over in our [CMP Guide](/getting-started/cmp-guide).

### Stub Status (Publisher Issue)

A 'Stub' is part of your CMP setup, and is the publishers responsibility to implement. It's a small piece of Javascript code, that **must exist** directly in the head of your site.

Missing or incorrectly implemented stubs lead to CMP errors and poorly monetised traffic.

Read more about stubs and common CMP mistakes in our [CMP Guide](/getting-started/cmp-guide).

### Heavy Ad Intervention (Publisher Issue)

HAI is a Google Chrome feature that removes ads from the page if it is found they are making excessive network requests or use too much CPU resource. Once removed, that ad cannot generate any revenue.

While there is little you can do to directly effect this behaviour in the open market, indirectly, a well-built site with healthy user traffic tends to attract higher-quality advertisers, reducing HAI occurrences. Typically, HAI values are around 0.3%.

Source
[https://developer.chrome.com/blog/heavy-ad-interventions](https://developer.chrome.com/blog/heavy-ad-interventions)

### Mobile Ad Density (Publisher Issue)

The measurement for Mobile Ad Density is universally agreed upon, unlike for desktop where there is no single standard.

30% is the cut off here. Anything above this can result in penalties, and will most importantly, impact your sites user experience.

Content Ignite measures both our own contribution to mobile ad density, as well as any third parties. The score displayed in your Diagnostics Hub represents a combination of both, giving you an overview of your total mobile ad density.

### Tag Error Rate (Publisher Issue)

There are a number of possible tag errors that can occur, some of which are less likely to cause notable impact but should still be addressed, while others may indicate more serious issues.

One common error is not serving our tag directly, for example by bundling it into a large JavaScript file via a caching plugin. This not only affects tag behaviour but also violates our terms of service.

Another issue is loading our tag multiple times on a page. Although protections are in place to prevent a secondary tag from loading, it is best to centralise our tag serving in one location to maintain control over your site's ad-serving logic.

### Tag error groups

The Tag Error Breakdown groups similar browser-side errors together so you can see whether an issue is a publisher implementation problem, something Content Ignite should review, or normal user/browser behaviour such as ad blockers and privacy protections.

The impact badge is a guide to how much the error can affect monetisation when it happens often. A low-impact group can still be worth investigating if it is unusually high compared with your network average.

#### Domain mismatch

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fee2e2', borderRadius:'999px', color:'#991b1b', fontSize:'0.75rem', fontWeight:600}}>High</span> **Primary action:** Publisher

* **Description:** The Publisher Tag has detected that it is running on a domain that does not match the publisher or configuration it was expecting. This is common on staging and testing sites, where the production tag is intentionally present outside the live publisher domain.
* **Common causes:** A staging or QA domain is being used, the publisher domain has changed, the tag has been copied to the wrong site, or publisher content has been cloned onto an unauthorised or malicious domain.
* **Actionable takeaway:** If the traffic is from a known staging site, this is usually a non-issue. If the domain is unexpected, the publisher should investigate where the content or tag is being served from and remove it where possible. Content Ignite cannot fix the root cause of cloned or unauthorised sites, but can block tag loading on domain mismatch if malicious activity is suspected. This is not enabled by default because it can also affect normal staging and testing workflows.

#### GPT Load Failed

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fee2e2', borderRadius:'999px', color:'#991b1b', fontSize:'0.75rem', fontWeight:600}}>High</span> **Primary action:** Publisher / user environment

* **Description:** Google's Publisher Tag script did not load or did not become available in time, which can prevent Google Ad Manager ads from being requested.
* **Common causes:** Ad blockers, browser privacy tools, network timeouts, CSP (Content Security Policy) or firewall rules, script optimisation plugins, or delayed/deferred loading of advertising scripts.
* **Actionable takeaway:** If this is above the network average, check CSP, CDN, firewall, consent and optimisation settings to ensure Google Publisher Tag and Content Ignite scripts are not blocked or delayed. Isolated cases are often user behaviour and cannot be fixed directly.

#### GPT PubAds Unavailable

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fee2e2', borderRadius:'999px', color:'#991b1b', fontSize:'0.75rem', fontWeight:600}}>High</span> **Primary action:** Publisher / Content Ignite

* **Description:** GPT is present, but the `pubads` service is not available when the tag tries to use it.
* **Common causes:** GPT has not fully initialised, the `googletag` object has been overwritten, scripts are running out of order, GPT has been bundled or deferred, or another on-page script is interfering with GPT setup.
* **Actionable takeaway:** Keep the Content Ignite tag and GPT loading path unmodified and avoid bundling or deferring them. If the issue starts after a Fusion config or tag change, ask Content Ignite to investigate.

#### Secure Signal Provider Push Failed

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fef3c7', borderRadius:'999px', color:'#92400e', fontSize:'0.75rem', fontWeight:600}}>Medium</span> **Primary action:** Content Ignite / Publisher

* **Description:** A secure signal provider could not be registered with GPT. This may reduce identity or privacy-safe signal availability for some demand partners.
* **Common causes:** GPT is unavailable, secure signal APIs are blocked, an identity module is not available, or a browser/privacy setting prevents the signal from being used.
* **Actionable takeaway:** Content Ignite should review the relevant identity or ad-tech integration if this is persistent. Publishers should check that GPT and related scripts are not blocked by CSP, consent rules or optimisation tools.

#### Prebid BidsBackHandler Failed

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fee2e2', borderRadius:'999px', color:'#991b1b', fontSize:'0.75rem', fontWeight:600}}>High</span> **Primary action:** Content Ignite

* **Description:** Prebid returned from auction but failed while processing bidder responses, which can stop bid targeting being applied correctly.
* **Common causes:** A bidder adapter error, malformed bid response, incompatible Prebid module, unexpected missing object, a custom Prebid configuration issue, or creative blocking from an integrated security provider. Security providers may block malicious creatives or creatives on a block list, such as gambling creatives, which can interrupt normal ad handling and cause errors further upstream.
* **Actionable takeaway:** Content Ignite should review the Prebid build, bidder configuration, recent ad-demand changes and security-provider blocking activity. Publishers should flag any recent on-page script changes that may interfere with Prebid.

#### Network Request Failed

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fef3c7', borderRadius:'999px', color:'#92400e', fontSize:'0.75rem', fontWeight:600}}>Medium</span> **Primary action:** Publisher / user environment

* **Description:** A browser network request needed by the tag failed, was aborted, or could not be fetched.
* **Common causes:** User ad blockers, privacy extensions, poor connectivity, browser request cancellation, CSP or firewall rules, CDN interruption, or the user navigating away mid-request.
* **Actionable takeaway:** A small amount is expected and often cannot be fixed. If elevated, check publisher-side CSP, firewall, consent, CDN and script allow-list settings.

#### Window Property Access Denied

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#dcfce7', borderRadius:'999px', color:'#166534', fontSize:'0.75rem', fontWeight:600}}>Low</span> **Primary action:** User/browser behaviour

* **Description:** The browser blocked access to a `Window` property because the tag or a related script was interacting with a restricted frame.
* **Common causes:** Cross-origin iframes, browser same-origin security rules, sandboxed frames, embedded content, or privacy restrictions.
* **Actionable takeaway:** This is usually normal browser protection and not directly fixable. Investigate only if the rate is unusually high or linked to a specific custom iframe implementation.

#### Prebid Build Load Failed

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fee2e2', borderRadius:'999px', color:'#991b1b', fontSize:'0.75rem', fontWeight:600}}>High</span> **Primary action:** Publisher / Content Ignite

* **Description:** The Prebid build required for header bidding failed to load.
* **Common causes:** Ad blockers, CSP restrictions, CDN/network issues, blocked script domains, an incorrect build reference, or a deployment issue with the requested Prebid bundle.
* **Actionable takeaway:** Publishers should confirm Content Ignite and Prebid script domains are allowed and not rewritten by optimisation tools. Content Ignite should investigate if the build reference or deployment is failing.

#### GPT Slot Definition Failed

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fee2e2', borderRadius:'999px', color:'#991b1b', fontSize:'0.75rem', fontWeight:600}}>High</span> **Primary action:** Publisher / Content Ignite

* **Description:** GPT could not define one or more ad slots, so those units may not request ads correctly.
* **Common causes:** Missing or renamed ad unit containers, invalid unit paths, duplicate unit definitions, page markup changes, GPT not being ready when slots are defined, or an out-of-page format such as an interstitial ad being rejected because Google determines the page does not support that format.
* **Actionable takeaway:** Check that unit containers and mappings still match the Fusion configuration. Content Ignite should review the tag/config if the page markup is correct, especially for out-of-page formats where Google may decide the format is not eligible on the current page.

#### Heavy Ad Intervention

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fef3c7', borderRadius:'999px', color:'#92400e', fontSize:'0.75rem', fontWeight:600}}>Medium</span> **Primary action:** Content Ignite / market behaviour

* **Description:** Chrome has removed an ad because it exceeded browser limits for network usage, CPU usage, or heavy ad behaviour.
* **Common causes:** Resource-heavy creatives, auto-refreshing creative behaviour, repeated media loading, poor-quality demand, or a user/device under resource pressure.
* **Actionable takeaway:** Content Ignite can investigate demand partners or creatives if this is recurring. Publishers can help by keeping pages performant and avoiding excessive third-party scripts, but some cases are caused by advertiser creative behaviour.

#### Reference Error: Can't Find Variable

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fef3c7', borderRadius:'999px', color:'#92400e', fontSize:'0.75rem', fontWeight:600}}>Medium</span> **Primary action:** Publisher / Content Ignite

* **Description:** A script expected a JavaScript variable to exist, but the browser could not find it.
* **Common causes:** Script load order issues, blocked third-party libraries, ad blockers, consent gating, deferred scripts, or an integration expecting a module that was not loaded.
* **Actionable takeaway:** Use the detail value to identify the missing variable. Publishers should check site-level blockers and load order; Content Ignite should review any Fusion integration that depends on the missing variable.

#### Type Error: Cannot Read Properties Of Null

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#fef3c7', borderRadius:'999px', color:'#92400e', fontSize:'0.75rem', fontWeight:600}}>Medium</span> **Primary action:** Publisher / Content Ignite

* **Description:** A script tried to read a property from a value that was `null`, usually meaning an expected object or page element was not available.
* **Common causes:** Missing ad containers, dynamic page layouts, lazy-rendered elements, removed DOM nodes, configuration pointing at a unit that no longer exists, or a third-party script returning an unexpected value.
* **Actionable takeaway:** Check whether the affected unit or object exists on the page when the tag runs. Content Ignite should review the Fusion configuration if the page markup is correct.

#### Security Error: Blocked A Frame From Accessing A Cross Origin Frame

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#dcfce7', borderRadius:'999px', color:'#166534', fontSize:'0.75rem', fontWeight:600}}>Low</span> **Primary action:** User/browser behaviour

* **Description:** The browser blocked a frame from reading another frame because they are from different origins.
* **Common causes:** Standard browser same-origin policy, embedded third-party content, sandboxed iframes, creative iframes, or security-hardened browsers.
* **Actionable takeaway:** This is usually expected browser behaviour and not something to fix. Investigate only if it becomes common after adding a custom iframe, creative wrapper or page integration.

#### Security Error: The Operation Is Insecure

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#dcfce7', borderRadius:'999px', color:'#166534', fontSize:'0.75rem', fontWeight:600}}>Low</span> **Primary action:** User/browser behaviour / Publisher

* **Description:** The browser blocked an operation because it was considered insecure in the current context.
* **Common causes:** Private browsing, blocked storage, sandboxed iframes, strict privacy settings, mixed or restricted contexts, or browser-level security rules.
* **Actionable takeaway:** Occasional occurrences are normal and usually user/environment driven. If persistent on a specific publisher, check iframe sandboxing, storage restrictions, HTTPS setup and CSP.

#### Unknown or unclassified errors

**Impact:** <span style={{padding:'2px 8px', backgroundColor:'#dcfce7', borderRadius:'999px', color:'#166534', fontSize:'0.75rem', fontWeight:600}}>Low</span> **Primary action:** Content Ignite

* **Description:** The error did not match one of the currently defined groups, so Fusion reports it as either its raw error text or as `Unknown` in live charting.
* **Common causes:** A new browser error format, a newly introduced integration error, or a low-volume edge case that has not yet been mapped.
* **Actionable takeaway:** No immediate publisher action is usually needed. If the same unknown error repeats or grows above the network average, send the detail value to Content Ignite so it can be classified and investigated.

### Viewability (Publisher Issue)

Viewability is a publisher quality metric that measures the ratio of impressions served to those that are viewable, where an ad is considered viewable if 50% or more of it is in view for at least one second.

A high viewability rate is appealing for advertisers, as it assures them that their ads are being seen by users. To help maintain a strong viewability score, utilising features like "In-view" in Fusion is beneficial.

A very low viewability rate could suggest that the "In-view" feature is disabled for certain units or that an element on the page is obscuring the ad unit.

### Expired Integrations (Publisher Issue)

Most integrations in Fusion don't expire unless you explicitly revoke access, but there is one key exception: Amazon's APS integration. This integration expires every three months and cannot be renewed.

If an active integration expires, you may lose access to reporting data or even have the integration removed from your ad stack.

You will receive an email notification two weeks before expiration, but if any integrations lapse, they will appear in this section for your immediate attention.

### Direct Demand Mix (Publisher Issue)

While having direct demand on your site is certainly not an "issue," this tile becomes particularly helpful when reviewing programmatic performance.

If direct spend is taking up a large portion of your inventory, it’s understandable that revenue and performance from programmatic demand will drop.

To better understand where your earnings are coming from, you can refer to the specific report in the [Demand Mix Hub](/reporting/insights/demand-mix).

### Traffic Trend (Publisher Issue)

Ad revenue is directly tied to your traffic. Without traffic, there’s no ad spend (obviously!). Therefore, it’s crucial to monitor how your traffic is performing. If traffic trends downwards, you can expect a corresponding drop in ad revenue.

Our [Revenue Analytics Hub](/reporting/insights/revenue-analytics) does a great job of showing you how we are performing for your given traffic.
