Skip to content

Hive Check reference

Every check Hive Check runs, grouped by category, with its rule code, default severity and what it means.

Every finding in a Hive Check report has a rule code that never changes, such as CON_TRACKING_BEFORE_CONSENT. This page lists every check by category.

  • Severity is the check's usual severity. A check can raise or lower it for a single finding, so the report can show a different severity.
  • Fix says what the finding's button does. Hive Setup means Hive Setup can make the change; without Hive Setup in your plan, the button is How to fix. Open the setting opens the setting that fixes it. A dash means you fix it yourself, in your site's code or your tag manager container.
  • Tag manager container and Crawl findings don't change the score. See how the score works.

Hive Setup fixes The cookie banner does not update consent (CON_CMP_NO_UPDATE) for OneTrust and Cookiebot banners. See Consent.

Tracking

CodeCheckSeverityWhat it meansFix
MJA_NOT_LOADEDMy Journey Analytics is not loadedCriticalWe did not find the My Journey Analytics snippet on these pages, so no visits or events are recorded from them.Hive Setup
MJA_LOADED_NOT_SENDINGMy Journey Analytics loads but sends nothingHighThe snippet loaded, but no events left the page. Check that it is initialised with your project key and that nothing blocks the requests.-
MJA_WRONG_TOKENEvents go to a different projectCriticalThe snippet on this site uses a project key that does not belong to this project, so its events land somewhere else.Hive Setup
MJA_DOUBLE_INITMy Journey Analytics starts twiceMediumThe snippet is initialised more than once on the same page. This can double count pageviews and events.-
MJA_NO_CUSTOM_DOMAINNo custom tracking domainLowEvents go to our shared domain. Ad blockers often block it. A tracking domain on your own website keeps more of your data.Open the setting
MJA_PROXY_NOT_USEDYour tracking domain is not usedMediumYou have a custom tracking domain, but the snippet on this site still sends events to the shared domain.Hive Setup
MJA_UI_HOST_MISSINGThe toolbar address is not setLowThe snippet sends events through a custom domain but does not say where the app lives, so the toolbar and some links may not open.Hive Setup
MJA_OLD_DEFAULTSThe snippet uses old default settingsLowThe snippet does not use the current recommended defaults, so some newer tracking improvements are off.Hive Setup
MJA_LOADER_WRONG_TRIGGERThe tracking tag fires too lateMediumIn your tag manager container, the My Journey Analytics tag does not fire on Initialization - All Pages. Early events and the first pageview can be missed. Needs a Google Tag Manager connection.Hive Setup
MJA_NO_FORWARDERdataLayer events are not sent to My Journey AnalyticsMediumYour site pushes useful events to the dataLayer, but none of them reach My Journey Analytics.Hive Setup
MJA_EVENTS_NOT_ARRIVINGEvents from this site are not arrivingHighWe saw the site send events during the check, but this project received few or none from this site in the last 7 days. Checked only when the site is one of your authorized URLs.-
MJA_SDK_ERRORSThe tracking snippet shows errorsMediumThe browser console showed errors from the My Journey Analytics snippet on these pages.-
MJA_SDK_BLOCKEDSome tracking requests were blockedInfoSome requests to the tracking domain failed or were blocked. Visitors with ad blockers can see the same thing.-
MJA_IDENTIFY_UNVERIFIEDWe could not check how users are identifiedInfoWe only visit public pages, so we cannot see whether logged-in users are identified. Check this on a logged-in page yourself.-
MJA_PII_IN_EVENT_PROPSPersonal data is sent with eventsHighEvents from this site include values that look like email addresses, phone numbers or other personal data.Open the setting
CodeCheckSeverityWhat it meansFix
CON_NO_CMPNo cookie banner foundMediumWe did not find a consent banner or consent platform, but the site sets tracking cookies or sends tracking requests.-
CON_TRACKING_BEFORE_CONSENTTracking starts before consentCriticalTracking or advertising requests were sent before the visitor made a choice in the cookie banner.-
CON_COOKIES_BEFORE_CONSENTCookies are set before consentHighTracking or advertising cookies were set before the visitor made a choice in the cookie banner.-
CON_REJECT_NOT_HONOUREDReject does not stop trackingCriticalAfter we rejected cookies in the banner, tracking or advertising requests and cookies continued.-
CON_NO_CONSENT_MODEGoogle Consent Mode is not set upMediumGoogle tags load without a consent default, so they cannot adjust to the visitor's choice.Hive Setup
CON_DEFAULT_LATEThe consent default is set too lateHighThe consent default is set after the first Google request, so that request ignores the visitor's choice.Hive Setup
CON_MODE_V2_MISSINGConsent Mode v2 signals are missingHighThe consent state does not include ad_user_data and ad_personalization. Google needs both for ads in the EEA and the UK.Hive Setup
CON_CMP_NO_UPDATEThe cookie banner does not update consentHighThe visitor's choice in the banner does not update the consent state, so tags keep their default behaviour.Hive Setup
CON_MJA_IGNORES_CONSENTMy Journey Analytics ignores the cookie bannerMediumMy Journey Analytics keeps capturing in the same way whatever the visitor chooses in the banner.Hive Setup
CON_PII_IN_URLPersonal data in page addressesHighPage addresses sent to tags include values that look like email addresses, phone numbers or other personal data.-
CON_PII_IN_DATALAYERPersonal data in the dataLayerHighdataLayer pushes include values that look like email addresses, phone numbers or other personal data, which any tag can read.-

Tags

