U.S. patent application number 15/935977 was filed with the patent office on 2018-08-02 for deal-surfacing button.
The applicant listed for this patent is GOOGLE LLC. Invention is credited to Colin Albright McDonough.
Application Number | 20180218403 15/935977 |
Document ID | / |
Family ID | 55962087 |
Filed Date | 2018-08-02 |
United States Patent
Application |
20180218403 |
Kind Code |
A1 |
McDonough; Colin Albright |
August 2, 2018 |
Deal-Surfacing Button
Abstract
Auto-detecting an action on a merchant service and rendering an
offer button to display an offer redeemable based on the action. A
user accesses a merchant service and an indication of the action is
communicated to an offer system that maintains an account for the
user. The offer system determines whether the user has an offer
applicable to a purchase with the merchant. The user device
presents an offer button rendered to indicate that the first offer
is available for redemption by the user. The user initiates an
action on the merchant service and the user device communicates an
indication of the action to the offer system. The offer system
determines if the user has a second offer applicable to a purchase
with the merchant based on the action taken by the user and the
offer button is rendered to indicate that the second offer is
available for redemption.
Inventors: |
McDonough; Colin Albright;
(Mountain View, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
GOOGLE LLC |
Mountain View |
CA |
US |
|
|
Family ID: |
55962087 |
Appl. No.: |
15/935977 |
Filed: |
March 26, 2018 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13929744 |
Jun 27, 2013 |
9953343 |
|
|
15935977 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 30/02 20130101;
G06Q 30/0222 20130101; G06Q 30/0257 20130101 |
International
Class: |
G06Q 30/02 20120101
G06Q030/02 |
Claims
1.-21. (canceled)
22. A computer-implemented method to render offer controls on
merchant services, comprising: communicating, by the computing
device and to an offer computing system, a detection that a third
party merchant shopping application has been loaded into a memory
on the computing device for execution; receiving, by the computing
device and from the offer computing system, a first notification of
a first offer available for redemption by the user, the first
notification based on the communicated detection; producing, by the
computing device, an offer control based on the first notification,
the offer control providing a customized visual representation of
the first offer on a user interface of the computing device; and
presenting, by the computing device, a customized visual
representation of a first offer via an offer control on the user
interface of the computing device, the offer control comprising a
first rendering indicating the first offer available for redemption
by the user, the first offer selected from the two or more offers
selected by the user and associated with the user account
maintained by the offer computing system.
23. The method of claim 22, further comprising receiving, by the
computing device, an input indicating an action was taken by the
user using the merchant service on the computing device;
communicating, by the computing device, the input indicating that
the action was taken by the user using the merchant service on the
computing device to the offer computing system maintaining the
account for the user comprising the two or more offers selected by
the user; receiving, by the computing device and from the offer
computing system, a second notification of a second offer available
for redemption by the user, the offer computing system determining
the second offer is available for redemption by the user based on
the input indicating that the action was taken by the user and
based on the two or more offers selected by the user and associated
with the user account maintained by the offer computing system;
producing, by the computing device, a revised offer control based
on the second notification of the second offer available for
redemption by the user, the revised offer control produced to
provide a second customized visual representation of the second
offer on a user interface of the computing device; and presenting,
by the computing device, the second customized visual
representation of second offer via the revised offer control on the
user interface of the computing device, the revised offer control
comprising a second rendering indicating the second offer available
for redemption by the user, the second offer selected from the two
or more offers selected by the user and associated with the user
account maintained by the offer computing system.
24. The method of claim 22, wherein the communicated detection
comprises one or more of a merchant identification, a user
identification, and an offer computing system identification.
25. The method of claim 22, further comprising receiving, by the
computing device, a selection of the two or more offers by the
user, wherein the selection of the two or more offers associates
the each of the two or more selected offers with the user account
maintained by the offer computing system.
26. The method of claim 22, wherein the first offer comprises an
offer applicable to the user for a purchase via the merchant
service or an offer provided by the offer computing system
applicable to the user for a purchase via the merchant service.
27. The method of claim 23, wherein the second input indicating
that the action was taken by the user using the merchant service on
the computing device comprises one or more of an indication that an
item was placed in or removed from a shopping basket, shipping
information was entered, payment information was entered, an item
was added or removed from a wish list, an item was added or removed
from a gift registry, a review of an item was selected, and
additional information about an item or group of items was
selected.
28. The method of claim 23, wherein the second offer comprises one
or more of a coupon, a loyalty redemption, a gift card, and an
offer redemption code applicable based on the action taken by the
user using the merchant service.
29. A computer program product, comprising: a non-transitory
computer-readable storage device having computer-executable program
instructions embodied thereon that when executed by a computer
cause the computer to render offer controls on merchant services,
the computer-executable program instructions comprising:
computer-executable program instructions to communicate, to an
offer computing system, a detection that a third party merchant
shopping application has been loaded into a memory on the computing
device for execution; computer-executable program instructions to
receive, from the offer computing system, a first notification of a
first offer available for redemption by the user, the first
notification based on the communicated detection;
computer-executable program instructions to produce an offer
control based on the first notification, the offer control
providing a customized visual representation of the first offer on
a user interface of the computing device; and computer-executable
program instructions to present a customized visual representation
of a first offer via an offer control on the user interface of the
computing device, the offer control comprising a first rendering
indicating the first offer available for redemption by the user,
the first offer selected from the two or more offers selected by
the user and associated with the user account maintained by the
offer computing system.
30. The computer program product of claim 29, wherein the
computer-executable program instructions further comprise
computer-executable program instructions to: receive an input
indicating an action was taken by the user using the merchant
service on the computing device; communicate the input indicating
that the action was taken by the user using the merchant service on
the computing device to the offer computing system maintaining the
account for the user comprising the two or more offers selected by
the user; receive, from the offer computing system, a second
notification of a second offer available for redemption by the
user, the offer computing system determining the second offer is
available for redemption by the user based on the input indicating
that the action was taken by the user and based on the two or more
offers selected by the user and associated with the user account
maintained by the offer computing system; produce a revised offer
control based on the second notification of the second offer
available for redemption by the user, the revised offer control
produced to provide a second customized visual representation of
the second offer on a user interface of the computing device; and
present the second customized visual representation of second offer
via the revised offer control on the user interface of the
computing device, the revised offer control comprising a second
rendering indicating the second offer available for redemption by
the user, the second offer selected from the two or more offers
selected by the user and associated with the user account
maintained by the offer computing system.
31. The computer program product of claim 29, wherein the
communicated detection comprises one or more of a merchant
identification, a user identification, and an offer computing
system identification.
32. The computer program product of claim 29, wherein the
computer-executable program instructions further comprise
computer-executable program instructions to receive a selection of
the two or more offers by the user, wherein the selection of the
two or more offers associates the each of the two or more selected
offers with the user account maintained by the offer computing
system.
33. The computer program product of claim 29, wherein the first
offer comprises an offer applicable to the user for a purchase via
the merchant service or an offer provided by the offer computing
system applicable to the user for a purchase via the merchant
service.
34. The computer program product of claim 30, wherein the second
input indicating that the action was taken by the user using the
merchant service on the computing device comprises one or more of
an indication that an item was placed in or removed from a shopping
basket, shipping information was entered, payment information was
entered, an item was added or removed from a wish list, an item was
added or removed from a gift registry, a review of an item was
selected, and additional information about an item or group of
items was selected.
35. The computer program product of claim 29, wherein the first
rendering of the offer control comprises one or more of a display
of an offer amount, a color or offer control style change, a change
in text displayed on the offer control, a flashing color or text,
and a flashing or displayed animation.
36. A system to use one-time codes to provide user feedback to
merchants, the system comprising: a storage device; and a processor
communicatively coupled to the storage device, wherein the
processor executes application code instructions that are stored in
the storage device to cause the system to: communicate, to an offer
computing system, a detection that a third party merchant shopping
application has been loaded into a memory on the computing device
for execution; to receive, from the offer computing system, a first
notification of a first offer available for redemption by the user,
the first notification based on the communicated detection; produce
an offer control based on the first notification, the offer control
providing a customized visual representation of the first offer on
a user interface of the computing device; and present a customized
visual representation of a first offer via an offer control on the
user interface of the computing device, the offer control
comprising a first rendering indicating the first offer available
for redemption by the user, the first offer selected from the two
or more offers selected by the user and associated with the user
account maintained by the offer computing system.
37. The system of claim 36, wherein the processor further executes
application code instructions that are stored in the storage device
to cause the system to: receive an input indicating an action was
taken by the user using the merchant service on the computing
device; communicate the input indicating that the action was taken
by the user using the merchant service on the computing device to
the offer computing system maintaining the account for the user
comprising the two or more offers selected by the user; receive,
from the offer computing system, a second notification of a second
offer available for redemption by the user, the offer computing
system determining the second offer is available for redemption by
the user based on the input indicating that the action was taken by
the user and based on the two or more offers selected by the user
and associated with the user account maintained by the offer
computing system; produce a revised offer control based on the
second notification of the second offer available for redemption by
the user, the revised offer control produced to provide a second
customized visual representation of the second offer on a user
interface of the computing device; and present the second
customized visual representation of second offer via the revised
offer control on the user interface of the computing device, the
revised offer control comprising a second rendering indicating the
second offer available for redemption by the user, the second offer
selected from the two or more offers selected by the user and
associated with the user account maintained by the offer computing
system.
38. The system of claim 36, wherein the communicated detection
comprises one or more of a merchant identification, a user
identification, and an offer computing system identification.
39. The system of claim 36, wherein the processor further executes
application code instructions that are stored in the storage device
to cause the system to receive a selection of the two or more
offers by the user, wherein the selection of the two or more offers
associates the each of the two or more selected offers with the
user account maintained by the offer computing system.
40. The system of claim 36, wherein the second input indicating
that the action was taken by the user using the merchant service on
the computing device comprises one or more of an indication that an
item was placed in or removed from a shopping basket, shipping
information was entered, payment information was entered, an item
was added or removed from a wish list, an item was added or removed
from a gift registry, a review of an item was selected, and
additional information about an item or group of items was
selected.
41. The system of claim 36, wherein the first rendering of the
offer control comprises one or more of a display of an offer
amount, a color or offer control style change, a change in text
displayed on the offer control, a flashing color or text, and a
flashing or displayed animation.
Description
TECHNICAL FIELD
[0001] The present disclosure relates generally to an offer system,
and more particularly to methods and systems that render an offer
button or control on a merchant application displaying an offer
indication.
BACKGROUND
[0002] Merchants offer coupons or rebates as incentives for
purchasing particular products. Traditionally, coupons are
distributed in a paper format. A user redeems the coupon by taking
the physical coupon to a merchant and purchasing a product that
satisfies the terms of the coupon. Other forms of traditional
coupons include rebates for purchasing particular products, wherein
after purchasing a product that satisfies the terms of the rebate
offer, the user fills out and returns required forms to request the
rebate.
[0003] More recently, merchants have offered electronic offers.
Such offers may be linked to merchant loyalty cards, wherein a user
enrolls in a merchant's loyalty program and receives a loyalty
card. A user then associates certain discounts to the loyalty card
and redeems these discounts by presenting the loyalty card (or some
form of identifying information, such as a telephone number) and
the method of payment to the merchant when purchasing the
discounted products. Alternatively, coupons and offers are
distributed through electronic media, forums, and social
networks.
[0004] With the advent of online marketplaces and shopping
applications for smart devices, users can copy/paste, click a link,
or otherwise manually enter offer codes when completing a
transaction with a merchant to receive a discount associated with
the code. The user is required to search for codes that apply to
the merchant and/or the items in the user's shopping basket.
SUMMARY
[0005] In certain example aspects described herein, a method for
rendering controls on merchant services comprises an offer created
by a merchant system, manufacturer system, and/or alternative offer
provider that is distributed to potential users. The user accesses
a merchant service (for example, a merchant shopping application or
an online shopping website, on a user device). An input indicating
that the user has accessed the merchant service is communicated by
the user device to an offer system that maintains an account for
the user. The offer system receives the input and determines
whether the user has an offer applicable to a purchase with the
merchant. The offer system communicates a first offer to the user
device, and the user device presents an offer control or button on
a user interface of the user device. The offer button is rendered
to indicate that the first offer is available for redemption by the
user (for example, by displaying text of the offer, flashing a
color, or displaying an animation).
[0006] The user initiates an action on the merchant service (for
example, selects an item to display more information, selects to
put the item on a wish list or in a shopping basket, enters
shipping information, or selects to pay with a digital wallet
account). The user device communicates an indication of the action
to the offer system, and the offer system determines if the user
has a second offer applicable to a purchase with the merchant based
on the action taken by the user. The offer system communicates the
second offer to the user device, and the user device renders the
offer button to indicate that the second offer is available for
redemption by the user.
[0007] Selection of the offer button applies the offer currently
associated with the button to the transaction.
[0008] These and other aspects, objects, features, and advantages
of the example embodiments will become apparent to those having
ordinary skill in the art upon consideration of the following
detailed description of illustrated example embodiments.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a block diagram depicting an offer system, in
accordance with certain example embodiments.
[0010] FIG. 2 is a block flow diagram depicting a method for
rendering an offer button, in accordance with certain example
embodiments.
[0011] FIG. 3 is a block flow diagram depicting a method for
selecting offers, in accordance with certain example
embodiments.
[0012] FIG. 4 is a block flow diagram depicting a method for
determining account statuses, in accordance with certain example
embodiments.
[0013] FIG. 5 is a block flow diagram depicting a method for
monitoring interactions on merchant services, in accordance with
certain example embodiments.
[0014] FIG. 6 is a block diagram depicting a user interface
displaying an offer button rendered on a merchant system shopping
application to display an offer amount when a user accesses the
merchant system shopping application, in accordance with certain
example embodiments.
[0015] FIG. 7 is a block diagram depicting a user interface
displaying an offer button rendered on a merchant system shopping
application product page to display an offer amount when a user
selects an item to display more information, in accordance with
certain example embodiments.
[0016] FIG. 8 is a block diagram depicting a user interface
displaying an offer button rendered on an online merchant system
shopping basket to display an offer amount when a user pays with a
digital wallet account, in accordance with certain example
embodiments.
[0017] FIG. 9 is a block diagram depicting a computer machine and
module, in accordance with certain example embodiments.
DETAILED DESCRIPTION OF THE EXAMPLE EMBODIMENTS
Overview
[0018] The example embodiments described herein provide
computer-implemented techniques for rendering an offer button or
control on a merchant service displaying an offer indication. In an
example embodiment, a user accesses a merchant application on a
user device (for example, a merchant shopping application), and a
control button is rendered on the merchant application that
displays a value or other indication of an offer applicable to the
user's transaction. For example, the user has an offer for free
shipping for any purchase with Merchant A. When the user accesses
Merchant A's shopping application, the control button is rendered
to display the text "FREE SHIPPING." In another example, the user
has an offer for $10 off a $50 purchase with Merchant B. When the
user selects an item that brings the shopping basket total over $50
while shopping Merchant B's electronic storefront, the control
button is rendered to flash "$10 OFF." In yet another example, the
user has an offer for $5 off a purchase with any merchant when a
digital wallet account managed by Offer System X is used to pay for
a purchase. When the user accesses Merchant C's shopping
application, the control button is rendered to display a yellow
flashing button.
[0019] An offer is created by a merchant system, manufacturer
system, offer system, and/or alternative offer provider and
distributed to potential users. In an example embodiment, the offer
is a non-prepaid offer for which the user does not pay a fee to
obtain (for example, a loyalty reward, a coupon, discounts, or
other offer redeemable with a merchant, manufacturer, service
provider, and/or provider of goods). In another example embodiment,
the offer is a prepaid offer, and the user pays a predetermined
price for the products associated with the offer.
[0020] The offer comprises redemption terms that specify one or
more of a redemption period, a purchase transaction minimum, and a
product description applicable to the redemption of the offer. The
offer also comprises discount information that specifies the cash
value or loyalty point exchange rate of the offer. The offer system
distributes the offer and may selectively send potential offers to
the user. The offer system also may rank and prioritize the offers
sent to a user.
[0021] The user operates a user computing device to select one or
more offers distributed by the offer system or by others through
various distribution channels. In an example embodiment, the user
selects the offer by clicking on it, pressing a button to "save"
the offer, or by other suitable operation to indicate a desire to
select and/or save the offer. In another example embodiment, the
offer is a prepaid offer, and the user selects the offer by
agreeing to purchase the offer. The user can download, select,
scan, or otherwise capture the offer via the user computing device
and import the offer specifics (such as merchant, product, value,
redemption rules, and other specifics) to the user computing
device. By selecting the offer, the user indicates a desire to save
the offer in a user account maintained by the offer system.
[0022] The user requests access to the merchant application. In an
example embodiment, the user has previously logged into a
transferable and recognizable global account that is associated
with the merchant application. In this embodiment, the merchant
application is associated with another web browser, so the user's
login information from one page is transferred to the associated
merchant application. In another example embodiment, the user has
previously logged into the merchant application, and the user's
login information was stored by the merchant application so that
the user is not prompted to re-enter his login information when
returning to the web page. In yet another example embodiment, the
user logs into a system account so that when the user enters a web
page, the user's registration information is known or provided to
the merchant application. In another example embodiment, the user's
registration information is known by the offer system, or the user
is prompted to log into the offer system prior to entering the
merchant application. In yet another example embodiment, the user
has previously logged into an operating system level account and/or
offer system account on the user device. In this embodiment, the
merchant application is associated with the operating system level
account and/or the offer system account.
[0023] The merchant application loads on the user device, and an
offer button is rendered on the merchant application. An offer
control module initiates a request to authenticate the user's offer
system account status. In an example embodiment, the offer control
module functions as an intermediary between the merchant
application and the offer system such that all relevant information
is passed between the merchant application and the offer system
through the offer control module. The offer control module
communicates the request to the offer system, and the offer system
determines the user's account status. In an example embodiment,
information for determining whether the user has an offer
applicable to a purchase with the merchant is communicated to the
offer system through the offer control module. For example, the
offer system may determine if the user has a global offer
applicable to a purchase with the merchant or an offer provided by
the offer system applicable to a purchase with any merchant. The
offer system communicates the user's account status to the offer
control module, and the offer button is rendered to display an
indication of the offer applicable to a purchase with the merchant.
For example, the offer button can display an offer amount, the
color or style of the button can be changed to indicate an offer is
applicable, the text displayed on the button can be changed, the
button can flash or display animations, or other suitable
indications of the available offer.
[0024] The user initiates an action via the merchant application.
For example, the user may select an item to be placed in or removed
from the user's shopping basket, enter shipping information or
payment information, add or remove an item to a wish list or
registry, select an item to view reviews or otherwise request
additional information about an item or group of items. For each
action taken by the user, the offer control module receives a load
event for the user's action performed on the merchant application
and communicates the action to the offer system by communicating
the load event information. In an example embodiment, the offer
control module receives notification of any combination of a user
action and/or a change in the current state of the user's shopping
basket, wish list, or registry. The offer system determines if the
user has an offer applicable to a purchase with the merchant based
on the newly communicated information, and the offer system
communicates the user's account status to the offer control module.
The offer button is rendered to display an indication of the offer
applicable to a purchase with the merchant based on the action
taken by the user.
[0025] The inventive functionality of the invention will be
explained in more detail in the following description, read in
conjunction with the figures illustrating the program flow.
Example System Architectures
[0026] Turning now to the drawings, in which like numerals indicate
like (but not necessarily identical) elements throughout the
figures, example embodiments are described in detail.
[0027] FIG. 1 is a block diagram depicting an offer system, in
accordance with certain example embodiments. As depicted in FIG. 1,
the example operating environment 100 includes a merchant system
110, a user device 120, and an offer system 130 that are configured
to communicate with one another via one or more networks 140. In
another example embodiment, two or more of these systems (including
systems 110, 120, and 130) or parts thereof are integrated into the
same system.
[0028] Each network 140 includes a wired or wireless
telecommunication means by which network systems (including systems
110, 120, and 130) can communicate and exchange data. For example,
each network 140 can be implemented as, or may be a part of, a
storage area network (SAN), personal area network (PAN), a
metropolitan area network (MAN), a local area network (LAN), a wide
area network (WAN), a wireless local area network (WLAN), a virtual
private network (VPN), an intranet, an Internet, a mobile telephone
network, a card network, Bluetooth, near field communication
network (NFC), any form of standardized radio frequency, or any
combination thereof, or any other appropriate architecture or
system that facilitates the communication of signals, data, and/or
messages (generally referred to as data). Throughout this
specification, it should be understood that the terms "data" and
"information" are used interchangeably herein to refer to text,
images, audio, video, or any other form of information that can
exist in a computer-based environment.
[0029] In an example embodiment, each network system (including
systems 110, 120, and 130) includes a device having a communication
module capable of transmitting and receiving data over the network
140. For example, each network system (including systems 110, 120,
and 130) may comprise a server, personal computer, mobile device
(for example, notebook computer, tablet computer, netbook computer,
personal digital assistant (PDA), video game device, GPS locator
device, cellular telephone, Smartphone, or other mobile device), a
television with one or more processors embedded therein and/or
coupled thereto, or other appropriate technology that includes or
is coupled to a web browser or other application for communicating
via the network 140. In the example embodiment depicted in FIG. 1,
the network systems (including systems 110, 120, and 130) are
operated by merchants, users 101, and an offer system operator,
respectively.
[0030] The merchant system 110 comprises at least one point of sale
("POS") terminal 113 that is capable of processing a purchase
transaction initiated by a user 101 (for example, a cash register).
In an example embodiment, the merchant operates an online store and
the user 101 indicates a desire to make a purchase by clicking a
link or "checkout" button on a website. In another example
embodiment, the merchant operates a merchant shopping application
and the user 101 indicates a desire to make a purchase by clicking
a link or "checkout" button on the application. In another example
embodiment, the user device 120 is configured to perform the
functions of the POS terminal 113. In this example, the user 101
scans and/or pays for the transaction via the user device 120
without interacting with the POS terminal 113.
[0031] In an example embodiment, the merchant system 110 is capable
of communicating with the user device 120 via an application 115.
The application 115 may be an integrated part of the POS terminal
113 or a standalone hardware device (not shown), in accordance with
other example embodiments.
[0032] In an example embodiment, the user device 120 may be a
personal computer, mobile device (for example, notebook, computer,
tablet computer, netbook computer, personal digital assistant
("PDA"), video game device, GPS locator device, cellular telephone,
Smartphone or other mobile device), television, or other
appropriate technology that includes or is coupled to a web server,
or other suitable application for interacting with web page files.
The user 101 can use the user device 120 to access a merchant
system 110 service (for example, a shopping website or shopping
application) via a user interface 121 and an application 125. The
application 125 is a program, function, routine, applet or similar
entity that exists on and performs its operations on the user
device 120. For example, the application 125 may be one or more of
a shopping application, merchant system 110 application, an
Internet browser, a digital wallet application, a loyalty card
application, another value-added application, a user interface 121
application, or other suitable application operating on the user
device 120. In some embodiments, the user 101 must install an
application 125 and/or make a feature selection on the user device
120 to obtain the benefits of the techniques described herein.
[0033] In an example embodiment, the data storage unit 127 and
application 125 may be implemented in a secure element or other
secure memory (not shown) on the user device 120. In another
example embodiment, the data storage unit 127 may be a separate
memory unit resident on the user device 120. An example data
storage unit 127 enables storage of user contact details and offers
for retrieval of a user offer system 130 account. In an example
embodiment, the data storage unit 127 can include any local or
remote data storage structure accessible to the user device 120
suitable for storing information. In an example embodiment, the
data storage unit 127 stores encrypted information, such as HTML5
local storage.
[0034] An example user device 120 comprises an offer control module
123. An example offer control module 123 is an application plug-in
corresponding to the offer system 130. In another example
embodiment, the offer control module 123 is a browser plug-in
corresponding to the offer system 130. The offer control module 123
may be an integrated part of the application 125, an integrated
part of the offer system 130, or a stand along hardware device (not
shown), in accordance with other example embodiments. The user 101
installs the offer control module 123 on the user device 120 to
facilitate auto-detection of actions on merchant system 110
service, communicate actions to the offer system 130, receive
notification of offers available for redemption based on the
actions, and render an offer control or button on the user
interface 121 to display an indication of the offer available for
redemption. In an example embodiment, the application 125
communicates with the offer control module 123. For example, the
application 125 provides data to the offer control module 123 to
allow for the detection of specific load events, such as the
loading of the merchant system's 110 shopping application, shopping
basket, and product information. In an example embodiment, the
offer control module 123 comprises application programming
interfaces ("APIs") that allow the module 123 to interact and
communicate with the application 125.
[0035] An example offer control module 123 communicates with the
offer system 130. For example, the offer control module 123
transmits load event information to the offer system 130 when
action on the merchant system 110 shopping application is detected.
An example offer system 130 comprises a button rendering module 135
and a data storage unit 137. The offer system 130 maintains an
account for the user 101. An example user 101 account comprises one
or more offers. In an example embodiment, the offer system 130
receives offers from the merchant system 110, a manufacturer system
(not shown) and/or other offer creators and distributes the offers
to users 101 for review and selection. In an example embodiment,
the offer system 130 creates the offers. In another example
embodiment, the offer system 130 may generate web-based user
interfaces providing forms for the merchant system 110 to create
offers. In an example embodiment, the user account maintained by
the offer system 130 comprises an electronic record having
associated therewith one or more offers.
[0036] The user 101 may be automatically prompted with one or more
offers based on the user's registration information immediately
after completing the registration process. In another example
embodiment, the user 101 may be prompted to register with the offer
system 130 when the user 101 clicks on or selects an offer. In an
example embodiment, the user 101 may use a smart phone application
125 to register with the offer system 130. In another example
embodiment, the user 101 may register with the offer system 130
through the user's digital wallet.
[0037] The offers arc distributed through selected distribution
channels. In an example embodiment, the distribution channels
comprise one or more of a display on cost per mille impression
("CPM") or pay per click ("PPC") impression, electronic
correspondence distribution, SMS distribution, display based on
geo-fencing, user device 120 map display, display in response to an
Internet search, and display on an offer website. In another
example embodiment, the offers are selectively presented to users
based on the user's offer system 130 account information. The
merchant system 110 specifies the details of the offer, by
selecting the type of offer, the duration, the discount amount or
percentage, redemption rules, and additional pertinent details when
creating the offer. In an example embodiment, the offers arc
distributed directly by the merchant system 110 or a third party
without offer system 130 involvement.
[0038] The selected offers are saved in the data storage unit 137.
In an example embodiment, the data storage unit 137 can include any
local or remote data storage structure accessible to the account
management system 130 suitable for storing information. In an
example embodiment, the data storage unit 137 stores encrypted
information, such as HTML5 local storage.
[0039] In an example embodiment, each offer will have one or more
structured rules or conditions that the offer system 130 can
understand without human intervention. These rules include, but arc
not limited to, a purchase threshold (for example, receive $10 back
on a single purchase of more than $50 from the merchant), an
aggregate purchase threshold (for example, receive $10 back from
the next purchase from the merchant after the accumulated purchase
at merchant has reached $1000), a minimum number of purchases from
the merchant (for example, receive $10 back on your tenth purchase
from the merchant), a time restriction (for example, receive $10
back for a lunch-time purchase), a location restriction (for
example, receive $10 back from a purchase at a specified merchant
location), a product or category restriction (for example, receive
$10 back when you purchase a specific product or a product from a
specific department), an expiration date, a limited number of
redemptions, and pre-payment terms. In another example embodiment,
the offer is a prepaid offer or other offer, and the redemption
rules include an expiration date. In an example embodiment, the
offers may include, but are not limited to, coupons, loyalty
points, prepaid offers, rebates, and other forms of value added
services.
[0040] In an example embodiment, these rules are set by the
merchant system 110 at the time the offer is created and reviewed
by the offer system 130 before the offer is applied. In an example
embodiment, the user's 101 selected offer is not redeemable because
the one or more structured rules or conditions arc not met (for
example, the redemption term has expired, the offer has exceeded
the maximum number of allotted redemptions, the purchase
transaction amount is less than the minimum purchase transaction
amount for the offer, or the description of the products purchased
does not match the description of the products in the selected
offer). In another example embodiment, the offer rules are reviewed
by the offer rendering module 135 or another module (not shown) on
the user device 120.
[0041] The button rendering module 135 receives the load event
information for action taken on the merchant system 110 shopping
application from the offer control module 123 and retrieves
applicable offers from the user's 101 offer system account. In an
example embodiment, the button rendering module 135 receives load
event information indicating that the user 101 has accessed the
merchant system 110 shopping application. The button rendering
module 135 determines whether the user 101 has an offer applicable
to any purchase with the merchant system 110. Once an offer is
identified, the button rendering module 135 communicates the offer
to the offer control module 123. In an example embodiment, the
button rendering module 135 communicates an indication of how the
offer button will be rendered on the user interface 121. In another
example embodiment, the button rendering module 135 communicates
the details of the offer to the offer control module 123 and the
offer control module 123 determines how the offer button will be
rendered. In yet another example embodiment, the button rendering
module 135 is split across multiple system (for example systems 130
and 120). In an example embodiment, a portion of the button
rendering module 135 on the offer system 130 may render part of the
offer button and send the information to the portion of the button
rendering module 135 on the user device 120. The portion of the
button rendering module 135 on the user device combines the
information received with additional details to render the offer
button. In another example embodiment, the button rendering module
135 on the user device 120 sends information to the button
rendering module 135 on the offer system 130.
[0042] FIG. 6 is a block diagram depicting a user interface 121
displaying an offer button 610 rendered on a merchant system 110
shopping application to display an offer amount when the user 101
accesses the merchant system 110 shopping application, in
accordance with certain example embodiments. As depicted in FIG. 6,
the example operating environment 600 comprises a user device 120,
a user interface 121, and an offer button 610. Once the user 101
accesses the merchant system 110 shopping application, the offer
control module 123 communicates the action to the offer system 130,
and the offer button 610 is rendered to display an offer capable of
redemption based on the user 101 accessing the merchant system 110
shopping application. As depicted in FIG. 6, the user interface 121
displays the rendered offer button 610.
[0043] FIG. 7 is a block diagram depicting a user interface 121
displaying the offer button 610 rendered on a merchant system 110
shopping application product page to display an offer amount when
the user 101 selects an item to display more information, in
accordance with certain example embodiments. As depicted in FIG. 7,
the example operating environment 700 comprises a user device 120,
a user interface 121, and an offer button 610. Once the user 101
selects an item, the offer control module 123 communicates the
action to the offer system 130, and the offer button 610 is
rendered to display an offer capable of redemption based on the
user 101 selecting the item in the merchant system 110 shopping
application. As depicted in FIG. 7, the user interface 121 displays
the rendered offer button 610.
[0044] FIG. 8 is a block diagram depicting a user interface 121
displaying an offer button 610 rendered on an online merchant
system 110 shopping basket to display an offer amount when the user
101 pays with a digital wallet account, in accordance with certain
example embodiments. As depicted in FIG. 8, the example operating
environment 800 comprises a user device 120, a user interface 121,
and an offer button 610. Once the user 101 indicates a desire to
pay with the user's 101 digital wallet account, the offer control
module 123 communicates the action to the offer system 130, and the
offer button 610 is rendered to display an offer capable of
redemption based on the user 101 indicating a desire to pay with
the user's 101 digital wallet account. As depicted in FIG. 8, the
user interface 121 displays the rendered offer button 610.
[0045] The components of the example operating environments 100,
600, 700, and 800 are described hereinafter with reference to the
example methods illustrated in FIGS. 2-5. The example methods of
FIGS. 2-5 may also be performed with other systems and in other
environments.
Example System Processes
[0046] FIG. 2 is a block flow diagram depicting a method for
rendering an offer button 610, in accordance with certain example
embodiments. The method 200 is described with reference to the
components illustrated in FIG. 1.
[0047] In block 210, a user 101 selects one or more offers to be
saved in the user's 101 offer system 130 account. In an example
embodiment, offers are created by the merchant system 110, the
manufacturer system (not shown), offer system (130), or another
third party system (not shown) and be distributed by the offer
system 130. In another example embodiment, the offers are created
by the offer system 130 or third party system (not shown) on behalf
of the merchant system 110, the manufacturer system (not shown),
and/or both systems. In another example embodiment, the offers are
distributed by the merchant system 110 or a third party system (not
shown). In another example embodiment, offers are selected and/or
saved in the user's 101 offer system 130 account without user 101
interaction (for example, the offer system 130 transmits offers to
be automatically saved in the user's 101 offer system 130 account
without the user 101 having to take any action). In another example
embodiment, offers are redeemable by any user and not saved to the
user's 101 offer system 130 account. In yet another example
embodiment, offers may be automatically saved to the user's 101
offer system 130 account.
[0048] In an example embodiment, the offers may include, but are
not limited to, coupons, loyalty points, prepaid offers, rebates,
and other forms of value added services. In this embodiment, the
offers may comprise merchant offers, manufacturer offers, third
party offers, and other types of offers. In an example embodiment,
the offers are for a specific product or group of products. For
example, the offer may be for $1.00 off Brand A laundry detergent
or $1.00 off a Manufacturer X product. These offers may be redeemed
at any merchant that accepts manufacturer coupons. In an
alternative example embodiment, the offers arc for a particular
merchant. For example, the offer may be for $10 off a $50 purchase
at Merchant Q. In an alternative example embodiment, the offers
comprise loyalty reward point redemptions. For example, the offer
may be for 10 loyalty points for every purchase of a Manufacturer X
product.
[0049] In an example embodiment, the offers comprise details on how
the offer can be redeemed and redemption rules. For example, the
offer may comprise the identification of the item to be purchased,
such as product title, brand information, universal product code
("UPC"), a stock keeping unit ("SKU"), a Japanese article number
("JAN"), a world product code ("WPC"), International Standard Book
Number ("ISBN"), European Article Number ("EAN"), color, size, and
other relevant sale information.
[0050] In an example embodiment, each offer will have one or more
rules or conditions associated with it. These rule include, but are
not limited to a purchase threshold (for example, receive $1.00 off
Brand Z laundry detergent that is regularly priced $5.00 or more,
or $10 single purchase of more than $50 from Merchant X), an
aggregate purchase threshold (for example, receive $10 off next
purchase from a merchant after the accumulated purchase of
Manufacturer B products has reached $100), a minimum number of
purchases of an item (for example, receive $10 off your tenth
purchase of Brand Z items), a time restriction (for example,
receive $10 off a lunch-time purchase), a maximum discount (for
example, the merchant system 110 sets $10 off as a maximum and user
A gets $1 off, while user B gets $2 off), and/or a location
restriction (for example, receive $10 off a purchase at a specified
location). In an example embodiment, these rules are set by the
merchant system 110 at the time the offer is created and reviewed
before the offer is applied. In another example embodiment, the
offer is a prepaid offer and the redemption rules may include an
expiration date. In yet another example embodiment, each offer will
have no rules or conditions associated with it. For example, an
offer for $10 off any purchase with any merchant. The offer content
and discount may be personalized to a particular user. For example,
user A may receive a 5% off coupon for a particular product or
service while user B may receive a 10% off coupon for the same
product or service. The offer system 130 may distribute the offers
and selectively send potential offers to the user 101. The offer
system 130 may determine which users 101 qualify for a particular
offer. The offer system 130 may also rank and prioritize the offers
sent to a user.
[0051] In an example embodiment, the merchant system 110 creates
the offer outside of the offer system 130. In another example
embodiment, the offer system 130 may generate web-based user
interfaces providing forms for the merchant system 110 to create
offers.
[0052] In an example embodiment, the offer system 130 receives the
offers and redemption terms transmitted by the merchant system 110.
In an example embodiment, the offers can be received electronically
on a regular basis (for example, daily/weekly), as part of a pull
from the offer system 130, and/or as part of a push from the
merchant system 110 to the offer system 130. In this embodiment,
the pull from the offer system 130 and/or the push from the
merchant system 110 can be triggered by a time condition, non-time
condition (for example a new offer is available or a location-based
condition), or a combination of multiple conditions (for example,
between the time of 2 PM and 5 PM for all users in New York).
[0053] In an example embodiment, the offer system 130 saves the
offer and redemption terms in the data storage unit 137 thereby
allowing the offer system 130 to identify the conditions under
which the offer is redeemable.
[0054] In an example embodiment, the offer system 130 distributes
the offers. In an example embodiment, the offer system 130
distributes offers through selected network channels. For example,
the offer system 130 communicates the offers via the network 140
for presentation to end users 101 on corresponding user devices
120. The offers can be monitored for interaction by the users 101
in accordance with the various network channels selected by the
merchant. In an example embodiment, the network channels comprise
display on cost per mille impression ("CPM"), pay per click
("PPC"), cost per action ("CPA"), electronic correspondence, and
offers near me. The merchant system 110 may select multiple methods
of distribution for the same offer. The merchant system 110 may
also create multiple offers to be distributed through the same or
different network channels. The merchant system 110 specifies the
details of the offer, by selecting the type of offer, the duration,
the discount amount or percentage, redemption rules, and additional
pertinent details when creating the offer.
[0055] In an example embodiment, the user 101 reviews the offers
and selects one or more offers to be saved to the user's 101 offer
system 130 account. The method for selecting one or more offers is
described in more detail hereinafter with reference to the methods
described in FIG. 3.
[0056] FIG. 3 is a block flow diagram depicting a method 210 for
selecting one or more offers, in accordance with certain example
embodiments, as referenced in block 210. The method 210 is
described with reference to the components illustrated in FIG.
1.
[0057] In block 310, the user 101 reviews the offers distributed by
the offer system 130. In an example embodiment, the user device 120
displays the offer in a web browser for the user 101 to review. In
an example embodiment, the offer is displayed in an offer
application 125 resident on the user device 120. In another example
embodiment, the offer is displayed in response to an Internet
search, in an electronic message or text message, or as a banner or
other advertisement in an Internet browser.
[0058] In block 320, the user 101 selects the offer. In an example
embodiment, the user 101 reviews and selects one or more offers.
The user 101 select, prepays, agrees to pay for, prints, saves,
and/or interacts with the offer. In an example embodiment, the user
101 selects one or more offers distributed by the offer system 130
or by others through the various distribution channels. In an
example embodiment, the user 101 selects the offer by clicking on
it, pressing a button to "save" the offer, pressing a button to
"pay for" the offer, or by other suitable means to indicate a
desire to select, pay, and/or save the offer.
[0059] The user 101 can download, select, scan, or otherwise
capture the offer and import the offer specifics (such as merchant,
product, value, redemption rules, and other specifics) to the user
device 120. In an example embodiment, the user 101 may register
with a merchant system's 110 loyalty rewards program, and offers
generated from the loyalty rewards program can be associated with
the user device 120. Additionally, the merchant system 110 may
implement its loyalty rewards program via the offer system 130 such
that each purchase by the user 101 will increment the loyalty
rewards. When the user 101 has accumulated sufficient loyalty
rewards to qualify for a loyalty rewards offer, the loyalty rewards
offer is saved on the user device 120 and then applied when a
purchase of the user 101 from the merchant meets the redemption
rules for the loyalty rewards offer.
[0060] In block 330, the offer system 130 receives a notification
that the user 101 has selected the offer and determines whether the
user 101 has an offer system 130 account. In an example embodiment,
the user 101 is prompted to log into or create an offer system 130
account when the offer is selected and/or paid for. In another
example embodiment, the user 101 previously logged into the offer
system 130 account and is otherwise automatically logged into the
account. In another example embodiment, the user's 101 login
credentials are shared across other accounts (for example, social
networking websites and user device 120 accounts) and the user 101
is automatically logged into the offer system 130 account using the
shared login credentials.
[0061] If the user 101 does not have an offer system 130 account,
the method 210 proceeds to block 340 and the user 101 is prompted
to create an offer system 130 account. In an example, the user 101
is prompted to register with the offer system 130 when the user 101
clicks on or selects the offer. In another example embodiment, the
user 101 is prompted to register with the offer system 130 when the
user 101 pays for the offer (not pictured in FIG. 3). In another
example embodiment, the user 101 is not required to log in or
register for an offer system 130 account. In this embodiment, the
methods described herein are performed for a "guest" user.
[0062] In an example embodiment, the user 101 may create the offer
system 130 account at any time prior to or while selecting, saving,
or paying for the offer. In an example embodiment, the user 101
accesses the offer system 130 via a website and the network 140. In
an example embodiment, the user 101 submits registration
information to the offer system 130, including, but not limited to,
name, address, phone number, e-mail address, and information for
one or more registered financial card accounts, including bank
account debit cards, credit cards, a loyalty rewards account card,
or other type of account that can be used to make a purchase (for
example, card type, card number, expiration date, security code,
and billing address). In an example embodiment, the user's offer
system 130 account information is saved in the data storage unit
137 and is accessible to the button rendering module 135. In
another example embodiment, the user 101 is not required to log
into and/or maintain an offer system 130 account. In this
embodiment, the offer system 130 maintains offers that may be
redeemed by any user.
[0063] In an example embodiment, the offer system 130 account is a
digital wallet account maintained by the offer system 130 or a
third party system. In another example embodiment, the user 101 may
use a smart phone application 125 to register with the offer system
130. In yet another example embodiment, the user 101 accesses the
offer system 130 via a smart phone application 125.
[0064] From block 340, the method 210 proceeds to block 360 in FIG.
3.
[0065] Returning to block 330 in FIG. 3, if the user 101 has an
offer system 130 account, the user 101 logs into the account in
block 350. In an example embodiment, the user's offer system 130
account information is saved in the user device 120 and the user
101 is automatically signed into the user's offer system 130
account. In another example embodiment, the user 101 is
automatically logged into the offer system 130 account using shared
login credentials. In yet another example embodiment, the user 101
was previously logged into the offer system 130 account and is not
required to login.
[0066] In block 360, the selected offer is saved in the user's 101
offer system 130 account. In an example embodiment, the offer is
saved in the data storage unit 137 and accessible by the button
rendering module 135. In an example embodiment, by selecting the
offer, the user 101 indicates a desire to save the offer in the
user's 101 account maintained by the offer system 130. In another
example embodiment, the user 101 can download, select, scan, or
otherwise capture the offer via the user device 120 and import the
offer specifics (such as merchant, product, value, redemption
rules, and other specifics) to the user device 120.
[0067] The method 210 then proceeds to block 220 in FIG. 2.
[0068] Returning to FIG. 2, in block 220, the user requests access
to a merchant application 125. In an example embodiment, the
merchant application 125 is a web page, a merchant shopping
service, or a stand-alone application 125 and the user 101 requests
access by opening the service, logging in, or otherwise initiating
the service.
[0069] In block 230, the user's 101 offer system 130 account status
is determined. In an example embodiment, the user 101 is logged
into the offer system 130 to perform the functions described
herein. In this embodiment, any offers saved in the user's 101
offer system 130 account can be reviewed and selected for rendering
on the control button. In another example embodiment, the user 101
is prompted to log into the user's 101 offer system 130 account. In
an example embodiment, determining the user's 101 offer system 130
account status comprises determining whether the user 101 has an
offer applicable to a transaction with the merchant (for example,
whether the redemption terms of the offer permit the offer to be
redeemed with any purchase with the merchant system 110). The
method for determining the user's 101 offer system 130 account
status is described in more detail hereinafter with reference to
the methods described in FIG. 4.
[0070] FIG. 4 is a block flow diagram depicting a method 230 for
determining the user's 101 offer system 130 account status, in
accordance with certain example embodiments, as referenced in block
230. The method 230 is described with reference to the components
illustrated in FIG. 1.
[0071] In block 410, the offer control module 123 initiates
authentication of the user's 101 offer system 130 account. In an
example embodiment, the user has previously logged into a
transferable and recognizable global account that is associated
with the merchant application 125. In this embodiment, the merchant
application 125 is associated with another web browser, so the
user's login information from one page is transferred to the
associated merchant application 125. In another example embodiment,
the user has previously logged into the merchant application 125,
and the user's login information was stored by the merchant
application 125 so that the user is not prompted to re-enter his
login information when returning to the web page. In yet another
example embodiment, the user logs into a system account so that
when the user enters a web page or application, the user's
registration information is known or provided to the merchant
application 125. In another example embodiment, the user's
registration information is known by the offer system 130, or the
user is prompted to log into the offer system 130 prior to entering
the merchant application 125. In an example embodiment, the user
101 is required to log into the offer system 130 account before the
methods described herein may be performed.
[0072] In an example embodiment, the offer control module 123
monitors for load event. In an example embodiment, the offer
control module 123 receives an indication whenever a webpage or an
application 125 page is loaded on the user device 120. In another
example embodiment, the offer control module 123 continuously
monitors or periodically monitors the user device to determine when
a load event occurs.
[0073] In block 420, the offer control module 123 communicates a
request to authenticate the user's 101 offer system 130 account to
the offer system 130. In an example embodiment, the request is
communicated to the button rendering module 135 resident on the
offer system 130. In an example embodiment, the request comprises
an identity of the merchant system 110 and an identity of the user
101. In another example embodiment, the offer control module 123
communicates these details in response to a request by the offer
system 130 or in multiple communications to the offer system
130.
[0074] In block 430, the offer system 130 receives the request to
authenticate the user's 101 offer system 130 account.
[0075] In block 440, the offer system 130 determines the user's 101
account status. In an example embodiment, the button rendering
module 135 cross-references the identity of the merchant system 110
transmitted in block 420 with the offer saved in the data storage
unit 137. In an example embodiment, one or more of the offers are
applicable to a transaction with a specific merchant system 110, as
defined by the terms and conditions of the offer redemption code.
The button rendering module 135 reviews the terms and conditions of
the offers and determines whether the offers are applicable to a
transaction with the merchant system 110.
[0076] In an example embodiment, the button rendering module 135
determines which of the offers applicable to a transaction with the
merchant system 110 can be applied. In an example embodiment, each
offer will have one or more structured rules or conditions that the
offer system 130 can understand without human intervention. These
rules include, but are not limited to, a merchant identification
(for example, $10 any purchase with Merchant X), a purchase
threshold (for example, receive $10 back on a single purchase of
more than $50 from the merchant system 110), a minimum number of
purchases from the merchant (for example, receive $10 back on your
tenth purchase from the merchant system 110), a time restriction
(for example, receive $10 back for a purchase on Wednesday), a
product or category restriction (for example, receive $10 back when
you purchase a specific product or a product from a specific
department), an expiration date, a product limitation, a user 101
limitation, and a limited number of redemptions. In an example
embodiment, these rules are set by merchant system 110 at the time
the redemption offer is created and reviewed by the offer system
130 before the offer is transmitted to the offer control module 123
and/or before offer redemption is applied.
[0077] In an example embodiment, the button rendering module 135
reviews the terms of the offer and the information from the request
for the user's 101 offer system 130 account status to determine
which of the offers are applicable to a transaction with the
merchant system 110. For example, the button rendering module 135
may determine if the user 101 has a global offer applicable to a
purchase with the merchant system 110 or an offer provided by the
offer system 130 applicable to a purchase with any merchant system
110. In an example embodiment, a global offer is an offer that that
may be applied to any purchase with a merchant system, for example
10% all items for sale by Merchant System A.
[0078] In another example embodiment, the button rendering module
135 reviews the redemption terms of the offer and provides
recommendations for offers that may be applicable if the user 101
performs additional action on the merchant application 125.
[0079] In block 450, the offer system 130 communicates the user's
101 account status to the offer control module 123. In an example
embodiment, the button rendering module 135 has identified an offer
applicable to a transaction with the merchant system 110 in block
440 and the offer system 130 communicates the offer to the offer
control module 123. In another example embodiment, the offer system
130 was unable to identify the user's 101 offer system 130 account
and the offer system 130 communicates a request to the offer
control module 123 to prompt the user 101 to log in. In another
example embodiment, the button rendering module 135 was unable to
identify an offer application to a transaction with the merchant
without receiving additional information such as items selected,
shipping information, and payment account information. In this
embodiment, the offer system 130 communicates a request for more
information to the offer control module. In another example
embodiment, the offer system 130 communicates an affirmative
account response to the offer control module 123. In another
example embodiment, the user 101 is not required to maintain or log
into an offer system 130 account. In this embodiment, the offer
system 130 will respond with offers available to any user 101,
including those who have not logged in or created an offer system
130 account.
[0080] In block 460, the offer control module 123 receives the
user's 101 offer system 130 account status from the offer system
130.
[0081] The method 230 then proceeds to block 240 in FIG. 2.
[0082] Returning to FIG. 2, in block 240, the offer control module
123 determines whether the user 101 is logged into the offer system
130. In an example embodiment, the offer control module 123
receives an indication from the offer system 130 in block 460 in
FIG. 4. In another example embodiment, block 230 may be performed
at any time prior to the rendering of an offer on the control
button.
[0083] If the user 101 is not logged into the offer system 130, the
method 200 proceeds to block 245. In block 245, the user 101 is
prompted to log into the offer system 130. In another example
embodiment, the user 101 is not required to log into and/or
maintain an offer system 130 account. In this embodiment, the offer
system 130 maintains offers that may be redeemed by any user and
the offer button 610 is rendered for the user 101 as a "guest"
user.
[0084] From block 245, the method 200 proceeds to block 250.
[0085] Returning to block 240, if the user 101 is logged into the
offer system 130, the method 200 proceeds to block 250.
[0086] In block 250, the merchant application 125 loads on the user
device 120.
[0087] In block 260, the offer button 610 is rendered on the
merchant application 125. In an example embodiment, the offer
button 610 is a button, link, or other control, such that selection
of the button comprises the activation of the matter the button
controls. For example, selection of the button on the web page
allows the user 101 to activate a further action controlled by the
button. The button is displayed as available or active for the user
101 to press or otherwise select the button to attempt to access
the content controlled by the button. In another example
embodiment, the button is displayed as a URL link in the text
displayed on the user interface 121 of the merchant application
125. The link is displayed a selectable by the user 101 so that the
user may click, press or otherwise select the link to access the
content controlled by the link. In another example embodiment, the
button is a tab displayed on the user interface 121 of the merchant
application 125 or website. The tab is displayed as selectable by
the user 101 so that the user may click, press or otherwise select
the tab to access content controlled by the tab.
[0088] In an example embodiment, the offer button 610 is rendered
to display the offer available for redemption by the user 101 for a
transaction with the merchant system 110. For example, the offer
button 610 can display an offer amount, the color or style of the
button can be changed to indicate an offer is applicable, the text
displayed on the button can be changed, the button can flash or
display animations, or other suitable indications of the available
offer.
[0089] In another example embodiment, the offer button 610 is
rendered to display an indication that an offer is available if the
user 101 performs an additional action. For example, the offer
button 610 may be rendered to display an indication that the user
101 has an offer for $10 off a $50 purchase or an indication that
if the user 101 selection $50 worth of goods/services, the $10
offer may be applied.
[0090] In block 270, the offer control module 123 monitors the
user's 101 interaction with the merchant application 125 to
determine whether a second or subsequent offer is available for
redemption. In an example embodiment, the offer control module 123
receives an indication whenever a page is loaded in the merchant
application 125 on the user device 120. In another example
embodiment, the offer control module 123 continuously monitors or
periodically monitors the application to determine when an action
is taken. In another example embodiment, the current state of the
user's shopping cart, registry, or wish list is monitored. In this
embodiment, any changes in the current state (for example, adding
or removing items) are determined. In another example embodiment,
the offer control module 123 monitors the user's 101 interaction
with the merchant application 125 and the current state of the
user's shopping cart, registry, or wish list. The method for
monitoring the user's 101 interaction with the merchant application
125 is described in more detail hereinafter with reference to the
methods described in FIG. 5.
[0091] FIG. 5 is a block flow diagram depicting a method 270 for
monitoring the user's 101 interaction with the merchant application
125, in accordance with certain example embodiments, as referenced
in block 270. The method 270 is described with reference to the
components illustrated in FIG. 1.
[0092] In block 510, the user 101 interacts with the merchant
application. In an example embodiment, the user 101 selects an item
to view more information, to view reviews, to view comparable
products, to add to a wish list/registry, to add to a shopping
basket, or to perform additional actions. In another example
embodiment, the user 101 has previously selected items to add to a
shopping basket and the user 101 selects to pay with a digital
wallet account or specified financial account. In yet another
example embodiment, the user 101 has entered shipping information,
deleted an item from the shopping basket, conducted a search, or
performed any action on the merchant application.
[0093] In block 520, the offer control module 123 receives a load
event for the user 101 action performed on the merchant
application. In an example embodiment, the load event for the user
101 action comprises an indication of the type of action taken (for
example, the user 101 has selected Item A to read additional
information about the product). In another example embodiment, the
load event comprises an identification of the merchant system 110
and an identification of the user 101.
[0094] In block 530, the offer control module 123 transmits the
load information and a query to the offer system 130 for offers
available based on the action performed by the user 101 on the
merchant application. In an example embodiment, the information is
communicated to the button rendering module 135 resident on the
offer system 130. In an example embodiment, the request comprises
an identity of the merchant system 110 and an identity of the user
101. In another example embodiment, the offer control module 123
communicates these details in response to a request by the offer
system 130 or in multiple communications to the offer system 130.
In an example embodiment, the request comprises a relevant
application state (for example, the contents of the user's 101
shopping cart). In yet another example embodiment, the request
comprises incremental actions or differences from the last
application state communicated to the offer system 130.
[0095] In block 540, the offer system 130 receives the load event
information and the query for available offers.
[0096] In block 550, the offer system 130 identifies the user's 101
offer system 130 account. In an example embodiment, the button
rendering module 135 references the identity of the user 101
transmitted in blocks 530 and/or 420. In an example embodiment, the
offer system 130 reviews or searches user accounts and identifies
the account associated with the identity of the user 101. In
another example embodiment, the offer system 130 reviews or
searches records maintained by the offer system 130 and identifies
records associated with the identity of the user 101. In another
example embodiment, the user 101 is not logged into an offer system
130 account and the offer system 130 identifies the user 101 as a
"guest." In yet another example embodiment, the user 101 is logged
into multiple offer system 130 accounts and the offer system 130
determines which account comprises the best available offers for
the user 101.
[0097] In block 560, the offer system 130 reads the offers
available for redemption by the user 101 based on the load event
information. In an example embodiment, the button rendering module
135 reviews the terms and conditions of the offers and determines
whether the offers are applicable based on the action taken by the
user 101 in the merchant application. For example, if the user 101
selected Product A to review additional information, the offer
system 130 will determine whether the user 101 has an offer
applicable to a purchase of Product A. In another example, if the
user 101 has added Product A to the user's 101 shopping basket, the
offer system 130 will determine whether the user 101 has an offer
applicable to the purchase of Product A or a purchase with the
merchant system 110 based on the total sales amount of the shopping
basket (for example, $10 off a $50 purchase).
[0098] In an example embodiment, the offer system 130 is able to
identify items in the shopping basket and/or items viewed on the
merchant application. In an example embodiment, the button
rendering module 135 identifies items from the load event
information transmitted by the offer control module 123. In another
example embodiment, the offer control module 123 may capture the
load event for a particular item on the merchant application and
then a load event for the shopping basket. The offer control module
123 may transmit the product identification information captured
from the item page on the merchant application page with the load
event information for the shopping basket. In another example
embodiment, the offer control module 123 reviews the user's 101
browser history or the load events for items viewed by the user 101
and transmit information regarding the items browsed with the load
event information. The button rendering module 135 may then
determine and identity of items based on the browser history. In
another example embodiment, the offer control module 123 may use
smart logic to otherwise determine the identity of the items and
transmit the identity with the load event information.
[0099] In an example embodiment, the button rendering module 135
determines if offer redemption codes are applicable to the action
taken by the user 101. In an example embodiment, the button
rendering module 135 cross-references the action taken by the user
101 or identity of the items with the offers saved in the data
storage unit 137. In an example embodiment, one or more of the
offers are applicable to a specific item, as defined by the terms
and conditions of the offer. The button rendering module 135
reviews the terms and conditions of the offers and determines
whether the offers are applicable to the item.
[0100] In an example embodiment, each offer will have one or more
structured rules or conditions that the offer system 130 can
understand without human intervention. These rules include, but are
not limited to, a purchase threshold (for example, receive $10 back
on a single purchase of more than $50 from the merchant system
110), a minimum number of purchases from the merchant (for example,
receive $10 back on your tenth purchase from the merchant system
110), a time restriction (for example, receive $10 back for a
purchase on Wednesday), a product or category restriction (for
example, receive $10 back when you purchase a specific product or a
product from a specific department), an expiration date, a product
limitation, a user 101 limitation, and a limited number of
redemptions. In an example embodiment, these rules are set by
merchant system 110 at the time the redemption offer is created and
reviewed by the offer system 130 before the offer is transmitted or
applied. In another example embodiment, each offer will have no
rules or conditions associated with it. For example, an offer for
$10 off any purchase with any merchant.
[0101] Tn an example embodiment, the offer control module 123
reviews the terms of the offer and the load event information to
determine which of the offers is applicable to the action taken by
the user 101. In this embodiment, the offer system 130 transmits
the offers available for redemption by the user 101 to the offer
control module 123, and the offer control module 123 reviews the
terms of the offer to determine which of the offers is applicable
to the action taken by the user 101. In an example embodiment, the
offer control module 123 makes performs the function of the offer
system 130 previously described.
[0102] In another example embodiment, the offer control module 123
reviews the redemption terms of the offer and provides
recommendations for offers that may be applicable if the user 101
performs an additional action (for example, adds $5 more to the
user's 101 shopping basket). In this embodiment, the offer system
130 transmits the offers available for redemption by the user 101
to the offer control module 123, and the offer control module 123
reviews the terms of the offer to determine which of the offers is
applicable to the action taken by the user 101. The offer control
module 123 also determines which offers, if redeemed, would provide
the user 101 with the greatest savings. The offer control module
123 determines what additional action must be taken by the user 101
to satisfy the terms of the offer that would provide the user 102
with the greatest savings and notifies the user 101 of the
additional action required.
[0103] Tn block 570, the offer system 130 communicates the
available offers to the offer control module 123. In an example
embodiment, the offer system 130 transmits the offer that provides
the greatest savings to the user 101. In another example
embodiment, the offer system 130 transmits multiple offers and
provides an indication of the best savings for the user 101. In yet
another example embodiment, the offer control module 123 determines
which offer provides the greatest savings to the user 101.
[0104] In block 580, the offer control module 123 receives the
offers.
[0105] The method 270 then proceeds to block 280 in FIG. 2.
[0106] Returning to FIG. 2, in block 280, the offer button 610 is
rendered to display an offer value applicable to the current state
of the user's 101 interaction with the merchant application 125.
For example, if the user 101 has selected an item to review and the
user 101 has a $5 off offer for that item, the offer button 610 is
rendered to display an indication of the $5 off offer.
[0107] In an example embodiment, the offer button 610 can display
an offer amount, the color or style of the button can be changed to
indicate an offer is applicable, the text displayed on the button
can be changed, the button can flash or display animations, or
other suitable indications of the available offer. In an example
embodiment, the text displayed corresponds to a description or
amount of the offer received from the offer system 130 in block 580
of FIG. 5. In this embodiment, the offer button 610 is tied to the
corresponding offer, such that if the user 101 clicks on the offer
button 601, the corresponding offer is applied to the user's 101
transaction with the merchant, so long as the transaction continues
to meet the terms of the offer.
[0108] In another example embodiment, the offer button 610 is
rendered to display an indication that an offer is available if the
user 101 performs an additional action. For example, the offer
button 610 may be rendered to display an indication that the user
101 has an offer for $10 off a $50 purchase or an indication that
if the user 101 selection $50 worth of goods/services, the $10
offer may be applied.
[0109] In an example embodiment, the offer button 610 is tied to
the corresponding offer. In this embodiment, the offer cannot be
applied until the user 101 takes additional action to fulfill the
terms of the offer. In an example embodiment, if the user 101
clicks on or otherwise selects the offer button 610 before
performing the additional action required to fulfill the terms of
the offer, the offer will not be applied to the transaction. In
another example embodiment, the user 101 will be notified that the
offer cannot yet be applied when the offer button 610 is selected.
For example, the text of the offer button 610 may be changed to
notify the user 101 that the offer cannot yet be applied, a pop-up
window or other alert may be displayed on the user interface 121 to
notify the user 101, or the offer button 610 may be grayed out or
otherwise unselectable until the user 101 takes the additional
action required to fulfill the terms of the offer.
[0110] In an example embodiment, once the redemption terms of the
offer are satisfied and the user 101 selects the offer button 610
to apply the offer to the transaction, the offer control module 123
applies the offer to the transaction with the merchant. In an
example embodiment, the complete terms of the offer were
transmitted by the offer system 130 to the offer control module 123
in block 570 of FIG. 5. In this embodiment, the offer control
module 123 notifies the merchant system 110 of the offer and it is
applied to the transaction with the merchant.
[0111] In another example embodiment, the user 101 is not required
to press or otherwise select the offer button 610 to apply the
offer. In this embodiment, the offer control module 123
automatically applies the offer, once the terms of the offer are
satisfied without the user 101 having to indicate a desire to apply
the offer.
[0112] In yet another example embodiment, once the redemption terms
of the offer are satisfied, the offer control module 123 notifies
the offer system 130, and the offer system 130 communicates the
terms of the offer to the merchant system 110 to redeem the
offer.
[0113] In block 290, the user 101 initiates further action on the
merchant application 125 and the methods described in blocks 270
and 280 are repeated as necessary for each action the user 101
performs.
Other Example Embodiments
[0114] FIG. 9 depicts a computing machine 2000 and a module 2050 in
accordance with certain example embodiments. The computing machine
2000 may correspond to any of the various computers, servers,
mobile devices, embedded systems, or computing systems presented
herein. The module 2050 may comprise one or more hardware or
software elements configured to facilitate the computing machine
2000 in performing the various methods and processing functions
presented herein. The computing machine 2000 may include various
internal or attached components such as a processor 2010, system
bus 2020, system memory 2030, storage media 2040, input/output
interface 2060, and a network interface 2070 for communicating with
a network 2080.
[0115] The computing machine 2000 may be implemented as a
conventional computer system, an embedded controller, a laptop, a
server, a mobile device, a smartphone, a set-top box, a kiosk, a
vehicular information system, one more processors associated with a
television, a customized machine, any other hardware platform, or
any combination or multiplicity thereof The computing machine 2000
may be a distributed system configured to function using multiple
computing machines interconnected via a data network or bus
system.
[0116] The processor 2010 may be configured to execute code or
instructions to perform the operations and functionality described
herein, manage request flow and address mappings, and to perform
calculations and generate commands. The processor 2010 may be
configured to monitor and control the operation of the components
in the computing machine 2000. The processor 2010 may be a general
purpose processor, a processor core, a multiprocessor, a
reconfigurable processor, a microcontroller, a digital signal
processor ("DSP"), an application specific integrated circuit
("ASIC"), a graphics processing unit ("GPU"), a field programmable
gate array ("FPGA"), a programmable logic device ("PLD"), a
controller, a state machine, gated logic, discrete hardware
components, any other processing unit, or any combination or
multiplicity thereof. The processor 2010 may be a single processing
unit, multiple processing units, a single processing core, multiple
processing cores, special purpose processing cores, co-processors,
or any combination thereof. According to certain embodiments, the
processor 2010 along with other components of the computing machine
2000 may be a virtualized computing machine executing within one or
more other computing machines.
[0117] The system memory 2030 may include non-volatile memories
such as read-only memory ("ROM"), programmable read-only memory
("PROM"), erasable programmable read-only memory ("EPROM"), flash
memory, or any other device capable of storing program instructions
or data with or without applied power. The system memory 2030 may
also include volatile memories such as random access memory
("RAM"), static random access memory ("SRAM"), dynamic random
access memory ("DRAM"), and synchronous dynamic random access
memory ("SDRAM"). Other types of RAM also may be used to implement
the system memory 2030. The system memory 2030 may be implemented
using a single memory module or multiple memory modules. While the
system memory 2030 is depicted as being part of the computing
machine 2000, one skilled in the art will recognize that the system
memory 2030 may be separate from the computing machine 2000 without
departing from the scope of the subject technology. It should also
be appreciated that the system memory 2030 may include, or operate
in conjunction with, a non-volatile storage device such as the
storage media 2040.
[0118] The storage media 2040 may include a hard disk, a floppy
disk, a compact disc read only memory ("CD-ROM"), a digital
versatile disc ("DVD"), a Blu-ray disc, a magnetic tape, a flash
memory, other non-volatile memory device, a solid state drive
("SSD"), any magnetic storage device, any optical storage device,
any electrical storage device, any semiconductor storage device,
any physical-based storage device, any other data storage device,
or any combination or multiplicity thereof. The storage media 2040
may store one or more operating systems, application programs and
program modules such as module 2050, data, or any other
information. The storage media 2040 may be part of, or connected
to, the computing machine 2000. The storage media 2040 may also be
part of one or more other computing machines that are in
communication with the computing machine 2000 such as servers,
database servers, cloud storage, network attached storage, and so
forth.
[0119] The module 2050 may comprise one or more hardware or
software elements configured to facilitate the computing machine
2000 with performing the various methods and processing functions
presented herein. The module 2050 may include one or more sequences
of instructions stored as software or firmware in association with
the system memory 2030, the storage media 2040, or both. The
storage media 2040 may therefore represent examples of machine or
computer readable media on which instructions or code may be stored
for execution by the processor 2010. Machine or computer readable
media may generally refer to any medium or media used to provide
instructions to the processor 2010. Such machine or computer
readable media associated with the module 2050 may comprise a
computer software product. It should be appreciated that a computer
software product comprising the module 2050 may also be associated
with one or more processes or methods for delivering the module
2050 to the computing machine 2000 via the network 2080, any
signal-bearing medium, or any other communication or delivery
technology. The module 2050 may also comprise hardware circuits or
information for configuring hardware circuits such as microcode or
configuration information for an FPGA or other PLD.
[0120] The input/output ("I/O") interface 2060 may be configured to
couple to one or more external devices, to receive data from the
one or more external devices, and to send data to the one or more
external devices. Such external devices along with the various
internal devices may also be known as peripheral devices. The I/O
interface 2060 may include both electrical and physical connections
for operably coupling the various peripheral devices to the
computing machine 2000 or the processor 2010. The I/O interface
2060 may be configured to communicate data, addresses, and control
signals between the peripheral devices, the computing machine 2000,
or the processor 2010. The I/O interface 2060 may be configured to
implement any standard interface, such as small computer system
interface ("SCSI"), serial-attached SCSI ("SAS"), fiber channel,
peripheral component interconnect ("PCI"), PCI express (PCIe),
serial bus, parallel bus, advanced technology attached ("ATA"),
serial ATA ("SATA"), universal serial bus ("USB"), Thunderbolt,
FireWire, various video buses, and the like. The I/O interface 2060
may be configured to implement only one interface or bus
technology. Alternatively, the I/O interface 2060 may be configured
to implement multiple interfaces or bus technologies. The I/O
interface 2060 may be configured as part of, all of, or to operate
in conjunction with, the system bus 2020. The I/O interface 2060
may include one or more buffers for buffering transmissions between
one or more external devices, internal devices, the computing
machine 2000, or the processor 2010.
[0121] The I/O interface 2060 may couple the computing machine 2000
to various input devices including mice, touch-screens, scanners,
electronic digitizers, sensors, receivers, touchpads, trackballs,
cameras, microphones, keyboards, any other pointing devices, or any
combinations thereof The I/O interface 2060 may couple the
computing machine 2000 to various output devices including video
displays, speakers, printers, projectors, tactile feedback devices,
automation control, robotic components, actuators, motors, fans,
solenoids, valves, pumps, transmitters, signal emitters, lights,
and so forth.
[0122] The computing machine 2000 may operate in a networked
environment using logical connections through the network interface
2070 to one or more other systems or computing machines across the
network 2080. The network 2080 may include wide area networks
(WAN), local area networks (LAN), intranets, the Internet, wireless
access networks, wired networks, mobile networks, telephone
networks, optical networks, or combinations thereof. The network
2080 may be packet switched, circuit switched, of any topology, and
may use any communication protocol. Communication links within the
network 2080 may involve various digital or an analog communication
media such as fiber optic cables, free-space optics, waveguides,
electrical conductors, wireless links, antennas, radio-frequency
communications, and so forth.
[0123] The processor 2010 may be connected to the other elements of
the computing machine 2000 or the various peripherals discussed
herein through the system bus 2020. It should be appreciated that
the system bus 2020 may be within the processor 2010, outside the
processor 2010, or both. According to some embodiments, any of the
processor 2010, the other elements of the computing machine 2000,
or the various peripherals discussed herein may be integrated into
a single device such as a system on chip ("SOC"), system on package
("SOP"), or ASIC device.
[0124] In situations in which the systems discussed here collect
personal information about users, or may make use of personal
information, the users may be provided with an opportunity or
option to control whether programs or features collect user
information (e.g., information about a user's social network,
social actions or activities, profession, a user's preferences, or
a user's current location), or to control whether and/or how to
receive content from the content server that may be more relevant
to the user. In addition, certain data may be treated in one or
more ways before it is stored or used, so that personally
identifiable information is removed. For example, a user's identity
may be treated so that no personally identifiable information can
be determined for the user, or a user's geographic location may be
generalized where location information is obtained (such as to a
city, ZIP code, or state level), so that a particular location of a
user cannot be determined. Thus, the user may have control over how
information is collected about the user and used by a content
server.
[0125] Embodiments may comprise a computer program that embodies
the functions described and illustrated herein, wherein the
computer program is implemented in a computer system that comprises
instructions stored in a machine-readable medium and a processor
that executes the instructions. However, it should be apparent that
there could be many different ways of implementing embodiments in
computer programming, and the embodiments should not be construed
as limited to any one set of computer program instructions.
Further, a skilled programmer would be able to write such a
computer program to implement an embodiment of the disclosed
embodiments based on the appended flow charts and associated
description in the application text. Therefore, disclosure of a
particular set of program code instructions is not considered
necessary for an adequate understanding of how to make and use
embodiments. Further, those skilled in the art will appreciate that
one or more aspects of embodiments described herein may be
performed by hardware, software, or a combination thereof, as may
be embodied in one or more computing systems. Moreover, any
reference to an act being performed by a computer should not be
construed as being performed by a single computer as more than one
computer may perform the act.
[0126] The example embodiments described herein can be used with
computer hardware and software that perform the methods and
processing functions described herein. The systems, methods, and
procedures described herein can be embodied in a programmable
computer, computer-executable software, or digital circuitry. The
software can be stored on computer-readable media. For example,
computer-readable media can include a floppy disk, RAM, ROM, hard
disk, removable media, flash memory, memory stick, optical media,
magneto-optical media, CD-ROM, etc. Digital circuitry can include
integrated circuits, gate arrays, building block logic, field
programmable gate arrays (FPGA), etc.
[0127] The example systems, methods, and acts described in the
embodiments presented previously are illustrative, and, in
alternative embodiments, certain acts can be performed in a
different order, in parallel with one another, omitted entirely,
and/or combined between different example embodiments, and/or
certain additional acts can be performed, without departing from
the scope and spirit of various embodiments. Accordingly, such
alternative embodiments arc included in the invention claimed
herein.
[0128] Although specific embodiments have been described above in
detail, the description is merely for purposes of illustration. It
should be appreciated, therefore, that many aspects described above
are not intended as required or essential elements unless
explicitly stated otherwise. Modifications of, and equivalent
components or acts corresponding to, the disclosed aspects of the
example embodiments, in addition to those described above, can be
made by a person of ordinary skill in the art, having the benefit
of the present disclosure, without departing from the spirit and
scope of embodiments defined in the following claims, the scope of
which is to be accorded the broadest interpretation so as to
encompass such modifications and equivalent structures.
* * * * *