IP Library Granted Patent US 10,607,246
Granted Patent B2
US 10,607,246 · App. 15/592,807 · Granted Mar 31, 2020

Promotion code validation apparatus and method

Inventors: David Lemphers (Kirkland, WA); Christopher Couhault (Menlo Park, CA); Alexandros Suvacioglu (Menlo Park, CA)
Assignee: RetailMeNot, Inc.
G06Q30/0225G06F30/20G06N20/00G06Q30/02G06Q30/0207G06Q30/0222H04L67/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,607,246
App. No.
15/592,807
Granted
Mar 31, 2020
Kind
B2
Abstract

A method including interacting with a promotion code provider programmatically, providing a promotion code to a validation function of the promotion code provider, and evaluating a response from the promotion code provider. The act of interacting with a promotion code provider can include controlling an interface that simulates user actions, such as but not limited to controlling an in-memory web browser through an API, where the API provides a set of functions for simulating user actions. Accordingly, the method can be used to quickly and easily determine whether one or more promotion codes, such as online coupons, are valid.

Claims (68)

1. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

determining, with a computer, by a validation driver executing on the computer and configured to at least partially control a web browser also executing on the computer, how to submit coupon codes to a first merchant website by:

accessing a previously specified characterization of one or more paths through the first merchant website in response to the web browser navigating to the first merchant website;

detecting a checkout webpage of the first merchant website by, for each of a plurality of webpages of the first merchant website, determining whether the respective webpage is the checkout webpage based on the previously specified characterization of one or more paths through the first merchant website; and

identifying a first coupon-code submission interface of the first merchant website, wherein the first coupon-code submission interface comprises a text-box input of the checkout webpage and a submit button of the checkout webpage, and identifying the first coupon-code submission interface comprises, for each of a plurality of elements of a document object model of the checkout webpage, determining whether the respective element is a coupon-code input text box based on how close the respective element is to another element of the document object model,

wherein the validation driver at least partially controls the web browser via a first application program interface by which the validation driver causes the web browser to simulate user actions;

receiving, with the computer, by the validation driver, from executing software configured to assign different batches of coupon codes to different validation drivers, a first batch of coupon codes having a plurality of coupon codes corresponding to the first merchant website and to be tested by the validation driver;

after detecting the checkout webpage of the first merchant website, testing, with the computer, by the validation driver, whether each of at least a plurality of the received first batch of coupon codes is valid by submitting coupon codes via the first coupon-code submission interface and parsing and interpreting responses of the first merchant website to submissions of coupon codes;

storing, with the computer, first test results indicating which tested coupon codes among the first batch are valid;

determining, with the computer, by the validation driver executing on the computer, how to submit coupon codes to a second merchant website by identifying a second coupon-code submission interface of the second merchant website, wherein:

the second coupon-code submission interface is a second application program interface exposed by the second merchant, the second application program interface being different from the first application program interface, and

the second application program interface provides access to a coupon validation function; and

testing, with the computer, by the validation driver, whether each of at least a plurality of the received second batch of coupon codes is valid by submitting coupon codes via the second application program interface and parsing and interpreting responses of the second application program interface to submissions of coupon codes; and

storing, with the computer, second test results indicating which tested coupon codes among the second batch are valid, wherein:

the first merchant websites and the second application program interface use different terminology in responses to coupon code submissions to indicate whether coupon codes are valid.

2. The medium of claim 1 , wherein:

the different terminology is interpreted with steps for evaluating responses received from promotion code providers after promotion codes have been submitted.

3. The medium of claim 1 , wherein:

simulating user actions comprises steps for controlling an interface that simulates user actions.

4. The medium of claim 1 , wherein:

the validation driver is configured to cause a JSON object containing validation data to be passed between components.

5. The medium of claim 1 , wherein:

the validation driver is configured to detect changes in webpages relative to previous versions of webpages.

6. The medium of claim 1 , wherein:

the web browser is an in-memory web browser.

7. The medium of claim 1 , wherein the operations further comprise:

limiting coupon validation testing based on a throttling pattern and historical testing rate data.

8. The medium of claim 1 , wherein:

the operations comprise sending the first and second test results to the executing software; and

the executing software is configured to evaluate the first and second test results and based on the evaluation configuring a subsequent batch of coupon-codes to be tested.

9. The medium of claim 1 , wherein testing whether each of at least a plurality of the received first batch of coupon codes is valid comprises:

steps for evaluating a response from a coupon-code provider.

10. The medium of claim 1 , wherein:

the validity driver is configured to automatically test the validity of coupon codes and only deliver online shoppers coupon codes that a merchant will accept.

11. A method, comprising:

determining, with a computer, by a validation driver executing on the computer and configured to at least partially control a web browser also executing on the computer, how to submit coupon codes to a first merchant website by:

accessing a previously specified characterization of one or more paths through the first merchant website in response to the web browser navigating to the first merchant website;

detecting a checkout webpage of the first merchant website by, for each of a plurality of webpages of the first merchant website, determining whether the respective webpage is the checkout webpage based on the previously specified characterization of one or more paths through the first merchant website; and

identifying a first coupon-code submission interface of the first merchant website, wherein the first coupon-code submission interface comprises a text-box input of the checkout webpage and a submit button of the checkout webpage, and identifying the first coupon-code submission interface comprises, for each of a plurality of elements of a document object model of the checkout webpage, determining whether the respective element is a coupon-code input text box based on how close the respective element is to another element of the document object model,

wherein the validation driver at least partially controls the web browser via a first application program interface by which the validation driver causes the web browser to simulate user actions;

receiving, with the computer, by the validation driver, from executing software configured to assign different batches of coupon codes to different validation drivers, a first batch of coupon codes having a plurality of coupon codes corresponding to the first merchant website and to be tested by the validation driver;