CodeCheckSeverityWhat it meansFix
TAG_DUPLICATE_IDThe same tag is installed twiceHighThe same tag ID loads more than once on these pages. This usually doubles pageviews and conversions.-
TAG_DUPLICATE_CONTAINERThe tag manager container loads twiceMediumThe same tag manager container loads more than once on these pages, so every tag in it can fire twice.-
TAG_UA_DEPRECATEDUniversal Analytics is still installedMediumGoogle stopped processing Universal Analytics data. The tag still loads and slows the page but records nothing.-
TAG_BROKENA tag fails to load or sendHighRequests from this tag failed or returned errors, so its data is missing.-
TAG_SLOWA tag is slowLowThis tag takes a long time to load or is large, which slows your pages.-
TAG_RENDER_BLOCKINGA tag blocks the page from showingLowThis tag loads synchronously in the page head, so visitors wait for it before they see the page.-
TAG_GA4_NO_PAGEVIEWGoogle Analytics 4 sends no page viewsMediumThe Google Analytics 4 tag loads, but we did not see a page_view hit on these pages.-
TAG_PIXEL_DOUBLE_FIREAn ad pixel fires twiceMediumAn advertising pixel sent the same event more than once on one page load. Ad platforms may count conversions twice.-
TAG_OUTSIDE_GTMA tag is hardcoded in the pageInfoThis tag is in the page code, not in your tag manager container, so it is harder to manage and to control with consent.-
TAG_GTM_NOSCRIPT_MISSINGThe tag manager noscript part is missingLowThe tag manager container loads, but the noscript iframe that Google recommends after the opening body tag is missing.-
TAG_UNKNOWN_THIRD_PARTYUnknown third-party scriptsInfoThese pages load scripts from other companies that we do not recognise. Check that you still need them.-

Data layer

CodeCheckSeverityWhat it meansFix
DL_MISSINGNo dataLayerInfoThese pages have no dataLayer, so tags can only use what they can read from the page.-
DL_REASSIGNEDThe dataLayer is overwrittenLowPage code replaces the dataLayer with a new array after the tag manager starts, so earlier pushes can be lost.-
DL_NAMING_INCONSISTENTEvent names use mixed stylesLowdataLayer event names mix styles such as snake_case and camelCase, which makes reports harder to read.-
DL_KEY_EVENTS_MISSINGKey events are missingMediumThe site looks like it sells products or collects leads, but we did not see events such as add_to_cart, purchase or generate_lead.-
DL_RESERVED_NAMESReserved event names are usedLowSome dataLayer events use names that the tag manager or Google Analytics reserves, which can cause odd behaviour.-
DL_ECOMMERCE_NOT_CLEAREDEcommerce data is not clearedLowEcommerce pushes are not preceded by ecommerce: null, so values from an earlier event can leak into the next one.-
DL_LARGE_PUSHVery large dataLayer pushesLowSome dataLayer pushes are very large, which slows the page and can be cut off by tags.-

Server-side tagging

CodeCheckSeverityWhat it meansFix
SGTM_DETECTEDServer-side tagging is in useInfoSome tags send data through a server-side tag manager container.-
SGTM_NOT_FIRST_PARTYThe server container is not on your domainLowYour server-side container runs on a domain that is not a subdomain of your website, so it loses most of its benefit.-
SGTM_ERRORSThe server container returns errorsHighRequests to your server-side container failed or returned errors, so the tags behind it get no data.-
SGTM_SLOWThe server container is slowLowYour server-side container takes a long time to answer.-
SGTM_MJA_TAG_MISSINGThe server container does not send to My Journey AnalyticsMediumYour server-side container has no My Journey Analytics tag, so events that go through it do not reach this project. Needs a Google Tag Manager connection.Hive Setup
SGTM_NONENo server-side taggingInfoAll tags send data straight from the browser. Server-side tagging can improve data quality and page speed.Open the setting

Tag manager container

CodeCheckSeverityWhat it meansFix
GTM_UNPUBLISHED_CHANGESUnpublished changes in the containerMediumYour tag manager container has changes that are not published, so the live site does not have them yet. Needs a Google Tag Manager connection.-
GTM_PAUSED_TAGSPaused tags in the containerLowSome tags in your container are paused and never fire. Needs a Google Tag Manager connection.-
GTM_TAG_NO_TRIGGERTags with no triggerLowSome tags in your container have no firing trigger, so they never fire. Needs a Google Tag Manager connection.-
GTM_HTML_GTAG_DUPLICATEA Google tag is installed twice in the containerMediumA Custom HTML tag loads gtag.js for an ID that a Google tag in the same container already loads. Needs a Google Tag Manager connection.-
GTM_ES6_IN_HTMLCustom HTML that may fail to publishLowSome Custom HTML tags use modern JavaScript that the tag manager can reject when you publish. Needs a Google Tag Manager connection.-
GTM_WORKSPACE_LIMITNo free workspace in the containerLowThe container has no free workspace, so Hive Setup used the Default Workspace. Needs a Google Tag Manager connection.-

Crawl

CodeCheckSeverityWhat it meansFix
CRAWL_ROBOTS_DISALLOWEDPages skipped because of robots.txtInfoYour robots.txt asks crawlers not to visit these pages, so we skipped them.-
CRAWL_PAGE_FAILEDPages that did not loadInfoThese pages did not load in time or returned an error, so we could not check them.-
CRAWL_BOT_BLOCKEDThe site blocked the checkInfoThe site or its firewall refused our visit or showed a challenge page. Allow our checker to get complete results.-
CRAWL_NO_SITEMAPNo sitemap foundInfoWe did not find a sitemap, so we checked the home page and the pages it links to.-

Can't find what you need? Contact support