PromoCodeWatch: Inside a Blackhat Coupon Affiliate Site
Full disclosure: we're in litigation against PromoCodeWatch and their founders, Mark Mazza and Patrick Williams (full complaint here). They are former employees of ZipfWorks.
Our company alleges that these two individuals left our company, took with them confidential information with them about how we built, operated, and marketed our website to create what we call a "shell" clone of our website within 2 weeks of their departure from our company.
We call their website a "shell" copy of ours, because it only resembles our website on a superficial level, in that it mimics the site structure, page structure, and concept of our site.
A major portion of the difficulty and resource allocation involved in running an online coupon business lies in creating, editorializing and maintaining content. In our industry this means adding, editing, and updating tens of thousands of coupons and coupon codes every day.
In our case, we utilize crowdsourcing whereby nearly 200,000 community members edit and update our deals to ensure accuracy, and we employ a staff of 40 full-time team members to moderate and manage this community. In other cases, companies like RetailMeNot and Coupons.com employs hundreds of employees to maintain high editorial standards. Contrast this with Promocodewatch.com, which has just 3 employees.
The online coupons industry faces a problem in it is that it is relatively easy for any company to setup a site that visually resembles RetailMeNot.com, Coupons.com or our site, but then populate that site with fake coupons and coupon codes. Then, given the importance of search engines as a source of traffic for coupon sites (as this is how most people search for them), these "shell" site operators can invest in schemes to boost and manipulate their search engine rankings and derive profits, because the search engines have yet to develop a way determine that these shell sites don't actually have real coupons.
In fact, displaying a large number of fake coupon codes can actually have the effect of boosting a site's rankings on search engines like Google, because if visitors are clicking to view and trying out numerous coupon codes, in a search engine's eyes, this may indicate that there is something of interest on this site (a concept known as dwell time).
This is a challenging issue to address in the coupons industry, and is among the driving reasons why, for consumers, so many coupon codes online seem to be expired or simply don't work. Currently, there is no solution for this - Google and other search engines have not figured out a way to differentiate a good coupon site from a fake coupon site.
However, in this case, we can expose the inner workings of at least one such "shell" coupon site. We're familiar with the creators of PromoCodeWatch.com (they are our former employees) and we've obtained evidence of their intentions to create a fraudulent "blackhat" coupon site after leaving our company. They discussed this matter extensively with each other while employed with us on our internal chat systems, and during the course of our litigation, we've recovered these chats as evidence. The founders, Mark Mazza and Patrick Williams, discussed leaving ZipfWorks to "throw morals and Google's judging eye out the window" and setup their own "blackhat" version of our coupon website.
We further conducted a detailed analysis of their website, promocodewatch.com, over an extended period of time and documented with hundreds of screenshots, how they posted primarily false and expired coupon codes and utilized sophisticated UI cloaking techniques to mislead their site visitors into thinking these were real coupons, verified by editors. In fact, 93% of the coupon codes we examined on Promocodewatch.com were invalid or expired. Contrast with a site like RetailMeNot, which in our latest study had only 24% of expired or invalid codes displayed, or our site at 22% expired / invalid.
Promocodewatch.com even displays promo codes for e-commerce stores that explicitly do not offer promo codes as a matter of store policy, such as 23andme (see screenshots). Not only did Promocodewatch.com display codes for these stores, they featured them prominently with their signature "verified" green checkmark label, and continuously changed their expiration dates each night with an automated script. These techniques appear to be an intentional effort by PromoCodeWatch to deceive their own users and search engines into thinking their website contained superior content than mainstream coupon websites like RetailMeNot (which correctly displayed no coupon codes for 23andme).
This article serves to document the details of how Mark Mazza and Patrick Williams operate their website PromoCodeWatch.com. You can read more details about our litigation and full set of chat records here and read a copy of our formal complaint filed in the state of California here.
Our original analysis was conducted in early 2017. Based on our updated analysis in 2018, we've captured evidence that PromoCodeWatch continues to display fake and invalid promo codes on a systematic basis.
Table of contents:
- How PromoCodeWatch uses false expiration dates to mislead users
- How PromoCodeWatch posts "verified" codes for retailers that do not offer promo codes
- How PromoCodeWatch uses deceptive visual cues such as the green checkmark "verified" label
- How PromoCodeWatch posts and promotes non-working coupon codes
- How PromoCodeWatch posts very old coupon codes and disguises them as real
- How PromoCodeWatch is able to increase its search rankings in Google by posting fake coupons
- Mark Mazza and Patrick Williams internal chat messages in which they conspire to create a blackhat website
- How PromoCodeWatch makes false claims on its "About" page to further mislead users
- Appendix 1: Study methodology and key findings
- Appendix 2: summary of coupon codes displayed by PromoCodeWatch.com
- Appendix 3: Screenshots documenting programmatically updated false expiration dates on PromoCodeWatch.com
- Appendix 4: Detailed backup for entire coupon code test of PromoCodeWatch
One of the important pieces of information that a coupon site provides about each coupon they list is that coupon's expiration date. At Dealspotr we spend enormous effort getting these dates correct, so that shoppers will know how much time they have to use a particular coupon before it expires.
We tracked PromoCodeWatch in detail from December 2016 to February 2017, and we observed a highly unusual pattern on their website. Each night, PromoCodeWatch appeared to systematically update the expiration dates of a large percentage of its coupons across its entire site, with seemingly no regard to whether such dates were actually accurate. In particular, PromoCodeWatch auto-generates random expiration dates for coupons that are fake, invalid, or expired.
Here's just one example of what we observed as a general pattern across PromoCodeWatch's entire website, for IT Cosmetics:
We tracked 31 store pages on PromoCodeWatch in detail over a two month period, and we observed this technique being used on 28 of them. Here's just one more example this time for Fabletics:
In over a hundred instances in our test alone, we observed PromoCodeWatch using this technique on its coupon codes, even on codes that were invalid and those that had obviously been expired for a long time. For example, PromoCodeWatch listed for Bass Pro Shops the code "HUNT2015" which had obviously expired in 2015. Over the three dates we checked that coupon code, PromoCodeWatch continued to display this code with a green "verified" label, and its date was altered three times, pushed back each time by a few days. This made the code appear to be valid, encouraging visitors to click on it, and ensured the coupon never appeared to expire. You can see screenshots further down this article.
This appears to be a proactive scheme intended to make what amounts to thousands of invalid coupon codes appear to be continuously valid.
Update on May 9, 2018: We've completed an updated analysis of the fake coupon codes displayed by PromoCodeWatch which shows that they are continuing to display fake and expired codes across their site. In our latest study, we observed them actually increasing the levels at which they display promo codes for brands that do not offer promo codes. See the updated study here.
PromoCodeWatch's intent to mislead users became even more clear to us when we observed that they posted promo codes for 23andMe, a retailer that explicitly does not offer promo codes as a matter of store policy. We emailed 23andMe to reconfirm this fact, which they did:
Not only does PromoCodeWatch.com display 3 promo codes for 23andMe, they display them as "verified" at the top of their page, and they continuously alter the expiration dates of these promo codes so that they never expire.
Here's PromoCodeWatch's page for 23andMe taken on Jan 21, 2017:
Here's the same page a few days later on Jan 29, 2017. All 3 fake codes are still there (re-ordered, but they are the same codes) - see how all the expiration dates have been altered:
And again a few days later on Feb 3, 2017, see how the expiration dates for these 3 fake codes have been altered once again:
This appears to us to be an explicit a practice designed to deceive shoppers into clicking on these codes and boosting PromoCodeWatch revenues.
PromoCodeWatch.com also exploits consumers' familiarity with and trust in larger, more reputable coupon sites such as RetailMeNot. Not only does PromoCodeWatch emulate RetailMeNot's overall look and feel, the site copies RetailMeNot's well-known green "verified" checkmark. RetailMeNot posts this label next to any coupon that its staff has internally tested and verified. RetailMeNot invests heavily in actually verifying its codes, so this checkmark has meaning to many shoppers who have found working coupons on RetailMeNot.
PromoCodeWatch also utilizes this green checkmark, but they include it with all of their deals, even fake and obviously expired ones. These labels, when combined with PromoCodeWatch's auto-generated expiration dates, combine to create a compelling illusion of a trustworthy, established coupon site that currently hosts a million shoppers each month.
Like RetailMeNot, PromoCodeWatch also displays a percentage value indicating the success rate users are experiencing with that coupon. There are a few important differences, however:
- PromoCodeWatch displays this percentage on only a small number of its promo codes, with no clear indication of why it is not displayed in most cases
- PromoCodeWatch does not move low percentage deals to an "unpopular" or "unlikely to work" section towards the bottom of their pages as RetailMeNot does. PromoCodeWatch keeps low percentage deals at the very top of the pages, keeping the green verified label on, and consistently updating their expiration dates so that they never expire.
In the above example, PromoCodeWatch left these two codes at the top of this page over a period of weeks, with very low success rates. They even altered the expiration dates every few days.
We saw that PromoCodeWatch listed three promo codes for MyFonts.com: besotted, TWITTER, and THEOPIUM. MyFonts rarely offers discount codes, so we looked into this.
We checked with a representative to see if they recognized these codes; perhaps they were real codes that had recently expired. Here's what the MyFonts rep said:
Further evidence that PromoCodeWatch simply posts fake or extremely old promo codes and masks them as real, even going so far as to update their expiration dates each night.
Fake coupons designed to look real can also artificially boost PromoCodeWatch's ranking in search engines. This is because search engines like Google give higher rankings to pages with the following characteristics:
- Google rewards pages that are full of content. Conversely, Google devalues pages that have little to no content (referred to as "thin content pages").
- Google rewards pages with content that appears to be updated frequently (referred to as "content freshness)".
- Google measures whether searchers click on links and spend significant time browsing a page they arrived on from a search query. Therefore, pages that encourage people to click and spend more time exploring are rewarded with higher rankings (referred to as "dwell time"). Conversely, Google punishes pages for which users quickly hit the back button to return to the search results (referred to as "bounce rate"). Websites are motivated to have a low bounce rate across its pages in order to boost their search rankings.
PromoCodeWatch, with its small staff, would struggle to keep its tens of thousands of store pages updated with real, working, tested coupon codes. So, rather than suffer the poor search engine rankings that would result from displaying empty ("thin") coupon pages (and resulting high bounce rate), PromoCodeWatch appears to be resorting to posting fake coupon codes, claiming that the codes have been “verified” and updating their fake expiration dates frequently to create the false impression that the codes are current and regularly verified.
Updating fake coupon codes with constantly altered expiration dates can improperly benefit a website in two ways. First, this can trick search engines into believing that their pages contain a high number of valid coupon codes that are constantly updated, since their expiration dates are specific and updated frequently. Second, these specific expiration dates (along with the green verified label) can trick users into thinking that these codes are real, and encourage more users to click on them. Since users frequently click on PromoCodeWatch's coupons and spend more time trying out their coupon codes (even if they are fake), search engines may reward them with higher search rankings.
At this time, Google does not have the ability to know whether coupon codes posted on websites are real or fake, so the strategy of posting fake codes and masking them as real is likely effective.
Internal chat records show the founders of PromoCodeWatch conspiring to leave ZipfWorks to create a "blackhat" version of our coupon website
To illustrate their intent, we're publishing a sampling of the conversations Mark and Patrick conducted on our company chat systems in which they discuss creating a fraudulent business together after leaving our company.
A couple weeks later, they discuss "throwing morals and Google's judging eye out the window" after their employment with us:
In chats, Mark Mazza has demonstrated his familiarity with the notion that continuing to display coupon codes after their expiration date can result in clicks (and revenues), even expressing sarcastic disdain towards our internal policy of actively removing such expired codes.
Beyond planning to launch a fraudulent website, we further allege that Mark Mazza and Patrick Williams stole confidential contact lists from our company to accelerate their online marketing efforts. We further allege that they proactively cloned a large percentage of the backlinks (a search engine marketing concept) of dealspotr.com with the knowledge that this would have the effect of redirecting traffic from our website to theirs. This allegation forms part of the basis of our monetary damages claims against PromoCodeCode, LLC.
On their About Us page, PromoCodeWatch claims that their mission is "to provide the most accurate, up-to-date database of promo codes online." They claim to do this by "leveraging cutting edge technology which tracks promotions in real-time."
While this is a laudable mission statement, one might find irony in the fact that PromoCodeWatch is doing the exact opposite; they are utilizing their site technology to intentionally deceive shoppers into thinking that outdated and fake promo codes are valid and accurate.
We know from our own experience that keeping an accurate and up-to-date database of coupon codes for thousands of stores is a challenging and expensive endeavor. On Dealspotr, we utilize a sophisticated system involving crowdsourcing, gamification, and rewards, along with a community of nearly 200,000 deal posters, to accomplish this goal. Other companies like RetailMeNot have large internal staffs to keep their coupons updated.
PromoCodeWatch has just 3 employees. They do not provide any details into how their technology enables them to achieve their lofty goal of providing "the most accurate, up-to-date database of promo codes online." And, when hand-tested, 93% of the coupon codes they displayed did not work. They were old, expired, or even outright fake coupon codes.
Over a span of approximately six weeks, from December 2016 to February 2017, we monitored 31 pages on PromoCodeWatch. Each page was advertised by PromoCodeWatch as offering promotional codes for an individual US-based retailer.
How we selected the 31 stores for inclusion in our study:
- PromoCodeWatch publishes a page for the retailer, and offered at least one "verified" and non-expired coupon code for that retailer during the time of the test
- The retailer is well-known and there is significant consumer demand for coupons for the retailer. We set a floor of 5,000 monthly searches on Google for coupons, deals, or promotional codes for the store, according to data from SEMRush.com.
- PromoCodeWatch's page for the retailer was prominently visible on search engines and was indexed and ranked within the first 3 pages on Google.com during the time of the test
How we tested the promo codes for each store:
- For each retailer, we visited their corresponding page on PromoCodeWatch.com to obtain the current list of promotional codes for that store.
- We included in our test any code that was listed with a "verified" indicator, and which had an expiration date listed in the future (indicating that the code was not yet expired).
- For each code, we populated our shopping cart according to the requirements listed on PromoCodeWatch's site, and then applied the code during checkout. We made our best effort to account for any rules or exclusions listed on PromoCodeWatch's website.
- Of 126 coupon codes tested from PromoCodeWatch.com across 31 retailers, only 9 provided a valid, working discount (a 93% failure rate). 117 of the codes tested returned a failure message from the merchant for being expired, invalid, or not applicable according to the directions provided on PromoCodeWatch.com.
- All 126 coupon codes tested on PromoCodeWatch.com were presented to users as current, working coupons, each marked with a "verified" checkmark label, and each with a specific expiration date listed in the future (indicating that it was not yet expired)
- Most concerning, however, we observed a pattern whereby PromoCodeWatch systematically updates the expiration dates for promo codes across its database. Each day, they alter the expiration dates of what appears to be thousands of expired or invalid codes, pushing them back such that they never expire. They continue to feature these codes at the top of their pages as "verified" codes with specific expiration dates in the future.
Overall, we found only 9 of the 126 coupon codes we tested to provide valid discounts, which equates to a 7% success rate. 117 of the codes we tested returned an error from the merchant website, indicating they were expired or invalid.
Below are tables summarizing the high level results of the accuracy test across all 31 retailers. The complete backup data including screenshots is available in the last section of this article under "Detailed backup for entire coupon code test of PromoCodeWatch."
|Edible Arrangements||Data captured on 1/21/17|
|Coupon codes listed for ediblearrangements.com on PromoCodeWatch||Result|
|UNIQLO||Data captured on 1/23/17|
|Coupon codes listed for uniqlo.com on PromoCodeWatch||Result|
|Bass Pro Shops||Data captured on 1/29/17|
|Coupon codes listed for bassproshops.com on PromoCodeWatch||Result|
|Blue Nile||Data captured on 1/29/17|
|Coupon codes listed for bluenile.com on PromoCodeWatch||Result|
|Lane Bryant||Data captured on 1/29/17|
|Coupon codes listed for lanebryant.com on PromoCodeWatch||Result|
|Tractor Supply Company||Data captured on 1/29/17|
|Coupon codes listed for tractorsupply.com on PromoCodeWatch||Result|
|Party City||Data captured on 1/27/17|
|Coupon codes listed for partycity.com on PromoCodeWatch||Result|
|TJ Maxx||Data captured on 1/27/17|
|Coupon codes listed for tjmaxx.tj.com on PromoCodeWatch||Result|
|Missguided||Data captured on 1/27/17|
|Coupon codes listed for missguided.com on PromoCodeWatch||Result|
|Fabletics||Data captured on 1/27/17|
|Coupon codes listed for fabletics.com on PromoCodeWatch||Result|
|Justice||Data captured on 1/21/17|
|Coupon codes listed for justice.com on PromoCodeWatch||Result|
|DoorDash||Data captured on 12/27/16|
|Coupon codes listed for doordash.com on PromoCodeWatch||Result|
|Tatcha||Data captured on 1/21/17|
|Coupon codes listed for tatcha.com on PromoCodeWatch||Result|
|23andMe||Data captured on 1/21/17|
|Coupon codes listed for 23andme.com on PromoCodeWatch||Result|
|99only||Store does not offer promo codes|
|EPFXY8||Store does not offer promo codes|
|GFPCX9||Store does not offer promo codes|
|IT Cosmetics||Data captured on 12/27/16|
|Coupon codes listed for itcosmetics.com on PromoCodeWatch||Result|
|Hollar||Data captured on 12/27/16|
|Coupon codes listed for hollar.com on PromoCodeWatch||Result|
|Tilly's||Data captured on 12/27/16|
|Coupon codes listed for tillys.com on PromoCodeWatch||Result|
|Qatar Airways||Data captured on 1/27/17|
|Coupon codes listed for qatarairways.com on PromoCodeWatch||Result|
|Albee Baby||Data captured on 1/27/17|
|Coupon codes listed for albeebaby.com on PromoCodeWatch||Result|
|Forever 21||Data captured on 1/27/17|
|Coupon codes listed for forever21.com on PromoCodeWatch||Result|
|AbeBooks||Data captured on 2/2/17|
|Coupon codes listed for abebooks.com on PromoCodeWatch||Result|
|Adorama||Data captured on 2/2/17|
|Coupon codes listed for adorama.com on PromoCodeWatch||Result|
|Audible.com||Data captured on 2/2/17|
|Coupon codes listed for audible.com on PromoCodeWatch||Result|
|Big Lots||Data captured on 2/2/17|
|Coupon codes listed for biglots.com on PromoCodeWatch||Result|
|Fandango||Data captured on 2/2/17|
|Coupon codes listed for fandango.com on PromoCodeWatch||Result|
|Harley Davidson||Data captured on 2/2/17|
|Coupon codes listed for harleydavidson.com on PromoCodeWatch||Result|
|Modells||Data captured on 2/2/17|
|Coupon codes listed for modells.com on PromoCodeWatch||Result|
|MyFonts||Data captured on 2/2/17|
|Coupon codes listed for myfonts.com on PromoCodeWatch||Result|
|Nyx Cosmetics||Data captured on 2/2/17|
|Coupon codes listed for nyxcosmetics.com on PromoCodeWatch||Result|
|Tackle Direct||Data captured on 2/2/17|
|Coupon codes listed for tackledirect.com on PromoCodeWatch||Result|
|Tempurpedic||Data captured on 2/2/17|
|Coupon codes listed for tempurpedic.com on PromoCodeWatch||Result|
During December 2016 through February 2017, we observed a phenomenon on PromoCodeWatch.com in which expiration dates for invalid and already expired coupon codes were adjusted en masse across the site on a daily basis. We observed this across 28 of the 31 merchants we examined.
IT Cosmetics: false codes with auto-generated expiration dates
Below is a screenshot of PromoCodeWatch's page for IT Cosmetics taken on Dec 27, 2016. On this day, they display code INSIDE as verified with an expiration date of Jan 26, 2017. When tested on this day, the code did not work.
Below is a screenshot of PromoCodeWatch's page for IT Cosmetics taken on Jan 27, 2017 (one month later). On this day, they continue to display code INSIDE as verified, but now with an expiration date changed to Feb 26, 2017. When tested on this day, the code still did not work.
Below is a screenshot of PromoCodeWatch's page for IT Cosmetics taken on Jan 31, 2017. The code INSIDE is still displayed as verified, and the expiration date has again been adjusted to Mar 2, 2017.
Forever 21: false codes with auto-generated expiration dates
On Jan 21, 2017, we took this screenshot of PromoCodeWatch's page for Forever 21. When we tested the displayed codes, SPRING30 and DENIMDAYS, both of these codes were invalid. They were both listed as "verified" and with expiration dates of Feb 26, 2017.
Here is the same page on PromoCodeWatch.com, one week later, on Jan 29, 2017. They continue to display the same invalid codes SPRING30 and DENIMDAYS, but this time the expiration dates for both were changed to Mar 1, 2017.
We checked this page again a couple days later, on Jan 31, 2017. On this day, again the same two invalid codes SPRING30 and DENIMDAYS were displayed, and again their expiration dates were pushed back, this time to Mar 2, 2017.
Checked again on Feb 3, 2017 PromoCodeWatch continued to display the same invalid codes for Forever 21, and again they had systematically pushed back the expiration dates for all codes to Mar 5, 2017.
UNIQLO: false codes with auto-generated expiration dates
On Jan 23, 2017, we took this screenshot of PromoCodeWatch.com's page for UNIQLO coupon codes. On this date, they displayed codes Spring2016, 42500, INES2016, and KawsFebVwX2J33w as "verified" and with expiration dates of Feb 23, 2017. When tested, all four of these codes were invalid.
On Jan 29, 2017, we checked this page again. Again, the codes Spring2016, 42500, INES2016, and KawsFebVwX2J33w were listed as "verified" but this time, their expiration dates were pushed back to Mar 1, 2017. Again, they did not work when tested.
On Jan 31, 2017, this same page continued to list the same four promo codes for UNIQLO. Again, they did not work, and this time their expiration dates were pushed back by an additional day, to Mar 2, 2017.
On Feb 3, 2017 PromoCodeWatch continued to display these four invalid codes as "verified" and again they had altered their expiration dates, this time to Mar 5, 2017.
Missguided: false codes with auto-generated expiration dates
On Jan 21, 2017, we tested PromoCodeWatch.com's page for Missguided coupon codes. On this date, they showed the codes litaf, 20SPENDUS, heycoats, vote30, trend40; all five of these codes did not work. On this day, PromoCodeWatch listed all five codes with an expiration date of Feb 26, 2017.
We tested this page again on Jan 29, 2017. PromoCodeWatch continued to display the codes litaf, 20SPENDUS, heycoats, vote30, trend40; these codes continue to return errors, however their expiration dates were all simultaneously updated to Mar 1, 2017.
When checked a couple days later on Jan 31, 2017, PromoCodeWatch's page for Missguided promo codes continued to display the same five non-working codes, and again their expiration dates were simultaneously updated to Mar 2, 2017.
For good measure, we checked this page a fourth time on Feb 3, 2017 and again we saw the same five invalid codes continued to be featured at the top of the page, with green verified marks, and again with new expiration dates of Mar 5, 2017.
Justice: false codes with auto-generated expiration dates
We tested PromoCodeWatch's page for Justice.com promo codes on Jan 21, 2017. On this day, they showed the codes 222144277 and 67566612. Both of these codes did not work when tested. Both codes were displayed as "verified" and with expiration dates of Feb 20, 2017.
A few days later, on Jan 27, 2017, we tested the same page, and found the same two codes 222144277 and 67566612. However, on this date, their expiration dates were changed to Feb 26, 2017.
On Jan 31, 2017, we found the same two codes continuing to show on PromoCodeWatch as "verified." However, again their expiration dates were changed to Mar 1, 2017.
23andMe: false codes with auto-generated expiration dates
On Jan 21, 2017, we tested PromoCodeWatch's page for 23andMe coupons. On this day, they showed the coupon codes 99only, EPFXY8, and GFPCX9. During our test, we were unable to find a coupon code input field on the 23andMe website, so we checked with a company representative from 23andMe, and we confirmed that 23andMe does not offer promotional codes at all. So these codes are in fact fake codes. On this day, these false codes were listed with expiration dates of Feb 20, 2017.
On Jan 29, 2017, we checked this page again, and again, we found the false codes 99only, EPFXY8, and GFPCX9 continued to be displayed as "verified" codes by PromoCodeWatch.com. This time, their expiration dates were adjusted to Mar 1, 2017.
On Feb 3, 2017, PromoCodeWatch continue to display these 3 fake coupon codes, and again had pushed back their expiration dates, this time to Mar 5, 2017.
Albee Baby: false codes with auto-generated expiration dates
On Jan 21, 2017, we took this screenshot of PromoCodeWatch's page for Albee Baby coupons. They showed the promo codes 15OFF, LABOR, and DAD.