{"id":13993,"date":"2023-09-27T14:40:18","date_gmt":"2023-09-27T14:40:18","guid":{"rendered":"http:\/\/scannn.com\/here-comes-the-ad-fraud-advertisers-kiss-ad-budgets-goodbye\/"},"modified":"2023-09-27T14:40:18","modified_gmt":"2023-09-27T14:40:18","slug":"here-comes-the-ad-fraud-advertisers-kiss-ad-budgets-goodbye","status":"publish","type":"post","link":"https:\/\/scannn.com\/lv\/here-comes-the-ad-fraud-advertisers-kiss-ad-budgets-goodbye\/","title":{"rendered":"Here Comes the Ad Fraud\u2014Advertisers Kiss Ad Budgets Goodbye"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"hs_cos_wrapper_post_body\">\n<p>For advertisers who said \u201cI do\u201d to The Knot, the honeymoon is over. It turns out the wedding planning site made promises it couldn\u2019t keep, entering into local and national advertising contracts with jewelers, photographers, bridal fashion brands, and others looking to sell their wedding-related products and services. The problem? Many of those ads didn\u2019t run. Advertisers knew they weren\u2019t seeing the results they expected; employees at The Knot knew it, too.<\/p>\n<p><!--more--><\/p>\n<p>The problems aren\u2019t new; in fact, they go back as far as 2016. But, they\u2019re just coming to light now as former employees speak out and as The Knot Worldwide (TKWW) pursued an IPO (initial public offering).<\/p>\n<p>Let\u2019s walk down the aisle and look at what happened, why it happened, the relationship red flags, and why advertisers still have cold feet.<\/p>\n<h2>Did a Promising Courtship Lead to a Marriage Under False Pretenses?<\/h2>\n<p>Where do we begin? Ad fraud is at the heart of the story, and since that is our specialty and there\u2019s plenty of it here to discuss, we\u2019ll stick to that. But first, a short \u201chow they met\u201d story.<\/p>\n<p>The Knot was ahead of its time, establishing an online platform in 1996 to help couples plan their dream wedding and find resources to make those dreams come true. Over the years, the company grew, buying competitors and \u201clife milestone\u201d companies.<\/p>\n<h3>A Brief Timeline<\/h3>\n<p>In 2000, the company went public after raising $35 million in an IPO a year earlier. Eleven years later, the parent XO Group was formed.<\/p>\n<p>Soon after XO Group was acquired by two private equity firms for $1 billion in 2018, they merged with WeddingWire to form TKWW.<\/p>\n<p>For a company to sell for $1 billion, it has to have generated significant revenue. Much of XO Group\u2019s reported revenue came from local and national advertisers. And that\u2019s where this love story gets very interesting and complicated.\u00a0<\/p>\n<h3>The Bloom Is Off the Advertising Rose<\/h3>\n<p>Whistleblowers have relayed a thorough account of XO Group\u2019s reported romance scam. In brief, thousands of national and local advertisers locked into contracts, agreeing to pay for a certain number of ads on relevant pages of the website in exchange for quality leads for their wedding-related business. Some national retailers agreed to pay millions of dollars for premium ad space.<br \/>According to former employees, The Knot and XO Group did not live up to their own rules of engagement.<\/p>\n<h4>There were several issues with the site\u2019s advertising, including:<\/h4>\n<h5 style=\"font-weight: normal;\">Ad inventory issues<\/h5>\n<p>With thousands of advertisers wanting a piece of the wedding industry \u201ccake\u201d worth $70 billion, The Knot simply did not have enough ad inventory (space) on the website to fulfill the terms of their original contracts. This meant some ads were placed on irrelevant pages where the targeted audiences wouldn\u2019t see them; worse, other ads likely weren\u2019t placed anywhere on the site. Other contributing factors, such as website functionality and stability issues, added to their woes, with ads disappearing from the site.<\/p>\n<h5 style=\"font-weight: normal;\">Terms of endearment<\/h5>\n<p>When The Knot realized they had oversold and ads weren\u2019t running per the original contract, their \u201csolution\u201d was to change the terms of the contract without letting the advertisers know. The Knot states that initial 12-month contracts auto-renew on a month-to-month basis, but advertisers found it almost impossible to cancel, even during the pandemic when few weddings were taking place. To top it off, ad fees increased as much as 30%.<\/p>\n<h5 style=\"font-weight: normal;\">Low-quality leads<\/h5>\n<p>One industry expert told Forbes that as many as 60% of the advertisers on The Knot do not get quality leads. Vendors didn\u2019t need an expert to tell them that; the results, or lack thereof, spoke for themselves. The site functionality issues meant visitors were spending less time on the site; fewer visitors meant fewer leads, and many of the leads advertisers were getting were fraudulent. \u00a0<\/p>\n<h3>Jilted at the Advertising Altar<\/h3>\n<p>A wedding planning site and advertisers targeting engaged couples should be a match made in advertising heaven, but even the best of relationships benefit from counseling. While an ad fraud solution alone may not have been able to save them, it would have helped advertisers recognize the red flags.<\/p>\n<h4>Advertising Red Flags<\/h4>\n<h5 style=\"font-weight: normal;\">Low impressions<\/h5>\n<p>Obviously, if your ads aren\u2019t even running on the site you\u2019ve contracted with or are not placed where your target audience will see them, you won\u2019t get the impressions that you\u2019re paying for and need to drive leads. Low-impression rates can also be a result of ad stacking or pixel stuffing.<\/p>\n<h5 style=\"font-weight: normal;\">Lead quality issues<\/h5>\n<p>Getting poor-quality leads can be worse than getting no leads at all. Not only have you wasted your ad dollars, but you\u2019ll also waste time following up on leads that aren\u2019t a good fit for your business. And that\u2019s assuming the lead is an actual human who had a genuine interest in your product or service but maybe not the budget or isn\u2019t in your geographic region. If the lead information is real but comes from a bot or a human fraud farm, you can unwittingly commit a TCPA violation, which can lead to a lawsuit and steep fines.<\/p>\n<h2>An Ad Fraud Solution can help<\/h2>\n<p>An ad fraud detection solution can help advertisers\u2014and website owners\u2014identify these issues.<\/p>\n<h3>If you\u2019re getting impressions but few or no leads<\/h3>\n<p>Your ad fraud partner can look into the campaign data to determine if the low impressions resulted from ad stacking or pixel stuffing.<\/p>\n<p>If you aren\u2019t getting the impressions you were promised by the publisher, there may be other issues at play. In that case, it\u2019s time to take your data to the publisher; there may be site issues they are not aware of, or your ad may have fallen through the cracks.<\/p>\n<h3>Ad Fraud Detection Creates Transparency in Partnerships<\/h3>\n<p>The right ad fraud partner can identify and stop fraudulent site traffic before you walk down the aisle. This partnership ensures the leads you\u2019re getting from a specific site are legitimate. Your ad fraud partner can also find out where your best leads are coming from so you can re-direct your ad dollars to those channels that do generate good leads.<\/p>\n<h3>Know Your Contract<\/h3>\n<p>While an ad fraud partner can provide evidence your ads aren\u2019t performing as expected, it can\u2019t get you out of a contract. In that case, you may need an attorney. Always keep your original contract on file so it can be compared with the most recent one that the publisher has to ensure it hasn\u2019t been altered.<\/p>\n<h2>Detecting Ad Fraud is in Everyone&#8217;s Best Interest<\/h2>\n<p>It\u2019s in the best interests of advertisers and publishers to detect and resolve poor results, whether the ads aren\u2019t performing as expected or the leads generated aren\u2019t resulting in sales. However, publishers are under pressure to generate revenue, especially when they are looking to go public or meet shareholder expectations.<\/p>\n<p>Sometimes a partnership can look great on paper, but it pays to listen to that little voice in your head giving you cold feet. Just as you might do a little snooping to ease your worries about a potential life partner, it\u2019s worth looking into your campaign performance and your ad partners\u2019 backgrounds to make sure you\u2019re getting what you deserve.<\/p>\n<h3>Don&#8217;t Just Trust Us, Trust the Data<\/h3>\n<p>If your campaign performances aren\u2019t ringing true, Anura\u2019s 15-day free trial can help you identify any issues so you can take steps to improve your results. And even if things are clicking right along, a little reassurance never hurts. There may be underlying issues you aren\u2019t aware of that can be addressed and make a good thing even better.<\/p>\n<p><!--HubSpot Call-to-Action Code --><span class=\"hs-cta-wrapper\" id=\"hs-cta-wrapper-cc9206a4-9513-42fc-a67f-32b9bd0aefb9\"><span class=\"hs-cta-node hs-cta-cc9206a4-9513-42fc-a67f-32b9bd0aefb9\" id=\"hs-cta-cc9206a4-9513-42fc-a67f-32b9bd0aefb9\"><!--[if lte IE 8]>\n\n<div id=\"hs-cta-ie-element\"><\/div>\n\n<![endif]--><img fetchpriority=\"high\" decoding=\"async\" class=\"hs-cta-img\" id=\"hs-cta-img-cc9206a4-9513-42fc-a67f-32b9bd0aefb9\" style=\"border-width:0px;\" height=\"268\" width=\"850\" src=\"https:\/\/no-cache.hubspot.com\/cta\/default\/2215919\/cc9206a4-9513-42fc-a67f-32b9bd0aefb9.png\" alt=\"New call-to-action\"\/><\/span><\/span><!-- end HubSpot Call-to-Action Code --><\/p>\n<\/div>\n<p><script type=\"text\/javascript\">\n  console.log(\"header version: 2.3.4\")\n    function anuraRedirectFunction(response) {\n        var responseobj = JSON.parse(response);\n        var result_map = new Array(\"bad\", \"warn\", \"good\");\n        var frequency = result_map.indexOf(responseobj.result);\n        if (document.getElementsByClassName('hs-input').frequency != undefined) {\n            document.getElementsByClassName(\"hs-input\").frequency.value = frequency;\n        } else {\n            var interval = setInterval(function() {\n                if (document.getElementsByClassName('hs-input').frequency != undefined) {\n                    document.getElementsByClassName(\"hs-input\").frequency.value = frequency;\n                    clearInterval(interval);\n                }\n            }, 500);\n        }\n        var interval2 = setInterval(function() {\n            var hsformcount = document.getElementsByClassName('input');\n            for (var i = 0; i < hsformcount.length; ++i) {\n                if (responseobj.result == 'bad') {\n                    \/\/window.location = 'https:\/\/anura.io\/' \n                    document.getElementsByClassName(\"hs-form\")[0].action = '#';\n                    clearInterval(interval2);\n                }\n            }\n        }, 500);\n\n        if (responseobj.result == 'good' || responseobj.result == 'warn') {\n            (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n            j=d.createElement(s),dl=l!='dataLayer'?'&#038;l=\"+l:\"';j.async=true;j.src=\"https:\/\/www.googletagmanager.com\/gtm.js?id=\"+i+dl;f.parentNode.insertBefore(j,f);\n            })(window,document,'script','dataLayer','GTM-MN7KFXR');\n        } else {\n            gtag('config', 'AW-1071433205');\n            gtag('event', 'anura_exclusion', { 'send_to': 'AW-1071433205\/yMZvCMb8wecCEPWL8_4D' });\n            deployMeta();\n        }\n\n    }\n\n    function anuraCallbackFunction(response) {\n        \/\/ if the response ID or EXID is available\n        if (response.getId() || response.getExId()) {\n            \/\/ get the result from Anura servers...\n            getResult(response);\n        }\n    }\n\n    function $_GET(name, url) {\n        if (!url) url = window.location.href;\n        name = name.replace(\/[\\[\\]]\/g, '\\\\$&#038;');\n        var regex = new RegExp('[?&#038;]' + name + '(=([^&#038;#]*)|&#038;|#|$)'),\n            results = regex.exec(url);\n        if (!results) return null;\n        if (!results[2]) return '';\n        return decodeURIComponent(results[2].replace(\/\\+\/g, ' '));\n    }\n    \/\/ get the result from Anura servers using the response object\n    function getResult(response) {\n        var method = 'POST';\n      \tvar params = ['instance=3655985935'];\n      \tif(window.location.href.indexOf(\"blog\") > -1) {\n        \tparams = ['instance=278584646'];\n        }\n        if (response.getId()) params.push('id=' + encodeURIComponent(response.getId()));\n        if (response.getExId()) params.push('exid=' + encodeURIComponent(response.getExId()));\n        var url=\"https:\/\/script.anura.io\/result.json\" + ('GET' === method ? '?' + params.join('&') : '');\n        \/\/ internet explorer 8-9\n        if (window.XDomainRequest) {\n            var http = new XDomainRequest();\n            if (http) {\n                http.open(method, document.location.protocol === 'https:' ? url : url.replace('https:', 'http:'));\n                http.onload = function() {\n                    \/\/ continue with your custom result handler...\n                    anuraRedirectFunction(http.response);\n                };\n                setTimeout(function() { http.send('POST' === method ? params.join('&') : ''); }, 0);\n            }\n            \/\/ other browsers\n        } else if (window.XMLHttpRequest) {\n            var http = new XMLHttpRequest();\n            if (http && 'withCredentials' in http) {\n                http.open(method, url, true);\n                if ('POST' === method) http.setRequestHeader('Content-type', 'application\/x-www-form-urlencoded');\n                http.onload = function() {\n                    \/\/ continue with your custom result handler...\n                    anuraRedirectFunction(http.response);\n                }\n                http.send('POST' === method ? params.join('&') : '');\n            }\n        }\n    }\n    const queryString = window.location.search;\n  \tconst urlParamsA = new URLSearchParams(queryString);\n    if (navigator.userAgent.indexOf('UptimeRobot') > -1) {} \n  \telse if (navigator.userAgent.indexOf('AdsBot-Google') > -1) {\n            (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n            j=d.createElement(s),dl=l!='dataLayer'?'&l=\"+l:\"';j.async=true;j.src=\"https:\/\/www.googletagmanager.com\/gtm.js?id=\"+i+dl;f.parentNode.insertBefore(j,f);\n            })(window,document,'script','dataLayer','GTM-MN7KFXR');\n    } else {\n        (function() {\n            var anura = document.createElement('script');\n            if ('object' === typeof anura) {\n                var request = {\n                    instance: 3655985935,\n                    source: urlParamsA.get('utm_source'),\n                    campaign:urlParamsA.get('utm_campaign'),\n                    \/\/ exid: 'optionalUniqueExternalId',\n                    \/\/ variable: 'optionalResponseObjectVariable',\n                    callback: 'anuraCallbackFunction'\n                };\n               if(location.pathname.split('\/')[1] == \"blog\") {\n\t\t\t\t\tvar sources = [\"google\", \"instagram\", \"tiktok\", \"linkedin\", \"bing\", \"youtube\",\"youtube\", \"email\", \"organic\", \"\", \"twitter\"];\n                 \tvar campaigns = ['bots', 'ad fraud', 'click fraud', 'tcpa', 'lead gen', 'ecommerce', 'human fraud', 'improve roi'];\n                 \tif(navigator.userAgent.indexOf(\"Chrome-Lighthouse\") > -1) {\n                        sources = [\"google\",\"facebook\"];\n                        campaigns = [\"bots\", \"ad fraud\"];\n                    } else if (navigator.userAgent.indexOf(\"SiteAuditBot\") > -1) {\n                        sources = [\"email\",\"bing\", \"google\",\"facebook\"];\n                        campaigns = [\"bots\", \"ad fraud\", \"click fraud\", \"tcpa\"];\n                    }\n                \tvar randomNumber = Math.floor(Math.random()*sources.length);\n                    var randomCNumber = Math.floor(Math.random()*sources.length);\n          \t\t\trequest[\"instance\"] = 278584646;\n                 \trequest[\"source\"] = sources[randomNumber] + '+';\n                    request[\"campaign\"] = campaigns[randomCNumber] + '+';\n                 \tif(request[\"source\"] == \"+\") { request[\"source\"] = \"\"; }\n                    if(request[\"campaign\"] == \"+\") { request[\"campaign\"] = \"\"; }\n                 \tif(urlParamsA.get('utm_source')) { if(typeof urlParamsA.get('utm_source') !== 'undefined') { if(urlParamsA.get('utm_source').length > 1) { request[\"source\"] = urlParamsA.get('utm_source'); }}}\n                    if(urlParamsA.get('utm_campaign')) { if(typeof urlParamsA.get('utm_campaign') !== 'undefined') { if(urlParamsA.get('utm_campaign').length > 1) { request[\"campaign\"] = urlParamsA.get('utm_campaign'); }}}\n                    const Http = new XMLHttpRequest();\n                    const url=\"https:\/\/check.anura.io\/?utm_source=\"+encodeURIComponent(request[\"source\"])+\"&utm_campaign=\"+encodeURIComponent(request[\"campaign\"]);\n                    Http.open(\"GET\", url);\n                    Http.send();\n        \t\t}\n                if (document.getElementsByClassName(\"error-page\").length >= 1) {\n                    console.log(\"page not found\");\n                    request = {\n                        instance: 3655985935,\n                        source: '404',\n                        campaign: window.location.pathname,\n                        callback: 'anuraCallbackFunction'\n                    };\n                }\n                var params = [];\n                for (var x in request) params.push(x + '=' + encodeURIComponent(request[x]));\n                params.push(Math.floor(1E12 * Math.random() + 1));\n                anura.type=\"text\/javascript\";\n                anura.async = true;\n                anura.src=\"https:\/\/script.anura.io\/request.js?\" + params.join('&');\n                var script = document.getElementsByTagName('script')[0];\n                script.parentNode.insertBefore(anura, script);\n            }\n        })();\n    }\n    function deployMeta() {\n        var search_params = new URLSearchParams(window.location.search);\n        search_params.set('an_mtexaud', 'an_meta_exaud2223bbitdj50f4aj');\n        var rep_url = window.location.protocol + '\/\/' + window.location.host + window.location.pathname + '?' + search_params.toString();\n        window.history.pushState({ path: rep_url }, '', rep_url);\n        var s = document.getElementsByTagName('script')[0];\n        var ns = document.createElement('noscript');\n        ns.id = 'fb-ns';\n        s.parentNode.insertBefore(ns, s);\n        var px = document.createElement('img');\n        px.src=\"https:\/\/www.facebook.com\/tr?id=0&ev=PageView&noscript=1\"\n        ns.appendChild(px);\n        ! function(f, b, e, v, n, t, s) {\n            if (f.fbq) return;\n            n = f.fbq = function() {\n                n.callMethod ?\n                    n.callMethod.apply(n, arguments) : n.queue.push(arguments)\n            };\n            if (!f._fbq) f._fbq = n;\n            n.push = n;\n            n.loaded = !0;\n            n.version = '2.0';\n            n.queue = [];\n            t = b.createElement(e);\n            t.async = !0;\n            t.src = v;\n            s = b.getElementsByTagName(e)[0];\n            s.parentNode.insertBefore(t, s)\n        }(window, document, 'script', 'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n        let iids = ['216489429444860'];\n        for (x of iids) {\n            fbq('init', x);\n            fbq('track', 'PageView');\n            fbq('track', 'AnuraExclusionEvent');\n        }\n    }\n<\/script><script>(function(d, s, id) {\n  var js, fjs = d.getElementsByTagName(s)[0];\n  if (d.getElementById(id)) return;\n  js = d.createElement(s); js.id = id;\n  js.src = \"\/\/connect.facebook.net\/en_US\/all.js#xfbml=1&status=0\";\n  fjs.parentNode.insertBefore(js, fjs);\n}(document, 'script', 'facebook-jssdk'));<\/script><br \/>\n<br \/><br \/>\n<br \/><a href=\"https:\/\/www.anura.io\/blog\/here-comes-the-ad-fraud-advertisers-kiss-ad-budgets-goodbye\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For advertisers who said \u201cI do\u201d to The Knot, the honeymoon is over. It turns out the wedding planning site made promises it couldn\u2019t keep, entering into local and national advertising contracts with jewelers, photographers, bridal fashion brands, and others looking to sell their wedding-related products and services. The problem? Many of those ads didn\u2019t [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":13994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[128],"tags":[],"class_list":["post-13993","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-advertising"],"_links":{"self":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/13993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/comments?post=13993"}],"version-history":[{"count":0,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/13993\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media\/13994"}],"wp:attachment":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media?parent=13993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/categories?post=13993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/tags?post=13993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}