after detecting the checkout webpage of the first merchant website, testing, with the computer, by the validation driver, whether each of at least a plurality of the received first batch of coupon codes is valid by submitting coupon codes via the first coupon-code submission interface and parsing and interpreting responses of the first merchant website to submissions of coupon codes;

storing, with the computer, first test results indicating which tested coupon codes among the first batch are valid;

determining, with the computer, by the validation driver executing on the computer, how to submit coupon codes to a second merchant website by identifying a second coupon-code submission interface of the second merchant website, wherein:

the second coupon-code submission interface is a second application program interface exposed by the second merchant, the second application program interface being different from the first application program interface, and

the second application program interface provides access to a coupon validation function; and

testing, with the computer, by the validation driver, whether each of at least a plurality of the received second batch of coupon codes is valid by submitting coupon codes via the second application program interface and parsing and interpreting responses of the second application program interface to submissions of coupon codes; and

storing, with the computer, second test results indicating which tested coupon codes among the second batch are valid, wherein:

the first merchant websites and the second application program interface use different terminology in responses to coupon code submissions to indicate whether coupon codes are valid.

12. The method of claim 11 , wherein:

the different terminology is interpreted with steps for evaluating responses received from promotion code providers after promotion codes have been submitted.

13. The method of claim 11 , wherein:

simulating user actions comprises steps for controlling an interface that simulates user actions.

14. The method of claim 11 , wherein:

the validation driver is configured to cause a JSON object containing validation data to be passed between components.

15. The method of claim 11 , wherein:

the validation driver is configured to detect changes in webpages relative to previous versions of webpages.

16. The method of claim 11 , wherein:

the web browser is an in-memory web browser.

17. The method of claim 11 , further comprising:

limiting coupon validation testing based on a throttling pattern and historical testing rate data.

18. The method of claim 11 , wherein:

the method comprises sending the first and second test results to the executing software; and

the executing software is configured to evaluate the first and second test results and based on the evaluation configuring a subsequent batch of coupon-codes to be tested.

19. The method of claim 11 , wherein testing whether each of at least a plurality of the received first batch of coupon codes is valid comprises:

steps for evaluating a response from a coupon-code provider.

20. The method of claim 11 , wherein:

the validity driver is configured to automatically test the validity of coupon codes and only deliver online shoppers coupon codes that a merchant will accept.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Jul 29, 2024
From: COMPUTERSHARE TRUST COMPANY, N.A., AS SUCCESSOR TO WELLS FARGO BANK, NATIONAL ASSOCIATION
To: NCH MARKETING SERVICES, INC.; VALASSIS COMMUNICATIONS, INC.; VALASSIS DIGITAL CORP.; VALASSIS DIRECT MAIL, INC.
Reel/Frame 068177/0738 →
SECURITY INTEREST Recorded Apr 8, 2021
From: EVERYDAY HEALTH, INC.; KEEPITSAFE, INC.; OOKLA, LLC; SPICEWORKS, INC.; THREATTRACK SECURITY, INC.; RETAILMENOT, INC.
To: MUFG UNION BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 056969/0755 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS AGENT
To: RETAILMENOT, INC.
Reel/Frame 054195/0719 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 43790/0953 Recorded Oct 28, 2020
From: CITIBANK, N.A.
To: RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC; DEALS.COM, LLC
Reel/Frame 054242/0951 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 43791/0085 Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC; DEALS.COM, LLC
Reel/Frame 054246/0727 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: LEMPHERS, DAVID; COUHAULT, CHRISTOPHER; SUVACIOGLU, ALEXANDROS
To: YSL VENTURES, INC.
Reel/Frame 049935/0393 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: YSL VENTURES, INC.
To: RETAILMENOT, INC.
Reel/Frame 049935/0489 →
SECURITY INTEREST Recorded Sep 8, 2017
From: HARLAND CLARKE CORP.; SCANTRON CORPORATION; CHECKS IN THE MAIL, INC.; NCP SOLUTIONS, LLC; VALASSIS COMMUNICATIONS, INC.; VALASSIS DIRECT MAIL, INC.; VALASSIS IN-STORE SOLUTIONS, INC.; MAILCOUPS, INC.; NCH MARKETING SERVICES, INC.; VALASSIS DIGITAL, INC.; RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC; DEALS.COM, LLC
To: CITIBANK, N.A.
Reel/Frame 043790/0953 →
SECURITY INTEREST Recorded Sep 8, 2017
From: HARLAND CLARKE CORP.; SCANTRON CORPORATION; CHECKS IN THE MAIL, INC.; NCP SOLUTIONS, LLC; VALASSIS COMMUNICATIONS, INC.; VALASSIS DIRECT MAIL, INC.; VALASSIS IN-STORE SOLUTIONS, CIN.; MAILCOUPS, INC.; NCH MARKETING SERVICES, INC.; VALASSIS DIGITAL, INC.; RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC; DEALS.COM, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 043791/0085 →
SECURITY INTEREST Recorded Sep 8, 2017
From: HARLAND CLARKE CORP.; SCANTRON CORPORATION; CHECKS IN THE MAIL, INC.; NCP SOLUTIONS, LLC; VALASSIS COMMUNICATIONS, INC.; VALASSIS DIRECT MAIL, INC.; VALASSIS IN-STORE SOLUTIONS, INC.; MAILCOUPS, INC.; NCH MARKETING SERVICES, INC.; VALASSIS DIGITAL, INC.; RETAILMENOT, INC.; GIFTCARDZEN INC.; YSL VENTURES, INC.; CSB ACQUISITION CO., LLC; SMALLPONDS, LLC; RNOT, LLC; SPECTRAWIDE ACQUISITION CO., LLC; CLTD ACQUISITION CO., LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 043791/0187 →