US20140219118A1 - Systems and methods for display of supplemental content responsive to location - Google Patents
Systems and methods for display of supplemental content responsive to location Download PDFInfo
- Publication number
- US20140219118A1 US20140219118A1 US14/100,699 US201314100699A US2014219118A1 US 20140219118 A1 US20140219118 A1 US 20140219118A1 US 201314100699 A US201314100699 A US 201314100699A US 2014219118 A1 US2014219118 A1 US 2014219118A1
- Authority
- US
- United States
- Prior art keywords
- client device
- pss
- beacon
- user
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0261—Targeted advertisements based on user location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/023—Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Definitions
- the present disclosure provides a system and method for providing a user with supplemental content based on the user's preferences and location. Furthermore, the disclosure provides a computer program that allows users to discover the latest trends, discover new stores, and organize their discoveries from a platform that is accessible from a mobile device or computer.
- the system provides the user with a platform to store, organize, and retrieve preferences.
- the preferences may include preferred styles, looks, and retailers. Saving the preferences allows the user to create a customized catalog of styles, offers, and content.
- the system includes one or more beacons that enables the detection of a device's location. Based on the location, the system may use the user's stored preferences to provide the user with supplemental content. Because the system can determine the user's location, the system can determine what merchandise the user is most likely viewing. Accordingly, the system can provide the customer with such supplemental content as matching accessories, time sensitive discounts on the item, or additional information about the item.
- a method for determining a micro-location of a device includes receiving, by a server, a data packet generated by one of a plurality of beacons.
- the data packet is transmitted from the one of a plurality of beacons to a client device using a first wireless standard and forwarded to the server by the client device using a second wireless standard.
- the method also includes determining, by the server, which one of the plurality of beacons generated the data packet and determining the micro-location of the one of the plurality of beacons that generated the data packet.
- the server then associates the micro-location of the one of the plurality of beacons that generated the data packet with the client device.
- the method further includes determining a signal strength of a signal used to transmit the first wireless standard and refining the micro-location associated with the client device responsive to the determined signal strength of the signal used to transmit the first wireless standard.
- the method can also include determining if the client device is within a logical radius of the one of the plurality of beacons that generated the data packet responsive to the determined signal strength of the signal used to transmit the first wireless standard.
- the method includes transmitting content to the client device using the second wireless standard.
- the content that is transmitted to the client device can be selected responsive to the micro-location associated with the client device.
- the method can also include transmitting a second data packet to the one of the plurality of beacons that generated the first data packet.
- the second data packet is transmitted to the client device using the second wireless standard and forwarded to the one of the plurality of beacons that generated the data packet by the client device using the first wireless standard.
- the first wireless standard is the same as the second wireless standard.
- the wireless standards can include Bluetooth low energy or the Institute of Electrical and Electronics Engineers' (IEEE) 802.11 standard.
- a system for determining a micro-location of a device includes a processor coupled to a computer readable medium storing processor executable instructions that when executed by the processor causes the processor to receive a data packet generated by one of a plurality of beacons.
- the data packet is transmitted from the one of a plurality of beacons to a client device using a first wireless standard and forwarded to the server by the client device using a second wireless standard.
- the processor also determines which one of the plurality of beacons generated the data packet, and determines the micro-location of the one of the plurality of beacons that generated the data packet.
- the processor associates the micro-location of the one of the plurality of beacons that generated the data packet with the client device.
- the system may also be configured to determine a signal strength of a signal used to transmit the first wireless standard and then refine the micro-location associated with the client device responsive to the determined signal strength of the signal used to transmit the first wireless standard.
- the system is configured to determine if the client device is within a logical radius of the one of the plurality of beacons that generated the data packet responsive to the determined signal strength of the signal used to transmit the first wireless standard.
- the system can be configured to transmit content to the client device using the second wireless standard.
- the system transmits a second data packet to the one of the plurality of beacons that generated the data packet.
- the second data packet is transmitted to the client device using the second wireless standard and forwarded to the one of the plurality of beacons that generated the data packet by the client device using the first wireless standard.
- the first wireless standard is the same as the second wireless standard.
- the wireless standard can be Bluetooth low energy or the Institute of Electrical and Electronics Engineers' (IEEE) 802.11 standard.
- FIG. 1A is a block diagram depicting an embodiment of a network environment comprising client devices in communication with a server device, according to one implementation of the disclosure
- FIG. 1B is a block diagram depicting a cloud computing environment comprising a client device in communication with a cloud service providers, according to one implementation of the disclosure
- FIGS. 1C and 1D are block diagrams depicting embodiments of computing devices useful in connection with the methods and systems described herein, according to one implementation of the disclosure
- FIG. 2A is a block diagram of a system for delivering content responsive to a client's location, according to one implementation of the disclosure
- FIG. 2B is a block diagram illustrating the example connections between some of the components of the system of FIG. 2A , according to one implementation of the disclosure;
- FIG. 3A is a flow chart depicting a method for determining the location of a client in a system similar to the system of FIG. 2A and providing the client with supplemental content, according to one implementation of the disclosure;
- FIG. 3B is an example chart flow of a method for determining the location of a client device, according to one implementation of the disclosure
- FIG. 3C is a flow chart of an example method 370 for encrypting data transmissions when determining the micro-location of a client device, according to one implementation of the disclosure
- FIG. 4A is a schematic illustrating an example smart store using the system of FIG. 2A , according to one implementation of the disclosure
- FIG. 4B is a flow chart illustrating an example method for determining the type of supplemental content to provide to the user in a system similar to the system of FIG. 2A , according to one implementation of the disclosure;
- FIG. 5A-5F is an exemplary implementation of a user interface for interfacing with the System of FIG. 2A , according to one implementation of the disclosure;
- FIG. 6 is a flow chart of the hierarchical relationship between the authorized user types of the system of FIG. 2A , according to one implementation of the disclosure;
- FIG. 7 is a flow chart of an example method for creating, managing, and delivering supplemental content with the system of FIG. 2A , according to one implementation of the disclosure;
- FIG. 8 is a schematic illustrating an example environment for conducting an ad auction using the System of FIG. 2A , according to one implementation of the disclosure
- FIG. 9 is a flow chart illustrating a method for conducting an ad auction using the System of FIG. 2A , according to one implementation of the disclosure.
- Section A describes a network environment and computing environment which may be useful for practicing embodiments described herein.
- Section B describes embodiments of systems and methods for providing supplemental content to a user based on user preferences and user location.
- Section C describes an exemplary implementation of the system and methods for communicating with the beacons.
- Section D describes embodiments of a smart store.
- Section E describes an exemplary implementation of the system.
- Section F describes an exemplary implementation of a user interface for interacting with a system for providing supplemental content to a user based on user preferences and user location.
- Section G describes an exemplary implementation of a content provider interface and system management interface for managing supplemental content and parameters of a location system.
- Section H describes an exemplary embodiment of an ad auction.
- FIG. 1A an embodiment of a network environment is depicted.
- the network environment includes one or more client devices 102 a - 102 n (also generally referred to as local machine(s) 102 , client(s) 102 , client node(s) 102 , client machine(s) 102 , client computer(s) 102 , client device(s) 102 , endpoint(s) 102 , or endpoint node(s) 102 ) in communication with one or more servers 106 a - 106 n (also generally referred to as server(s) 106 , node 106 , or remote machine(s) 106 ) via one or more networks 104 .
- a client device 102 has the capacity to function as both a client node seeking access to resources provided by a server and as a server providing access to hosted resources for other client devices 102 a - 102 n.
- FIG. 1A shows a network 104 between the client devices 102 and the servers 106
- the client devices 102 and the servers 106 may be on the same network 104 .
- a network 104 ′ (not shown) may be a private network and a network 104 may be a public network.
- a network 104 may be a private network and a network 104 ′ a public network.
- networks 104 and 104 ′ may both be private networks.
- the network 104 may be connected via wired or wireless links.
- Wired links may include Digital Subscriber Line (DSL), coaxial cable lines, or optical fiber lines.
- the wireless links may include BLUETOOTH, Wi-Fi, Worldwide Interoperability for Microwave Access (WiMAX), an infrared channel or satellite band.
- the wireless links may also include any cellular network standards used to communicate among mobile devices, including standards that qualify as 1G, 2G, 3G, or 4G.
- the network standards may qualify as one or more generation of mobile telecommunication standards by fulfilling a specification or standards such as the specifications maintained by International Telecommunication Union.
- the 3G standards may correspond to the International Mobile Telecommunications-2000 (IMT-2000) specification, and the 4G standards may correspond to the International Mobile Telecommunications Advanced (IMT-Advanced) specification.
- cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, LTE Advanced, Mobile WiMAX, and WiMAX-Advanced.
- Cellular network standards may use various channel access methods e.g. FDMA, TDMA, CDMA, or SDMA.
- different types of data may be transmitted via different links and standards.
- the same types of data may be transmitted via different links and standards.
- the network 104 may be any type and/or form of network.
- the geographical scope of the network 104 may vary widely and the network 104 can be a body area network (BAN), a personal area network (PAN), a local-area network (LAN), e.g. Intranet, a metropolitan area network (MAN), a wide area network (WAN), or the Internet.
- the topology of the network 104 may be of any form and may include, e.g., any of the following: point-to-point, bus, star, ring, mesh, or tree.
- the network 104 may be an overlay network which is virtual and sits on top of one or more layers of other networks 104 ′.
- the network 104 may be of any such network topology as known to those ordinarily skilled in the art capable of supporting the operations described herein.
- the network 104 may utilize different techniques and layers or stacks of protocols, including, e.g., the Ethernet protocol, the internet protocol suite (TCP/IP), the ATM (Asynchronous Transfer Mode) technique, the SONET (Synchronous Optical Networking) protocol, or the SDH (Synchronous Digital Hierarchy) protocol.
- the TCP/IP internet protocol suite may include application layer, transport layer, internet layer (including, e.g., IPv6), or the link layer.
- the network 104 may be a type of a broadcast network, a telecommunications network, a data communication network, or a computer network.
- the system may include multiple, logically-grouped servers 106 .
- the logical group of servers may be referred to as a server farm 38 or a machine farm 38 .
- the servers 106 may be geographically dispersed.
- a machine farm 38 may be administered as a single entity.
- the machine farm 38 includes a plurality of machine farms 38 .
- the servers 106 within each machine farm 38 can be heterogeneous—one or more of the servers 106 or machines 106 can operate according to one type of operating system platform (e.g., WINDOWS NT, manufactured by Microsoft Corp. of Redmond, Wash.), while one or more of the other servers 106 can operate on according to another type of operating system platform (e.g., Unix, Linux, or Mac OS X).
- operating system platform e.g., Unix, Linux, or Mac OS X
- servers 106 in the machine farm 38 may be stored in high-density rack systems, along with associated storage systems, and located in an enterprise data center. In this embodiment, consolidating the servers 106 in this way may improve system manageability, data security, the physical security of the system, and system performance by locating servers 106 and high performance storage systems on localized high performance networks. Centralizing the servers 106 and storage systems and coupling them with advanced system management tools allows more efficient use of server resources.
- the servers 106 of each machine farm 38 do not need to be physically proximate to another server 106 in the same machine farm 38 .
- the group of servers 106 logically grouped as a machine farm 38 may be interconnected using a wide-area network (WAN) connection or a metropolitan-area network (MAN) connection.
- WAN wide-area network
- MAN metropolitan-area network
- a machine farm 38 may include servers 106 physically located in different continents or different regions of a continent, country, state, city, campus, or room. Data transmission speeds between servers 106 in the machine farm 38 can be increased if the servers 106 are connected using a local-area network (LAN) connection or some form of direct connection.
- LAN local-area network
- a heterogeneous machine farm 38 may include one or more servers 106 operating according to a type of operating system, while one or more other servers 106 execute one or more types of hypervisors rather than operating systems.
- hypervisors may be used to emulate virtual hardware, partition physical hardware, virtualize physical hardware, and execute virtual machines that provide access to computing environments, allowing multiple operating systems to run concurrently on a host computer.
- Native hypervisors may run directly on the host computer.
- Hypervisors may include VMware ESX/ESXi, manufactured by VMWare, Inc., of Palo Alto, Calif.; the Xen hypervisor, an open source product whose development is overseen by Citrix Systems, Inc.; the HYPER-V hypervisors provided by Microsoft or others.
- Hosted hypervisors may run within an operating system on a second software level. Examples of hosted hypervisors may include VMware Workstation and VIRTUALBOX.
- Management of the machine farm 38 may be de-centralized.
- one or more servers 106 may comprise components, subsystems and modules to support one or more management services for the machine farm 38 .
- one or more servers 106 provide functionality for management of dynamic data, including techniques for handling failover, data replication, and increasing the robustness of the machine farm 38 .
- Each server 106 may communicate with a persistent store and, in some embodiments, with a dynamic store.
- Server 106 may be a file server, application server, web server, proxy server, appliance, network appliance, gateway, gateway server, virtualization server, deployment server, SSL VPN server, or firewall.
- the server 106 may be referred to as a remote machine or a node.
- a plurality of nodes 290 may be in the path between any two communicating servers.
- a cloud computing environment may provide client device 102 with one or more resources provided by a network environment.
- the cloud computing environment may include one or more client devices 102 a - 102 n , in communication with the cloud 108 over one or more networks 104 .
- Client devices 102 may include, e.g., thick clients, thin clients, and zero clients.
- a thick client may provide at least some functionality even when disconnected from the cloud 108 or servers 106 .
- a thin client or a zero client may depend on the connection to the cloud 108 or server 106 to provide functionality.
- a zero client may depend on the cloud 108 or other networks 104 or servers 106 to retrieve operating system data for the client device.
- the cloud 108 may include back end platforms, e.g., servers 106 , storage, server farms or data centers.
- the cloud 108 may be public, private, or hybrid.
- Public clouds may include public servers 106 that are maintained by third parties to the client devices 102 or the owners of the clients.
- the servers 106 may be located off-site in remote geographical locations as disclosed above or otherwise.
- Public clouds may be connected to the servers 106 over a public network.
- Private clouds may include private servers 106 that are physically maintained by client devices 102 or owners of clients.
- Private clouds may be connected to the servers 106 over a private network 104 .
- Hybrid clouds 108 may include both the private and public networks 104 and servers 106 .
- the cloud 108 may also include a cloud based delivery, e.g. Software as a Service (SaaS) 110 , Platform as a Service (PaaS) 112 , and Infrastructure as a Service (IaaS) 114 .
- SaaS Software as a Service
- PaaS Platform as a Service
- IaaS Infrastructure as a Service
- IaaS may refer to a user renting the use of infrastructure resources that are needed during a specified time period.
- IaaS providers may offer storage, networking, servers or virtualization resources from large pools, allowing the users to quickly scale up by accessing more resources as needed. Examples of IaaS include AMAZON WEB SERVICES provided by Amazon.com, Inc., of Seattle, Wash., RACKSPACE CLOUD provided by Rackspace US, Inc., of San Antonio, Tex., Google Compute Engine provided by Google Inc.
- PaaS providers may offer functionality provided by IaaS, including, e.g., storage, networking, servers or virtualization, as well as additional resources such as, e.g., the operating system, middleware, or runtime resources. Examples of PaaS include WINDOWS AZURE provided by Microsoft Corporation of Redmond, Wash., Google App Engine provided by Google Inc., and HEROKU provided by Heroku, Inc. of San Francisco, Calif. SaaS providers may offer the resources that PaaS provides, including storage, networking, servers, virtualization, operating system, middleware, or runtime resources.
- SaaS providers may offer additional resources including, e.g., data and application resources.
- SaaS include GOOGLE APPS provided by Google Inc., SALESFORCE provided by Salesforce.com Inc. of San Francisco, Calif., or OFFICE 365 provided by Microsoft Corporation.
- Examples of SaaS may also include data storage providers, e.g. DROPBOX provided by Dropbox, Inc. of San Francisco, Calif., Microsoft SKYDRIVE provided by Microsoft Corporation, Google Drive provided by Google Inc., or Apple ICLOUD provided by Apple Inc. of Cupertino, Calif.
- Client devices 102 may access IaaS resources with one or more IaaS standards, including, e.g., Amazon Elastic Compute Cloud (EC2), Open Cloud Computing Interface (OCCI), Cloud Infrastructure Management Interface (CIMI), or OpenStack standards.
- IaaS standards may allow clients access to resources over HTTP, and may use Representational State Transfer (REST) protocol or Simple Object Access Protocol (SOAP).
- REST Representational State Transfer
- SOAP Simple Object Access Protocol
- Client devices 102 may access PaaS resources with different PaaS interfaces.
- PaaS interfaces use HTTP packages, standard Java APIs, JavaMail API, Java Data Objects (JDO), Java Persistence API (JPA), Python APIs, web integration APIs for different programming languages including, e.g., Rack for Ruby, WSGI for Python, or PSGI for Perl, or other APIs that may be built on REST, HTTP, XML, or other protocols.
- Client devices 102 may access SaaS resources through the use of web-based user interfaces, provided by a web browser (e.g. GOOGLE CHROME, Microsoft INTERNET EXPLORER, or Mozilla Firefox provided by Mozilla Foundation of Mountain View, Calif.).
- Client devices 102 may also access SaaS resources through smartphone or tablet applications, including, e.g., Salesforce Sales Cloud, or Google Drive app. Client devices 102 may also access SaaS resources through the client operating system, including, e.g., Windows file system for DROPBOX.
- client operating system including, e.g., Windows file system for DROPBOX.
- access to IaaS, PaaS, or SaaS resources may be authenticated.
- a server or authentication server may authenticate a user via security certificates, HTTPS, or API keys.
- API keys may include various encryption standards such as, e.g., Advanced Encryption Standard (AES).
- Data resources may be sent over Transport Layer Security (TLS) or Secure Sockets Layer (SSL).
- TLS Transport Layer Security
- SSL Secure Sockets Layer
- the client device 102 and server 106 may be deployed as and/or executed on any type and form of computing device, e.g. a computer, network device or appliance capable of communicating on any type and form of network and performing the operations described herein.
- FIGS. 1C and 1D depict block diagrams of a computing device 100 useful for practicing an embodiment of the client device 102 or a server 106 .
- each computing device 100 includes a central processing unit 121 , and a main memory unit 122 .
- main memory unit 122 main memory unit
- a computing device 100 may include a storage device 128 , an installation device 116 , a network interface 118 , an I/O controller 123 , display devices 124 a - 124 n , a keyboard 126 and a pointing device 127 , e.g. a mouse.
- the storage device 128 may include, without limitation, an operating system, software, and a software of a Pinpoint System Server 120 .
- each computing device 100 may also include additional optional elements, e.g. a memory port 103 , a bridge 170 , one or more input/output devices 130 a - 130 n (generally referred to using reference numeral 130 ), and a cache memory 140 in communication with the central processing unit 121 .
- the central processing unit 121 is any logic circuitry that responds to and processes instructions fetched from the main memory unit 122 .
- the central processing unit 121 is provided by a microprocessor unit, e.g.: those manufactured by Intel Corporation of Mountain View, Calif.; those manufactured by Motorola Corporation of Schaumburg, Ill.; the ARM processor and TEGRA system on a chip (SoC) manufactured by Nvidia of Santa Clara, Calif.; the POWER7 processor, those manufactured by International Business Machines of White Plains, N.Y.; or those manufactured by Advanced Micro Devices of Sunnyvale, Calif.
- the computing device 100 may be based on any of these processors, or any other processor capable of operating as described herein.
- the central processing unit 121 may utilize instruction level parallelism, thread level parallelism, different levels of cache, and multi-core processors.
- a multi-core processor may include two or more processing units on a single computing component. Examples of a multi-core processors include the AMD PHENOM IIX2, INTEL CORE i5 and INTEL CORE i7.
- Main memory unit 122 may include one or more memory chips capable of storing data and allowing any storage location to be directly accessed by the microprocessor 121 .
- Main memory unit 122 may be volatile and faster than storage 128 memory.
- Main memory units 122 may be Dynamic random access memory (DRAM) or any variants, including static random access memory (SRAM), Burst SRAM or SynchBurst SRAM (BSRAM), Fast Page Mode DRAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended Data Output RAM (EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extended Data Output DRAM (REDO DRAM), Single Data Rate Synchronous DRAM (SDR SDRAM), Double Data Rate SDRAM (DDR SDRAM), Direct Rambus DRAM (DRDRAM), or Extreme Data Rate DRAM (XDR DRAM).
- DRAM Dynamic random access memory
- SRAM static random access memory
- BSRAM Burst SRAM or SynchBurst SRAM
- FPM DRAM Fast Page Mode DRAM
- the main memory 122 or the storage 128 may be non-volatile; e.g., non-volatile read access memory (NVRAM), flash memory non-volatile static RAM (nvSRAM), Ferroelectric RAM (FeRAM), Magnetoresistive RAM (MRAM), Phase-change memory (PRAM), conductive-bridging RAM (CBRAM), Silicon-Oxide-Nitride-Oxide-Silicon (SONOS), Resistive RAM (RRAM), Racetrack, Nano-RAM (NRAM), or Millipede memory.
- NVRAM non-volatile read access memory
- nvSRAM flash memory non-volatile static RAM
- FeRAM Ferroelectric RAM
- MRAM Magnetoresistive RAM
- PRAM Phase-change memory
- CBRAM conductive-bridging RAM
- SONOS Silicon-Oxide-Nitride-Oxide-Silicon
- Resistive RAM RRAM
- Racetrack Nano-RAM
- Millipede memory Millipede memory
- FIG. 1C depicts an embodiment of a computing device 100 in which the processor communicates directly with main memory 122 via a memory port 103 .
- the main memory 122 may be DRDRAM.
- FIG. 1D depicts an embodiment in which the main processor 121 communicates directly with cache memory 140 via a secondary bus, sometimes referred to as a backside bus.
- the main processor 121 communicates with cache memory 140 using the system bus 150 .
- Cache memory 140 typically has a faster response time than main memory 122 and is typically provided by SRAM, BSRAM, or EDRAM.
- the processor 121 communicates with various I/O devices 130 via a local system bus 150 .
- Various buses may be used to connect the central processing unit 121 to any of the I/O devices 130 , including a PCI bus, a PCI-X bus, or a PCI-Express bus, or a NuBus.
- the processor 121 may use an Advanced Graphics Port (AGP) to communicate with the display 124 or the I/O controller 123 for the display 124 .
- FIG. 1D depicts an embodiment of a computer 100 in which the main processor 121 communicates directly with I/O device 130 b or other processors 121 ′ via HYPERTRANSPORT, RAPIDIO, or INFINIBAND communications technology.
- FIG. 1D also depicts an embodiment in which local busses and direct communication are mixed: the processor 121 communicates with I/O device 130 a using a local interconnect bus while communicating with I/O device 130 b directly.
- I/O devices 130 a - 130 n may be present in the computing device 100 .
- Input devices may include keyboards, mice, trackpads, trackballs, touchpads, touch mice, multi-touch touchpads and touch mice, microphones, multi-array microphones, drawing tablets, cameras, single-lens reflex camera (SLR), digital SLR (DSLR), CMOS sensors, accelerometers, infrared optical sensors, pressure sensors, magnetometer sensors, angular rate sensors, depth sensors, proximity sensors, ambient light sensors, gyroscopic sensors, or other sensors.
- Output devices may include video displays, graphical displays, speakers, headphones, inkjet printers, laser printers, and 3D printers.
- Devices 130 a - 130 n may include a combination of multiple input or output devices, including, e.g., Microsoft KINECT, Nintendo Wiimote for the WII, Nintendo WII U GAMEPAD, or Apple IPHONE. Some devices 130 a - 130 n allow gesture recognition inputs through combining some of the inputs and outputs. Some devices 130 a - 130 n provides for facial recognition which may be utilized as an input for different purposes including authentication and other commands. Some devices 130 a - 130 n provides for voice recognition and inputs, including, e.g., Microsoft KINECT, SIRI for IPHONE by Apple, Google Now or Google Voice Search.
- Additional devices 130 a - 130 n have both input and output capabilities, including, e.g., haptic feedback devices, touchscreen displays, or multi-touch displays.
- Touchscreen, multi-touch displays, touchpads, touch mice, or other touch sensing devices may use different technologies to sense touch, including, e.g., capacitive, surface capacitive, projected capacitive touch (PCT), in-cell capacitive, resistive, infrared, waveguide, dispersive signal touch (DST), in-cell optical, surface acoustic wave (SAW), bending wave touch (BWT), or force-based sensing technologies.
- PCT surface capacitive, projected capacitive touch
- DST dispersive signal touch
- SAW surface acoustic wave
- BWT bending wave touch
- Some multi-touch devices may allow two or more contact points with the surface, allowing advanced functionality including, e.g., pinch, spread, rotate, scroll, or other gestures.
- Some touchscreen devices including, e.g., Microsoft PIXELSENSE or Multi-Touch Collaboration Wall, may have larger surfaces, such as on a table-top or on a wall, and may also interact with other electronic devices.
- Some I/O devices 130 a - 130 n , display devices 124 a - 124 n or group of devices may be augment reality devices.
- the I/O devices may be controlled by an I/O controller 123 as shown in FIG. 1C .
- the I/O controller may control one or more I/O devices, such as, e.g., a keyboard 126 and a pointing device 127 , e.g., a mouse or optical pen. Furthermore, an I/O device may also provide storage and/or an installation medium 116 for the computing device 100 . In still other embodiments, the computing device 100 may provide USB connections (not shown) to receive handheld USB storage devices. In further embodiments, an I/O device 130 may be a bridge between the system bus 150 and an external communication bus, e.g. a USB bus, a SCSI bus, a FireWire bus, an Ethernet bus, a Gigabit Ethernet bus, a Fibre Channel bus, or a Thunderbolt bus.
- an external communication bus e.g. a USB bus, a SCSI bus, a FireWire bus, an Ethernet bus, a Gigabit Ethernet bus, a Fibre Channel bus, or a Thunderbolt bus.
- Display devices 124 a - 124 n may be connected to I/O controller 123 .
- Display devices may include, e.g., liquid crystal displays (LCD), thin film transistor LCD (TFT-LCD), blue phase LCD, electronic papers (e-ink) displays, flexile displays, light emitting diode displays (LED), digital light processing (DLP) displays, liquid crystal on silicon (LCOS) displays, organic light-emitting diode (OLED) displays, active-matrix organic light-emitting diode (AMOLED) displays, liquid crystal laser displays, time-multiplexed optical shutter (TMOS) displays, or 3D displays. Examples of 3D displays may use, e.g.
- Display devices 124 a - 124 n may also be a head-mounted display (HMD). In some embodiments, display devices 124 a - 124 n or the corresponding I/O controllers 123 may be controlled through or have hardware support for OPENGL or DIRECTX API or other graphics libraries.
- HMD head-mounted display
- the computing device 100 may include or connect to multiple display devices 124 a - 124 n , which each may be of the same or different type and/or form.
- any of the I/O devices 130 a - 130 n and/or the I/O controller 123 may include any type and/or form of suitable hardware, software, or combination of hardware and software to support, enable or provide for the connection and use of multiple display devices 124 a - 124 n by the computing device 100 .
- the computing device 100 may include any type and/or form of video adapter, video card, driver, and/or library to interface, communicate, connect or otherwise use the display devices 124 a - 124 n .
- a video adapter may include multiple connectors to interface to multiple display devices 124 a - 124 n .
- the computing device 100 may include multiple video adapters, with each video adapter connected to one or more of the display devices 124 a - 124 n .
- any portion of the operating system of the computing device 100 may be configured for using multiple displays 124 a - 124 n .
- one or more of the display devices 124 a - 124 n may be provided by one or more other computing devices 100 a or 100 b connected to the computing device 100 , via the network 104 .
- software may be designed and constructed to use another computer's display device as a second display device 124 a for the computing device 100 .
- a second display device 124 a for the computing device 100 .
- an Apple iPad may connect to a computing device 100 and use the display of the device 100 as an additional display screen that may be used as an extended desktop.
- a computing device 100 may be configured to have multiple display devices 124 a - 124 n.
- the computing device 100 may comprise a storage device 128 (e.g. one or more hard disk drives or redundant arrays of independent disks) for storing an operating system or other related software, and for storing application software programs such as any program related to the Pinpoint System Server 120 .
- storage device 128 include, e.g., hard disk drive (HDD); optical drive including CD drive, DVD drive, or BLU-RAY drive; solid-state drive (SSD); USB flash drive; or any other device suitable for storing data.
- Some storage devices may include multiple volatile and non-volatile memories, including, e.g., solid state hybrid drives that combine hard disks with solid state cache.
- Some storage device 128 may be non-volatile, mutable, or read-only. Some storage device 128 may be internal and connect to the computing device 100 via a bus 150 . Some storage device 128 may be external and connect to the computing device 100 via a I/O device 130 that provides an external bus. Some storage device 128 may connect to the computing device 100 via the network interface 118 over a network 104 , including, e.g., the Remote Disk for MACBOOK AIR by Apple. Some client devices 100 may not require a non-volatile storage device 128 and may be thin clients or zero client devices 102 . Some storage device 128 may also be used as an installation device 116 , and may be suitable for installing software and programs.
- the operating system and the software can be run from a bootable medium, for example, a bootable CD, e.g. KNOPPIX, a bootable CD for GNU/Linux that is available as a GNU/Linux distribution from knoppix.net.
- a bootable CD e.g. KNOPPIX
- a bootable CD for GNU/Linux that is available as a GNU/Linux distribution from knoppix.net.
- Client device 100 may also install software or application from an application distribution platform.
- application distribution platforms include the App Store for iOS provided by Apple, Inc., the Mac App Store provided by Apple, Inc., GOOGLE PLAY for Android OS provided by Google Inc., Chrome Webstore for CHROME OS provided by Google Inc., and Amazon Appstore for Android OS and KINDLE FIRE provided by Amazon.com, Inc.
- An application distribution platform may facilitate installation of software on a client device 102 .
- An application distribution platform may include a repository of applications on a server 106 or a cloud 108 , which the client devices 102 a - 102 n may access over a network 104 .
- An application distribution platform may include application developed and provided by various developers. A user of a client device 102 may select, purchase and/or download an application via the application distribution platform.
- the computing device 100 may include a network interface 118 to interface to the network 104 through a variety of connections including, but not limited to, standard telephone lines LAN or WAN links (e.g., 802.11, T1, T3, Gigabit Ethernet, Infiniband), broadband connections (e.g., ISDN, Frame Relay, ATM, Gigabit Ethernet, Ethernet-over-SONET, ADSL, VDSL, BPON, GPON, fiber optical including FiOS), wireless connections, or some combination of any or all of the above.
- standard telephone lines LAN or WAN links e.g., 802.11, T1, T3, Gigabit Ethernet, Infiniband
- broadband connections e.g., ISDN, Frame Relay, ATM, Gigabit Ethernet, Ethernet-over-SONET, ADSL, VDSL, BPON, GPON, fiber optical including FiOS
- wireless connections or some combination of any or all of the above.
- Connections can be established using a variety of communication protocols (e.g., TCP/IP, Ethernet, ARCNET, SONET, SDH, Fiber Distributed Data Interface (FDDI), IEEE 802.11a/b/g/n/ac CDMA, GSM, WiMax and direct asynchronous connections).
- the computing device 100 communicates with other computing devices 100 ′ via any type and/or form of gateway or tunneling protocol e.g. Secure Socket Layer (SSL) or Transport Layer Security (TLS), or the Citrix Gateway Protocol manufactured by Citrix Systems, Inc. of Ft. Lauderdale, Fla.
- SSL Secure Socket Layer
- TLS Transport Layer Security
- Citrix Gateway Protocol manufactured by Citrix Systems, Inc. of Ft. Lauderdale, Fla.
- the network interface 118 may comprise a built-in network adapter, network interface card, PCMCIA network card, EXPRESSCARD network card, card bus network adapter, wireless network adapter, USB network adapter, modem or any other device suitable for interfacing the computing device 100 to any type of network capable of communication and performing the operations described herein.
- a computing device 100 of the sort depicted in FIGS. 1B and 1C may operate under the control of an operating system, which controls scheduling of tasks and access to system resources.
- the computing device 100 can be running any operating system such as any of the versions of the MICROSOFT WINDOWS operating systems, the different releases of the Unix and Linux operating systems, any version of the MAC OS for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, any operating systems for mobile computing devices, or any other operating system capable of running on the computing device and performing the operations described herein.
- Typical operating systems include, but are not limited to: WINDOWS 2000, WINDOWS Server 2012, WINDOWS CE, WINDOWS Phone, WINDOWS XP, WINDOWS VISTA, and WINDOWS 7, WINDOWS RT, and WINDOWS 8 all of which are manufactured by Microsoft Corporation of Redmond, Wash.; MAC OS and iOS, manufactured by Apple, Inc. of Cupertino, Calif.; and Linux, a freely-available operating system, e.g. Linux Mint distribution (“distro”) or Ubuntu, distributed by Canonical Ltd. of London, United Kingom; or Unix or other Unix-like derivative operating systems; and Android, designed by Google, of Mountain View, Calif., among others.
- Some operating systems including, e.g., the CHROME OS by Google, may be used on zero clients or thin clients, including, e.g., CHROMEBOOKS.
- the computer system 100 can be any workstation, telephone, desktop computer, laptop or notebook computer, netbook, ULTRABOOK, tablet, server, handheld computer, mobile telephone, smartphone or other portable telecommunications device, media playing device, a gaming system, mobile computing device, or any other type and/or form of computing, telecommunications or media device that is capable of communication.
- the computer system 100 has sufficient processor power and memory capacity to perform the operations described herein.
- the computing device 100 may have different processors, operating systems, and input devices consistent with the device.
- the Samsung GALAXY smartphones e.g., operate under the control of Android operating system developed by Google, Inc. GALAXY smartphones receive input via a touch interface.
- the computing device 100 is a gaming system.
- the computer system 100 may comprise a PLAYSTATION 3, or PERSONAL PLAYSTATION PORTABLE (PSP), or a PLAYSTATION VITA device manufactured by the Sony Corporation of Tokyo, Japan, a NINTENDO DS, NINTENDO 3DS, NINTENDO WII, or a NINTENDO WII U device manufactured by Nintendo Co., Ltd., of Kyoto, Japan, an XBOX 360 device manufactured by the Microsoft Corporation of Redmond, Wash.
- the computing device 100 is a digital audio player such as the Apple IPOD, IPOD Touch, and IPOD NANO lines of devices, manufactured by Apple Computer of Cupertino, Calif.
- Some digital audio players may have other functionality, including, e.g., a gaming system or any functionality made available by an application from a digital application distribution platform.
- the IPOD Touch may access the Apple App Store.
- the computing device 100 is a portable media player or digital audio player supporting file formats including, but not limited to, MP3, WAV, M4A/AAC, WMA Protected AAC, AIFF, Audible audiobook, Apple Lossless audio file formats and .mov, .m4v, and .mp4 MPEG-4 (H.264/MPEG-4 AVC) video file formats.
- file formats including, but not limited to, MP3, WAV, M4A/AAC, WMA Protected AAC, AIFF, Audible audiobook, Apple Lossless audio file formats and .mov, .m4v, and .mp4 MPEG-4 (H.264/MPEG-4 AVC) video file formats.
- the computing device 100 is a tablet e.g. the IPAD line of devices by Apple; GALAXY TAB family of devices by Samsung; or KINDLE FIRE, by Amazon.com, Inc. of Seattle, Wash.
- the computing device 100 is a eBook reader, e.g. the KINDLE family of devices by Amazon.com, or NOOK family of devices by Barnes & Noble, Inc. of New York City, New York.
- the communications device 102 includes a combination of devices, e.g. a smartphone combined with a digital audio player or portable media player.
- a smartphone e.g. the IPHONE family of smartphones manufactured by Apple, Inc.; a Samsung GALAXY family of smartphones manufactured by Samsung, Inc; or a Motorola DROID family of smartphones.
- the communications device 102 is a laptop or desktop computer equipped with a web browser and a microphone and speaker system, e.g. a telephony headset.
- the communications devices 102 are web-enabled and can receive and initiate phone calls.
- a laptop or desktop computer is also equipped with a webcam or other video capture device that enables video chat and video call.
- the status of one or more machines 102 , 106 in the network 104 is monitored, generally as part of network management.
- the status of a machine may include an identification of load information (e.g., the number of processes on the machine, CPU and memory utilization), of port information (e.g., the number of available communication ports and the port addresses), or of session status (e.g., the duration and type of processes, and whether a process is active or idle).
- this information may be identified by a plurality of metrics, and the plurality of metrics can be applied at least in part towards decisions in load distribution, network traffic management, and network failure recovery as well as any aspects of operations of the present solution described herein.
- a user's location can include the user's micro-location within the premises of a store, building, or outdoor location.
- the system may narrow the location of a client device to a specific section within a store.
- FIG. 2A is a schematic representation of a Pinpoint Network (PN) 200 for delivering content responsive to a client's location.
- the PN 200 includes a Pinpoint System Server (PSS) 120 .
- the PSS 120 may include a plurality of components and modules. These modules may include an anti-spoofing module 261 , a logistics module 262 , user interface module 263 , and an analysis module 264 . Additionally, the PSS 120 includes at least one database.
- the databases may include a beacon location database 265 , a content database 266 , a user preference database 267 , and a content provider database 268 .
- the PN 200 can also include a plurality of client devices 102 each in use by a user 230 .
- the client devices 102 may include a camera 221 , a GPS module 222 , and a wireless module 223 .
- the PN 200 also includes at least one beacon 240 .
- the beacon 240 includes a wireless module 241 for communicating with the client device 102 (or PSS 120 ), an anti-spoofing module 242 , and a battery 243 .
- the PN 200 includes at least one content provider 250 that provides supplemental content 251 to the PSS 120 .
- the PSS 120 delivers supplemental content 251 to the plurality of client devices 102 .
- the above described components of the PN 200 are connected by a network 104 .
- the content provider 250 a merchant that sells merchandise (or more generically referred to as content) to customers or users.
- the supplemental content 251 is associated with the content for sell by the content provider 250 .
- the content provider 250 may be a clothing store selling content such as women's and men's fashions.
- the supplemental content 251 may include information or other digital content related to the fashions for sell by the clothing store.
- the content provider 250 may place a beacon 240 near specific content in the content provider's store.
- the content provider 250 may place a first beacon 240 near a display of sweaters and a second beacon 240 near a rack of women's jeans.
- the beacon 240 may be also placed near a non-content item, such as a door, cash register, or be positioned such that the beacon 240 is near a plurality of content items.
- the PSS 120 may deliver supplemental content 251 to a client device 102 when the PSS 120 determines the client device 102 is within a predetermined proximity of a beacon 240 .
- the beacon 240 includes a wireless module 241 , an anti-spoofing module 242 , and a battery 243 .
- the wireless module 241 may be a WIFI radio, a Bluetooth radio, RFID tag and/or similar wireless transmitter or receiver. In some implementations, the wireless module 241 is only a wireless transmitter. For example, the beacon 240 may broadcast a signal that is detected by the client device 102 , but may not receive a signal from the client device 102 .
- the wireless module 241 may be a low power wireless module such as a Bluetooth 4.0 (i.e., low energy) radio. Additionally or alternatively, the wireless module 241 may cycle on and off to conserve energy. In some implementations, the cycling may occur based on time of day or the detection of a nearby user.
- the beacon 240 may be configured to only broadcast a wireless signal during business hours.
- the wireless module 241 emits a wireless signal that covers a predetermined proximity zone.
- the beacon 240 may broadcast a unique beacon identification number over the wireless signal, which is detected by the client device 102 .
- the size and shape of the proximity zone may be adjusted. For example the size of the proximity zone may be adjusted by altering the power level of the wireless signal. For example, the power level of the wireless signal may be set to one of 4 dB, 0 dB, ⁇ 6 dB, or ⁇ 23 dB.
- the beacon identification number is a unique identifier number that may not be detected if one is outside the defined proximity zone.
- a plurality of beacons 240 may be daisy chained together such that they create a unified proximity zone. For example, a content provider 250 may wish to have a single proximity zone cover an entire store rather than having micro proximity zones distributed throughout the store. In this example, each of the daisy changed Beacons 240 broadcast the same Beacon identification number.
- the PSS 120 may associate the location of the beacon 240 with the client device 102 .
- the wireless module 241 allows the beacon 240 to communicate directly with the PSS 120 via the network 104 .
- the beacon 240 does not communicate directly with the PSS 120 , but rather passes data to the client device 102 , which then forwards the data to the PSS 120 .
- the method of forwarding data from the Beacon 240 to the PSS 120 , via a client device 102 is discussed in greater detail in relation to FIGS. 2B-3B .
- the data transmitted from a beacon 240 to the client device 102 or PSS 120 is encrypted, for example, with 16 byte AES encryption.
- the data may include an AES key identifier, a beacon ID, a MAC address, the current battery level, beacon uptime, data, random data, or any combination thereof.
- the beacon ID may be randomly generated, and in some implementations, updated at specific intervals.
- the beacon ID may be generated using a function (e.g., a hash function), which generates a new beacon ID at periodic intervals.
- the PSS 120 may have the same hash function and may update its record of the beacon IDs as the beacons 240 updates their beacon IDs. In some implementations, updating the beacon ID is done to prevent spoofing of the beacon 240 and its data.
- An example method of encrypting the communication within the PN 200 is described in greater detail in relation to FIG. 3C .
- the beacon 240 can include an anti-spoofing module 242 .
- the anti-spoofing module 242 may ensure the data transmitted from the beacon 240 to the PSS 120 is authentic.
- the PSS 120 may provide a user 230 with supplemental content when the user's client device 102 is within a predetermined proximity zone of a beacon 240 .
- the supplemental content may be a coupon, loyalty points, or other benefit.
- a content provider 250 may desire to ensure the client device 102 is actually located in the expected location before providing supplemental content to the client device 102 .
- the anti-spoofing module 242 may use the AES key identifier, location ID, battery level, beacon up time, or a combination thereof to ensure the authenticity of transmitted data.
- the data packets transmitted to the PSS 120 may be encrypted and include the current battery level and up time of the beacon 240 generating the data packets.
- the anti-spoofing module 242 may check that the battery level and up time indicated in the data packets correspond to expected values. For example, if the anti-spoofing module 242 receives a data packet that indicates the up time of a Beacon 240 should be 1 day, 3 hours and 15 minutes, but receives a data packet that indicates the up time is four days, the anti-spoofing module may determine that someone copied the data packets and is attempting to rebroadcast them without revisiting the store. In some implementations, the anti-spoofing module 242 may use a GPS radio or other location service to determine if the data packets are arriving from a location generally associated with the beacon 240 .
- the anti-spoofing module 242 may provide the client device 102 with a password or other unique identification number such that the client device 102 may verify to the PSS 120 that the client device 102 is near the beacon 240 .
- the password may be a rolling password.
- the content provider 250 housing the beacon and/or the PSS 120 may be notified.
- a beacon 240 that is the tampered with or spoofed may be remotely disabled.
- the user 230 interacts with a client device 102 .
- the client may be, but is not limited to, a smart phone, a tablet computer, a laptop and/or a desktop computer.
- the client device 102 includes a GPS module 222 .
- the GPS module 222 detects the current location of the client device 102 and may transmit the detected location to the PSS 120 via the network 104 .
- the anti-spoofing module in the beacon and/or in the PSS 120 , modules 242 and 261 respectively, may receive the detected location and verify the client device 102 is near the reported location of the beacon.
- the client device 102 may transmit the current location of the client device 102 to the anti-spoofing module 261 of the PSS 120 .
- the PSS 120 may receive a unique beacon identification number. Referencing the beacon location database 265 , the unique beacon identification number transmitted to the PSS 120 may indicate the beacon should be located in a particular store of a shopping mall.
- the current location determined by the gps module 222 may indicate that the client device 102 is in the corresponding shopping mall, and accordingly the client device 102 may be authenticated as being near the beacon 240 .
- the client device 102 may include a camera 221 .
- the user 230 may use the camera to capture images of merchandise or other content the user prefers. For example, if a user 230 finds a jacket that the user 230 may want to purchase at a later date, the user 230 may use the camera 221 to capture an image of the jacket. In some implementations, the captured image may remain on the client device 102 , and in other implementations they are transmitted to the PSS 120 to be stored in the user preference database 267 .
- User preferences may include, but are not limited to, preferred content providers, preferred content, preferred colors, preferred price points, locations, preferred looks, preferred fashion styles, preferred users, or any combination thereof.
- the user 230 may select a jacket the user likes. The jacket may then be saved to the user's preferences.
- the user 230 may view or change the stored user preferences via the PSS 120 . Responsive to those preferences, the PSS 120 may deliver supplemental content to the user. For example, after a user has stored a number of preferences the PSS 120 may send the user 230 a recommendation for pants that match the jacket the user 230 is viewing. The pants may be in a color and a price point the user 230 indicated that she liked in her saved preferences.
- the client device 102 may also include a wireless module 223 .
- the wireless module 223 may detect the broadcast from the Beacon 240 .
- the broadcast may include the unique beacon identification number and other data.
- the other data may include a password, location data, system status data, system statistics, or any combination thereof.
- the beacon 240 may include current battery levels in the data broadcast.
- the data packet in the broadcast may be only a few bits in size.
- the client device 102 may transmit the data packet to the PSS 120 on behalf of the beacon 240 .
- the client device 102 forwards the data to the PSS 120 without reading (or decrypting) the data within the data packets.
- the PSS 120 includes a plurality of modules and databases.
- the PSS 120 is a computer program running on a central server.
- the PSS 120 is a distributed system running on a plurality of computer servers.
- the PSS 120 may be replicated across a plurality of servers or specific functions of the PSS 120 may be executed on specific computer servers.
- the PSS 120 may include an anti-spoofing module 261 .
- the anti-spoofing module 261 ensures the authenticity of the data received from the client device 102 and/or Beacons 240 .
- the PSS 120 may receive data from the client device that includes the up time of a beacon 240 .
- the anti-spoofing module 261 may compare the up time with an expected up time to ensure the data is authentic. For example, if the up time is only 470 hours when it should be 1,213 hours, the anti-spoofing module may determine that the data was recorded and a third party is attempting to spoof the data to receive supplemental content such as reward points from the PSS 120 .
- the logistics module 262 of the PSS 120 may provide the content provider 250 with logistical data. For example, the logistics module 262 may monitor the number of client devices 102 that detect a specific beacon identification number over a given period of time and determine the content (or merchandise) near those beacons is more popular than the content near beacons 240 whose beacon identification numbers are not detected as often over the same given time period. The logistics module 262 may also monitor customer flow patterns through the content providers. The content providers 250 may make decisions on where to place content based on the data returned from the logistics module 262 . For example, a content provider 250 may place popular content near the back of the store such that a user will have to pass less popular content to get to the more popular content.
- the PSS 120 also includes an interface 263 .
- the interface 263 is discussed in greater detail in relation to the exemplary embodiments described in Section C. Briefly, the interface 263 provides a means for a user 230 and/or content provider 250 to interact with the PSS 120 .
- the interface 263 is a plurality of web pages.
- the interface 263 is a computer program running on the PSS 120 and/or on a client device 102 .
- the user interface 263 that is displayed to the user 230 may be responsive to the type of client device 102 used to view the user interface 263 .
- the user interface may appear different when a user views the interface 263 on a smart phone as compared to if the user views the interface 263 on a personal computer.
- the first type of interface 263 may be the interface presented to a content provider 250 upon logging into the PSS 120 .
- the content provider interface may allow a content provider 250 to upload, to the content database 266 , descriptions and details of supplemental content 251 , images of content 215 , availability of content 215 , or any combination thereof.
- the content provider 250 may upload coupons and/or benefits to the content database 266 via the content provider interface.
- the content provider 250 may upload a benefit to the content database 266 that indicates the content provider will be having a sale on Memorial Day. Accordingly, users viewing the user interface may be presented with the details of the Memorial Day sale.
- the console for a content provider 250 is described below in relation to Section G.
- the PSS 120 may provide, through the user interface 263 , a platform for the user 230 to barter or haggle over the price of a piece of supplemental content 251 with the content provider.
- the content provider 250 may use the content provider interface to define minimum acceptable prices for supplemental content 251 in the content database 266 or to define other rules that may govern the bartering and haggling process.
- the content provider interfaces may allow for the control, configuration, and management of beacons 240 .
- Beacon management functions of the content provider interface may include such functions as updating firmware; configuring the hours of operation for the beacon; setting a logical radius; updating the PSS 120 as to the physical location of the beacon; and checking beacon settings, statistics, and current status (e.g., battery life).
- the console for PSS 120 administration is described further in relation to Section G.
- the content provider interface is displayed via a computer program or webpage that interacts directly with the PSS 120 , which in turn transmits the above described configurations and settings to the beacon 240 .
- the content provider interface is displayed by a program or webpage executing on a mobile device.
- the mobile device may then allow for the direct configuration of the beacon 240 .
- the mobile device may connect directly to the beacon 240 by Bluetooth to deliver new configuration files, firmware updates, and/or settings to the beacon 240 .
- the second type of interface 263 may be provided to the user 230 when interacting with the PSS 120 .
- the exemplary embodiments discussed in Section F provide a detailed description of the user interface.
- the user interface may allow the user to view the supplemental content 251 available by the plurality of content providers 250 .
- the user interface may allow the user 230 to view or search for black high-heels available for sale by one or more stores using the PSS 120 .
- Other searches performed by the use 230 aim include searching for content within a specific location, distance from a specific location, price range, color, size, or any combination thereof.
- the user 230 may input preferences to the PSS 120 via the user interface. These preferences may be saved into the user preference database 267 .
- the preferences may be directly input into PSS 120 (e.g., the user may indicate they prefer Nike tennis shoes) or the PSS 120 may infer the user's preferences.
- the user may “like” (or select) a plurality of content items.
- the PSS 120 may then determine similarities between the selected content to determine the user's preferences.
- selecting a preferred content item may include selecting the image of the content item as it is displayed to the user 230 via the user interface 263 .
- the user 230 may upload images captured with the camera 221 to user preference database 267 .
- a first user 230 may use selected content of a second user 230 to augment the preferences of the first user 230 .
- the PSS 120 also includes an analysis module 264 .
- the analysis module 264 responsive to the preferences of the user 230 stored in the user preference database 267 , the analysis module 264 provides the user 230 with supplemental content 251 the user 230 may like.
- the supplemental content 251 provided to the user 230 may include coupons, benefits, links to other content or any combination thereof.
- the selection of the supplemental content 251 is responsive to the location of the client device 102 .
- the analysis module 264 may then analyze the user preferences stored in the user preference database 267 and provide supplemental content 251 for the user 230 responsive to the user's preferences and the current location of the user. For example, the analysis module 264 may determine a user is viewing sweaters within a specific store. Analyzing that a high percentage of the captures images of clothes the user uploaded to the PSS 120 include green articles of clothing, the analysis module 264 may suggest to the user 230 to view the content provider's selection of green sweaters, located at the front of the store.
- the supplemental content selected by the analysis module 264 may be responsive to only the user's current location.
- selected supplemental content 251 is associated with a competitor of content item near the user. For example, when viewing a pair of pants in a first store, the analysis module 264 may send the user a coupon for a pair of similar pants at a second store.
- the supplemental content 251 selected by the analysis module 264 can include coupons, ads, product information or any combination thereof.
- the supplemental content 251 is time sensitive. For example, a coupon may be issued by the analysis module 264 and only be valid for the next 10 minutes.
- the analysis module 264 issues a time sensitive coupons when it has determined the user 230 may be uncertain if they wish to purchase the content item near the user. For example, the analysis module 264 may determine that the user 230 has lingered in the vicinity of the content item for a set period of time (e.g. five minutes), and determined the user 230 is unsure of the purchase. The analysis module 264 may provide the user 230 with a coupon in order to persuade the user 230 to purchase the content item.
- the analysis module 264 may incorporate the data of the content database 266 and the content provider database 268 to provide the client device 102 with supplemental content that is information about content provided by a competing content provider 250 .
- the analysis module 264 may determine that a client device 102 is in a store viewing shirts. Incorporating the data of the content provider database 268 and the content database the analysis module 264 may provide the user with supplemental content 251 that provides the user with additional information about the shirt near the user.
- the information may include availability, sizing information, information about similar content items, or general information about the product.
- the analysis module 264 provides the user 230 with information when the client device 102 is not in the proximity zone of a beacon 240 .
- the analysis module 264 may determine that the user 230 has uploaded a number of jackets and determines the user may be actively looking for a new winter coat.
- the analysis module may search the content database 266 and the content provider database 268 to determine if any content providers 250 in the general area currently have sales on jackets.
- the content providers may place bids on the opportunity to provide the user 230 with a coupon or supplemental content. Ad auctions are described further in relation to Section H.
- the beacons 240 can be placed in a location without providing the beacons 240 with a power connector or a connection to the network 104 .
- the beacons 240 can include a battery 243 that is configured to power the beacons 240 for a least 1 month, 3 months, 6 months, or a year without needing to be replaced or recharged.
- the beacons 240 do not have a direct connection to the network 104 .
- the beacons 240 can communicate with the PSS 120 through the data connection of a client device 102 . This can allow a content provider store owner to place a beacon 240 without first setting up a network 104 within the store or running power to the location where the store owner wishes to place the beacon 240 .
- FIG. 2B is an illustration that provides further detail about the interconnectivity between some of the components of the PN 200 .
- FIG. 2B illustrates a plurality of client devices 102 , each at different distances from a beacons 240 .
- the client devices 102 are connected to the PSS 120 via a network 104 .
- a logical radius 271 extends a first distance from the beacons 240 and a physical radius 272 extends a second distance from the beacon 240 s.
- the beacons 240 transmits a wireless signal, such as a Bluetooth signal.
- the greatest distance the wireless signal may be received by a client device 102 is the physical radius 272 of the beacon 240 .
- a logical radius 271 may also be set for the beacon 240 .
- the logical radius 271 may be any radius within the physical radius 272 .
- more than one logical radius 271 may be set for each beacon 240 .
- crossing a logical radius 271 may cause an event, such as the delivery of supplemental content, to occur.
- Client devices 102 in different sections of the beacon's broadcast range may be treated differently.
- the logical radius 271 may be set via the PSS 120 .
- the beacon 240 is represented as broadcasting a wireless signal in an omnidirectional manner, one of average skill in the art will recognize that the wireless signal may be tuned such that the wireless signal is not omnidirectional.
- FIG. 2B illustrates client devices at three distances from a beacon 240 .
- client device 102 ( 1 ) is within the inner proximity zone 270 .
- Client devices 102 ( 2 ) are beyond the logical radius 271 but within the physical radius 272 , and therefore within a second proximity zone 280 .
- Client device 102 ( 3 ) is outside the physical radius 272 , and therefore not within one of the proximity zones.
- the PSS 120 may not deliver content to a client device 102 unless the device is within a logical radius 271 .
- the PSS 120 may determine that a client device 102 is leaving the proximity of the beacon 240 when the client device 102 progresses from the inner proximity zone 270 to an outer zone 280 In some implementations, the PSS 120 may deliver different supplemental content to the client device 102 responsive to if the client device 102 is entering or leaving the inner proximity zone 270 .
- the beacon 240 does not communicate directly with the PSS 120 .
- the beacon may communicate with the PSS 120 via at least one client device 102 .
- the beacons 240 and a client device 102 may communicate with one another using a first wireless standard and then the client device 102 and the PSS 120 may communicate with a second communication standard.
- the beacon 240 may transmit a packet containing data, which is received by the client device 102 ( 1 ), using the low power Bluetooth standard.
- the client device 102 ( 1 ) may then forward the data packet to the PSS 120 using a second communication standard.
- the client device 102 ( 1 ) may use its cellular connection or a Wi-Fi connection to forward the data packet to the PSS 120 .
- the device 102 retransmits the data packet to the PSS 120 without accessing, reading, and/or modifying the data packet.
- the device 102 may append a device identifier, such as a MAC address to the data packet.
- the data packet can include information related to the beacon identification number or other data pertaining to the beacon 240 .
- the beacon 240 may relay information about its current power levels or conditions to the PSS 120 via the data packets.
- the beacon 240 transmits the data packet to a plurality of client devices 102 for forwarding to the PSS 120 .
- the PSS 120 may transmit data back to the beacon 240 through the client device 102 .
- the PSS 120 may select a client device 102 within the physical radius 272 (or logical radius 271 ) of the beacon 240 .
- the PSS 120 may then send a data packet to the client device 102 using the second transmission protocol.
- the client device 102 may then forward the data packet to the beacon 240 using first data transmission standard.
- the PSS 120 may transmit the data packet to a plurality of client devices 102 within the physical radius 272 .
- the redundancy of the data transmission to the beacon 240 may ensure the data still arrives to the beacon 240 even if the first client device 102 leaves the physical radius 272 before the data is fully transferred to the beacon 240 .
- client device 102 ( 1 ) and client device 102 ( 2 ) both receive the data packet from the PSS 120 , if client device 102 ( 2 ) leaves the physical radius 272 before the data packet can be forwarded to the beacon 240 , client device 102 ( 1 ) can still forward the data packet to the beacon 240 .
- the data that the PSS 120 transmits to a beacon 240 can include configuration files or firmware updates.
- FIG. 3A is a flow chart of an example method 300 for determining the location of a client device 102 and providing to the client device 102 with supplement content.
- the method 300 includes receiving, by the client, a beacon identification number (step 301 ).
- the client then transmits the beacon identification number (step 302 ) to the PSS 120 .
- the client receives supplemental content (step 303 ) from the PSS 120 .
- the supplemental content is displayed on the client (step 304 ).
- the client device 102 receives a beacon identification number.
- the beacon identification number is received by the wireless module 223 of the client device 102 .
- the client 102 may receive the beacon identification number by taking a picture of a QR code placed on or the beacon 240 or through some other non-wireless transmission means.
- the user may manually enter the beacon identification number into a computer programming running on the client device 102 .
- the beacon identification number may be accompanied by a data packet that may include beacon statistics or other data.
- the client device 102 transmits the beacon identification number to the PSS 120 .
- the client device 102 is Internet enabled and transmits the beacon identification number to the PSS 120 .
- the client device 102 may add a client and/or user identification to the beacon identification number when forwarding data to the PSS 120 from the beacon 240 .
- Transmitting the beacon identification number may also include transmitting additional client device 102 or user 230 information to the PSS 120 .
- the client may also transmit shopping preferences the user recently entered into a computer program executing on the client device 102 .
- the beacon 240 is Internet enabled, and transmits client identification to the PSS 120 directly responsive to detecting a client device 102 in the proximity zone.
- the client device 102 receives supplemental content.
- the supplemental content may be delivered to the client device 102 from the PSS 120 .
- the supplemental content may be a coupon, offer, or other information.
- the supplemental content may be a coupon for the supplemental content 251 near the beacon 240 , an offer for a competitor of the content provider 250 currently providing the content which the client device 102 is near, or the supplemental content may be information indicating to the user additional supplemental content 251 that may complement the currently viewed supplemental content 251 .
- the supplemental content is displayed to the user.
- the supplemental content is displayed to the user 230 via a computer program executing on the client device 102 .
- the user 230 may only receive the supplemental content if the user 230 is actively using the computer program.
- the supplemental content may be pushed to the client device 102 and displayed to the user regardless if the user 230 is actively using the computer program.
- the user may only receive the supplemental content if the user is using the computer program and specifically requests the supplemental content to be delivered.
- a user 230 may be viewing a sweater located near a beacon 240 . The user 230 may wish to see if the store is selling any pants that would match the sweater.
- the user 230 may then activate the computer programming running on the client device 102 and request the PSS 120 to provide the user 230 with a plurality of matching pants in the current and/or competing stores.
- the plurality of matching pants, or other supplemental content is ranked based on the user's preferences stored in the user preference database 267 .
- FIG. 3B is a flow chart of a method 350 for determining the location of a client device.
- the PSS 120 receives a data packet (step 351 ).
- the PSS 120 determines which beacon 240 generated the data packet (step 352 ).
- the PSS 120 determines the location of the of the beacon 240 that generated the data packet (step 352 ).
- the PSS 120 then associates the location of the beacon 240 that generated the data packet with the client device 102 .
- the method 350 begins when the PSS 120 receives a data packet.
- the data packet is generated by a beacon 240 that is one of a plurality of beacons 240 .
- the data packet can be transmitted from the beacon 240 to the client device 102 using a first wireless standard, and then the client device 102 forwards the data packet to the PSS 120 using a second wireless standard.
- the client device 102 may append a client device identifier to the data packet when the client device 102 forwards the data packet to the PSS 120 .
- the PSS 120 determines which one of the plurality of beacons 240 generated the data packet.
- the data packet received by the PSS 120 includes a beacon identifier.
- the PSS 120 can used the beacon identifier to determine which one of the beacons 240 generated the data packet.
- the client device 102 that forwards the data packet to the PSS 120 may be within the physical radius 272 of a plurality of beacons 240 .
- the client device 102 may receive a data packet from each of the plurality of beacons 240 .
- the client device 102 or PSS 120 may determine with which of the plurality of beacons 240 has the strongest wireless connection.
- the client device 102 may forward only the data packet from the beacon 240 with which it has the strongest data connection to the PSS 120 .
- the client device 102 may rank the strength of the connections to each of the plurality of beacons 240 and then forward an indication of the ranking to the PSS 120 .
- the PSS 120 may use the indication of the ranking to better determine the position of the client device 102 .
- the PSS 120 determines the location of the beacon 240 that generated the data packet. As described above, the location of each of the beacons 240 can be saved into the beacon location database 265 . The PSS 120 can access the beacon location database 265 and search the beacon location database 265 to retrieve the location of the beacon 240 that generated the data packet.
- the PSS 120 associates the location of the beacon 240 with the client device 102 . For example, determining that the client device 102 forwarded a data packet from a beacon 240 that is located within the men's section of a store, the PSS 120 may determine the client device 102 is also within the men's section of the store. As described, above in relation to step 352 , in some implementations, the client device 102 may receive and forward a plurality of data packets form a plurality of beacons 240 . The PSS 120 may use the ranked list of connection strength to each of the beacons 240 to triangulate a more specific location of the client device 102 .
- the PSS 120 may determine how far the client device 102 is from the beacon 240 response to the signal strength of the connection the client device 102 establishes with the beacon 240 . For example, the PSS 120 may determine if the beacons 240 is within a specific logical radius 271 of the beacon 240 .
- the communications between the beacon 240 , client 102 , and PSS 120 are encrypted.
- the signal broadcast by the beacon 240 can be detected by devices not part of the PN 200 .
- the signal may be detected by a laptop running packet sniffing software or the signal may be detected by third party applications executing on the client device 102 .
- a third party may attempt to maliciously determine the user's location by loading software onto the client device 102 and recording the beacon IDs detected as the client device 102 visits different locations using the PN 200 .
- the beacon 240 , client 102 , and PSS 120 may encrypt their communications such that even if a third party did detect the signal from a beacon 240 it would not be able to ascertain useable information from the signal.
- FIG. 3C is a flow chart of an example method 370 for encrypting data transmissions when determining the micro-location of a client device.
- the PSS 120 receives data from the client device 102 .
- the data includes an encrypted portion and an unencrypted portion.
- the data originates from a beacon 240 .
- the data is broadcast by the beacon 240 and received by the client device 102 , which forwards the data to the PSS 120 .
- the above discussed beacon identifier is stored in the encrypted portion of the data packet.
- Other data that can be used to ensure the authenticity of the communication is also stored in the encrypted portion.
- the beacon identifier includes GPS coordinates or a text string that identifies the beacon 240 to the PSS 120 .
- the encrypted portion of the data can also include information regarding the beacon 240 , such as, but not limited to, battery level and firmware version.
- the beacon 240 repeatedly transmits the same encrypted portion for a predetermined amount of time. For example, the beacon 240 may encrypt and broadcast its current up time and beacon identification number for five minutes. After the five minute period, the beacon 240 may generate a new encrypted portion that includes the beacon identification number and the present up time.
- the beacon 240 is coded with a key, for example a 16 bit-AES key.
- the beacon 240 uses the key to encrypt data that it broadcasts.
- the beacon's key is updated randomly or periodically.
- the beacon 240 may include a shared secret that is hashed with a challenge (e.g., the current time) to create a new key.
- the unencrypted portion of the data may include a key hint and a local-ID.
- the PSS 120 may select a key to decrypt the encrypted portion of the data using the key hint.
- the local-ID may be used by the client device 102 to determine if it has recently received data from a specific beacon 240 . As the actual identification of the beacon 240 is securely stored within the encrypted portion of the data, the client device can identify broadcasts from beacons 240 by the local-ID and does not have to decrypt the data. For example, a client device 102 may receive three data packets, the first with a local-ID of A, the second with a local ID of B, and a third with a local ID of A.
- the client device 102 can determine that the first and third data packets came from the same beacon 240 . In some implementations, the client device 102 may disregard the third data packet since it already received a data packet from that beacon in the recent past.
- the local-ID is a 16-bit identifier. At random intervals, each beacon 240 updates its local ID.
- the PSS 120 selects a key to decrypt the encrypted portion of the data.
- the PSS 120 when the PSS 120 receives encrypted data from a client 102 , the PSS 120 does not know which beacon 240 in the PN 200 generated the data. As each beacon 240 in the PN 200 encrypts its data with a unique key, the PSS 120 must determine which key to use to decrypt the data.
- the PSS 120 stores each of the keys required to decrypt data sent from each of the beacons 240 PN 200 .
- the key hint is part of a key-value pair, and once the key-hint is received by the PSS 120 , the key-hint may be passed through a hash function to retrieve the decrypt key from a hash table.
- the key hint is not unique, such that the location of the beacons 240 cannot be mapped by a third party.
- a geohash or another indication of the beacon's general location, is transmitted in the unencrypted portion. The PSS 120 may use the geohash in combination with the key hint to determine which key to use to decrypted the data.
- a PSS 120 may receive a key hint of “DFCD 3454.” The PSS 120 may then use the key hint to determine that beacon A has a key of “DFCD 3454 XBEA 788A 351A” and is located in California, beacon B has a key of “DFCD 3454 DPIO 89VA 478B” and is located in Massachusetts, and beacon C has a key of “DFCD 3454 78DA DPE7 3487” and is located in Georgia. The PSS 120 may then determine that the geohash is associated with Massachusetts and select the key of “DFCD 3454 DPIO 89VA 478B”, associated with Beacon B, to decrypt the data. In some implementations, the PSS 120 may not require a geohash, and may iterative try each of the keys located with the key hint.
- the data is decrypted.
- the PSS 120 decrypts the encrypted portion of the data.
- the PSS 120 also authenticates the sender (i.e., the client device or application) transmitting the data to the PSS 120 .
- the PSS 120 may determine if the user of the client device 102 has agreed for their location to be determined and that the application that forwarded the data to the PSS is allowed to receive location data.
- the beacon identification number is retrieved from the decrypted portion of the data, and at step 375 the PSS 120 determines the micro-location of the beacon associated with the beacon identification number.
- the method for determining the micro-location of the client device 102 is described above in relation to method 350 .
- FIG. 4A illustrates a schematic overview of a smart store using beacons 240 .
- the beacons 240 are used by the PSS 120 to determine the relative location of client devices 102 within a store or other premise and deliver content to the client device 102 responsive to the client device's location.
- FIG. 4A illustrates a smart store 400 .
- Three beacon 240 ( 1 )- 240 ( 3 ) (generally referred to as beacons 240 ) are place within the store 400 .
- Beacon 240 ( 1 ) is placed near the entrance to the store 400 .
- Beacon 240 ( 2 ) is placed near the display 402 ( 1 ), which is displaying produces 404 ( 1 ) and 404 ( 2 ).
- Beacon 240 ( 3 ) is placed near the display 402 ( 2 ), which is displaying products 404 ( 3 ) and 404 ( 4 ).
- a client device 102 ( 1 ) is within the physical radius 406 ( 3 ) of beacon 240 ( 3 ) and a client device 102 ( 2 ) is within the physical radius 406 ( 1 ) of beacon 240 ( 1 ).
- the client devices 102 ( 1 ) and 102 ( 2 ) have established a wireless connection with beacons 240 ( 1 ) and 240 ( 3 ), respectively.
- the client devices 102 ( 1 ) and 102 ( 2 ) have also established a connection with the PSS 120 through the network 104 .
- the PSS 120 includes the same components as the PSS 120 descried in relation to FIG. 2A .
- the beacon 240 ( 1 ) is placed near the entrance of the store 400 such that it can detect when a new client device 102 enters the store 400 .
- the client device 102 ( 2 ) has just entered the store 400 and is within the physical radius 406 ( 1 ) of the beacon 240 ( 1 ). While within the physical radius 406 ( 1 ) of the beacon 240 ( 1 ), the client device 102 ( 2 ) may receive data packets with beacon identifiers from the beacon 240 ( 1 ). The client device 102 ( 2 ) may then forward data packets to the PSS 120 through the network 104 .
- the PSS 120 may then lookup the location of the beacon 240 identified by the beacon identifier that was transmitted to the PSS 120 by the client device 102 ( 2 ). For example, after receiving the data packet and beacon identifier from the client device 102 ( 2 ), the PSS 120 may determine that the client device 102 ( 2 ) is near beacon 240 ( 1 ) and is therefore near the entrance of the store 400 .
- the client device 102 ( 1 ) may transmit data packets with deacon identifiers associated with beacon 240 ( 3 ), and the PSS 120 may determine that the user of the client device 102 ( 1 ) is viewing products 404 ( 3 ) and 404 ( 4 ). As described above, the PSS 120 may transmit supplemental content related to the products 404 ( 3 ) and 404 ( 4 ) to the client device 102 ( 1 ). In some implementations, the PSS 120 may send supplemental content generally related to the store 400 to client device 102 ( 2 ) when the PSS 120 determines that the client device 102 ( 2 ) entered the store. For example, the PSS 120 may transmit a coupon for 15% off any product 404 in the store 400 to client device 102 ( 2 ).
- the supplemental content deliver to client device 102 ( 1 ) may relate more specifically to the products 404 ( 3 ) and 404 ( 4 ).
- the PSS 120 may deliver a coupon for 15% off of product 404 ( 4 ) to the client device 102 ( 1 ) or the PSS 120 may deliver additional information regarding product 404 ( 4 ) to the client device 102 ( 1 ).
- supplemental content can be advertisements, coupons, additional information, or suggested products.
- the PSS 120 may determine what type of supplemental content to deliver to a client device 102 responsive to the user preferences of the user associated with the client device 102 or the preferences of the owners and managers of the store 400 . For example, the store owners may wish to reward repeat customers.
- a coupon may be delivered to a client device 102 if the client device 102 is determined to be near the location of beacon 240 ( 1 ) a predetermined number of times within a predetermined number of days. For example, the PSS 120 may deliver a 20% off coupon to a user if the user visits the store five times in one month.
- beacons 240 may be placed outside of a store or in a location within the store 400 such that the physical radius 406 of the beacon 240 may cover areas outside the store 400 .
- the owner of the store 400 may place a beacon 240 outside the store 400 such that the PSS 120 can determine when a registered client device 102 is walking by the store and deliver supplemental content to the client device 102 .
- FIG. 4B is a flow chart of a method 450 for delivering supplemental content to a client device 102 in a smart store environment.
- the method 450 includes receiving user preferences (step 451 ) and receiving content provider preferences (step 452 ).
- the method 450 further includes associating a beacon with a location (step 453 ).
- the method 450 can also include receiving a beacon identification number from a client device (step 454 ). Responsive to receiving the beacon identification number, it is determined that the client device is within a predetermined radius of the location (step 455 ).
- the type of supplemental content or response that should be provided to the client is then determined (step 456 ). Responsive to the response determination, the supplemental content is delivered to the client device (step 457 ).
- the method includes receiving user preferences (step 451 ) and content provider preferences (step 452 ).
- the preferences of the user 230 and/or content provider 250 may be updated, added, or removed at any time. For example, the user may see an item for sale online and save it to their account to update the user's preferences.
- the content provider's preferences may include, but are not limited to, notifications regarding discounts on content, global use coupons, a list of competitors and/or collaborators, a list of preferred users, content inventory, or any combination thereof.
- the list of collaborators may be business associations that sell complementary items.
- a local florist may enter into collaboration with a local confectioner, such that if a user 230 purchases content at one of the stores, the user 230 will automatically receive a coupon at the other store.
- the content provider 250 may wish to keep a list of customers that, on average, spend a set dollar amount with the content provider each month, quarter or year. In turn, the content provider may have a preference to automatically provide those customers with discounts, coupons, benefits, or other supplemental content.
- a location is associated with the beacon.
- the location of the beacon is stored in the beacon location database 265 .
- the PSS 120 looks up the beacon location with the beacon identification number in the beacon location database 265 .
- the PSS 120 then associates the location of the beacon with the location of the client device 102 .
- the PSS 120 needs to be provided the location of the beacon 240 .
- the PSS 120 receives the beacon identification number from a client device 102 .
- the beacon identification number is accompanied by a user identification number.
- the PSS 120 determines the location of the client device 102 (step 454 ). In some implementations, the PSS 120 compares the received beacon indemnification number with a table of beacon identification numbers stored in the beacon location database 265 . The beacon location database 265 may then provide the PSS 120 with the location of the beacon 240 . In some implementations, the location includes a physical location of the content provider 250 and/or the location of the beacon 240 within the content provider 250 . Responsive to determining the location and/or location of the beacon 240 , the PSS 120 may cross reference the determined location of the beacon 240 with the current location of the client device 102 to authenticate the received beacon identification number.
- the client device 102 may deliver to the PSS 120 the strength of its connection with the beacon 240 such that the PSS 120 can determine if the client device 102 is within a logical radius of the beacons. In some implementations, the PSS 120 may wait for the client device 102 to be within the logical radius of the beacon 240 before transmitting supplemental content to the client device 102 .
- the PSS 120 determines a response based on location, user preferences, and content provider preferences.
- the calculated response is a determination of the type of supplemental content to be sent to the client device 102 .
- the response based on the location of the beacon 240 , the user's preferences, the content provider's preferences, or any combination thereof.
- the user 230 may specify the type of response the user 230 would like to receive. For example, the user 230 may request a necklace to complement the currently viewed dress based on the preferences the user has uploaded to the PSS 120 . As another example, the user may request a coupon for the currently view content or a list of similar items the user is currently viewing.
- the PSS 120 transmits the response to the client device 102 .
- the response is transmitted to the client only when requested by the user 230 .
- the response may be automatically calculated and delivered to the client device 102 without intervention by the user.
- the PSS 120 hosts a website that the user 230 may access via a client device 102 , such a web enabled smart phone or home computer.
- the content providers 250 may be a clothing merchant that sells clothing through its retail outlets or stores. Within those outlets the clothing merchant places beacons 240 throughout the store. The merchant may then list the merchandise available at the store with the PSS 120 . Additionally, the PSS may gather images of merchandise from non-content providers, such from the website of fashion magazines.
- a user may view clothing, accessories and other merchandise on the website hosted by the PSS 120 .
- the user may mark items they like or dislike.
- the system may then use the characteristics of these items to update the user's shopping and merchandise preferences.
- the website saves the user's preferences and “liked” items so the user may view details about them at a later time or share the details with friends via the website. For example, a group of friends may send each other images of dresses they like for an event, or a user may view the items save by a fashion forward movie star or other fashion opinion leader.
- the user's smart phone may include a computer program that syncs with the PSS 120 .
- the smart phone may be Bluetooth enabled such that it can detect the presence of a beacon.
- the merchant can place a number of beacons around the store, for example, at the entrance to the store and near a table of dresses.
- clothing store the user's phone may recognize the beacon.
- the beacon may send the phone a identifier, which the phone retransmits to the PSS 120 .
- the PSS 120 resolves the identifier and determines in which store the beacon is located and the beacon's location within the store. Accessing the user's preferences, the PSS 120 may determine specific items the user may like.
- the user's experience of walking into a beacon-enabled store is as follows.
- the user's phone alerts the user that the store has a dress similar to the dress the user recently indicated liking on the website hosted by the PSS 120 .
- the user may receive information about the dress such as availability, location with the store, and price.
- the user may also receive a coupon for 10% off from the merchant as a thank you for having visited the store multiple times within the last week.
- the user may walk to table displaying the dress.
- the table contains a beacon.
- the user's phone detects the beacon and, as described above, relays the beacon's identification to the PSS 120 . Knowing the location of the beacon, the PSS 120 can estimate that the user is viewing the dress.
- the user may request assistance from a store employee via the program running on the phone. Additionally, if the user accesses the program while in the store the program may automatically display information about the merchandise at the nearest beacon. In this example, rather than asking for assistance from an employee, the user may access the program on the user's phone, which automatically reveals information about the dress the user is viewing. This information may reveal to the user the store currently has three of the dresses in the user's size in the store's back storage area.
- the system having noticed the user has been near the beacon corresponding to the dress for some time without moving on, may predict the user has mixed feelings about purchasing the dress. After the user has been in close proximity to the dress for a few minutes, the PSS 120 may automatically deliver to the user's phone a coupon for the dress that is valid for only the next 10 minutes.
- the PSS 120 includes an interface module 263 .
- the interface module 263 generates a user interface and a content provider interface.
- the interfaces may be a website executing on the PSS 120 and/or another central web server.
- the client device 102 executes a computer program that interfaces with the PSS 120 .
- the client device 102 includes a web browser that views the website pages provided by the PSS 120 and/or other central web server.
- the exemplary implementations below represent a possible user interfaces that may be viewed as a webpage and/or as a graphical user interface of a computer program interacting with the PSS 120 .
- FIG. 5A is a first page of an exemplary implementation of a user interface.
- the user interface displays a plurality of content items 501 that are available from one or more content providers 250 .
- the displayed content items 501 can be filtered.
- the user 230 may request that only men's fashions be displayed or only supplemental content 251 from a particular content provider 250 be displayed.
- the user interface also includes a number of buttons 502 ( 1 )- 502 ( n ).
- the exemplary implementation of FIG. 5 includes 5 buttons.
- the buttons may be “soft buttons” that update according to the current page of the user interface that is currently displayed.
- the buttons 502 are constant throughout the plurality of pages of the user interface.
- the user may select displayed content. Selecting the displayed content add and/or updates the user's preferences.
- the exemplary user interface is displaying a plurality of content providers 250 .
- the plurality of content providers 250 is all content providers 250 that are in the PN 200 .
- the displayed content providers 250 are a sub-population of the total number of content providers 250 .
- the user 230 may wish to only display content providers 250 that have been selected by the user 230 and/or only content providers 250 that are within a given distance of the current location of the user 230 .
- the user may select content providers to add to the user's preferences.
- FIG. 5C is an exemplary implementation of the user interface displaying content providers 250 within a given location of the user 230 .
- the nearby content providers 250 are displayed on a map 504 .
- the content providers 250 may be marked on the map 504 with an indicator 505 .
- the user 230 may set the scale of the map 504 , and the number of displayed content providers 250 may update as the user 230 pans and zooms the view of the map 504 .
- the choice of content provider 250 to display on the map 504 is responsive to the user preference and/or content provider preferences stored in the PSS 120 .
- the user interface may only display content providers 250 that the PSS 120 has determined the user has a high probability of having an interest.
- the selection of the content providers 250 to display may be based on the preferences of the content providers 250 .
- the content providers may wish to have the PSS 120 provide, via the user interface, coupons to a specific demographic of user within a 2 mile radius of the content provider.
- FIG. 5D is an exemplary implementation of the user interface displaying additional information regarding a content provider 250 .
- additional information is provided to the user regarding the selected content provider 250 .
- Additional information about the content provider 250 may be displayed in a window 506 that is overlaid on the map 504 .
- the window 506 may display, but is not limited to displaying, the content provider's name, location, contact information, availability of content, and available supplemental content.
- FIG. 5E is an exemplary implementation of the user interface for displaying supplemental content to a user 230 .
- FIG. 5D lists a plurality of supplemental content 507 currently available to the user 230 .
- the user 230 may save specific supplemental content for later use.
- the displayed supplemental content 507 is global supplemental content.
- Global supplemental content may be supplemental content that is available to all users of the PN 100 .
- the displayed supplemental content includes supplement content 507 that is specifically selected for and/or by the user 230 .
- FIG. 5E is an exemplary implementation of the user interface for displaying the user's profile.
- the profile page may act as the hub of the user interface.
- the user may add, remove, or change preferences.
- the user 230 may change system preferences on the profile page.
- system preferences may change the way the user 230 interacts with the user interface or how content providers 250 are allowed to interact with the user 230 .
- the profile page includes a window 508 that displays current or recent activity. The number of new items may also be represent to the user as a notification icon 509 that is always viewable to the user 230 when the user 230 is using the user interface.
- the PSS 120 includes an interface module 263 .
- the PSS 120 may also provide a content provider interface and system management interface.
- the content provider interface may provide content providers 250 with an interface for performing actions such as updating supplemental content (e.g., coupons) and changing beacon parameters (e.g., logical radii settings).
- the system management interface may allow the manager of the PSS 120 to perform functions such as, but not limited to, adding new content provider accounts and associating beacons 240 with specific content providers 250 .
- the interface module 263 may provide the manager of the PSS 120 with a system management interface (also referred to as the console) for managing various aspects of the PSS 120 . These aspects may include adding and removing content providers 250 from the PSS 120 and associating beacons 240 with specific content providers 250 .
- the console or other interface may be provided in the form of a webpage, web application, and/or computer program. The interface may be accessed and/or executed by various types of computing devices, such as desktop computers, laptops, smart phones and/or tablet computers.
- the PSS manager may use the console to add content providers 250 to the PSS 120 .
- the PSS 120 may be managed by a company that sells and/or licenses accounts to content providers 250 .
- the manager of the PSS 120 may create a PSS account for the content provider 250 responsive to selling and/or licensing a PSS account to the content provider 250 .
- the content provider 250 may provide information to the PSS manger.
- the PSS manger may then use the information to setup a PSS account for the content provider 250 .
- the information may include an account name, account manager information, number of properties (e.g., stores) in which the content provider 250 may be using the beacons 240 , the number of beacons 240 the content provider 250 is requesting (or purchasing), number of user logins to be associated with the PSS account, and any special instructions for the PSS manager.
- the PSS manager may future associate licensing restrictions with the content provider's 250 PSS account.
- the licensing restrictions may include the length of the license and the features of the PSS 120 the content provider 250 is licensed to use.
- Optional features to license may include content management and publishing, offers management, in-store beacon management, and analytics capabilities.
- the PSS manager may associate an account administrator to the PSS account.
- the account administrator may be an employee of the content provider 250 responsible for managing the PSS account.
- Managing a PSS account may include adding and removing authorized account users and managing the content provider's 250 PSS preferences.
- the content provider 250 may be a store.
- the content provider 250 may own or manage a plurality of properties.
- the content provider 250 may be a chain, which operates one or more stores in one or more cities.
- the account administrator may group its plurality of properties responsive to a set criteria.
- the plurality of stores may be grouped responsive to a geographic location.
- the account administrator may group its plurality of properties based on a scheme that mirrors the content provider's 250 business structure. For example, the content provider 250 may divide its stores into sales regions. When grouping the plurality of properties associated with the PSS account, the account administrator may group the plurality of properties such that the groups align with the sales region.
- one type of authorized user may be a group administrator.
- the group administrator may be responsible for one or more groups associated with the content provider's 250 PSS account.
- the system user responsible for a group may be a regional manager for a sales region.
- Another type of authorized user may be the role authorized user.
- the group administrators may create role authorized users and assign predetermined responsibilities to the role authorized users.
- Example responsibilities (or roles) may include content creator, offers manager, data analyst manager, and beacon manager.
- the content creator may create, manage, and publish content provider assets and product merchandising.
- the offers manager may create and manage the personalized supplemental content provided to users 230 .
- the data analysis manager may generate and view reports created by the PSS 120 and the analysis module 264 .
- the beacon manager may activate and deactivate beacons 240 and set beacon parameters such as location and the above described logical radius 271 .
- authorized users may be created which are not assigned specific roles. These authorized users may log into a content provider's 250 PSS account to view information, but may not be authorized to perform tasks associated with the above described roles.
- an administrative function may include sending messages to the authorized users associated with the content provider's 250 PSS account.
- the messages may be sent to a specific type of authorized user.
- the messages may be sent to only the beacon managers.
- Administrative functionality may also include resetting and/or retrieving passwords, performing system audits, and creating user directories.
- FIG. 6 is a flow chart of the hierarchical relationship between the authorized user types described above.
- the PSS manager 600 is the highest level authorized user.
- the PSS manager 600 may manage the PSS 120 .
- the PSS manager 600 may sell the services of the PSS 120 to n content providers 250 .
- the PSS manager 600 may create an account manager 601 .
- the account manager 601 may then create one or more group managers 602 .
- Each group manager 602 may then create one or more role authorized users 603 .
- the role authorized users 603 may then create one or more authorized users 604 .
- a user type may create and/or manage user types below it on the relationship tree.
- the PSS manager licenses and/or sells the beacons 240 to content providers 250 .
- specific functions of the beacons 240 may need to be managed by the content provider 250 and/or the PSS manager.
- the PSS manager may activate and deactivate beacons 240 responsive to the start and end of a licensing agreement with a content provider 250 .
- the content provider 250 may manage beacon parameters such as the logical radius 271 .
- beacons 240 may be managed by one or more of the above described authorized user types.
- the PSS manager may maintain a database of the beacons 240 within the PN 200 .
- the database may include the beacon's 240 serial number, MAC address, manufacturing data, manufacturer, version number, firmware version number, shipment date, associated content provider 250 and case type.
- the PSS manager may populate the database prior to sending the beacons 240 to the content provider 250 .
- the content provider 250 may log into the console and set various beacon parameters.
- the parameters may include beacon placement, the size of the logical radius 271 , and the active/inactive state.
- the beacon manager may also view beacon status reports for the beacons 240 under its management. The information may include the version number of the beacon 240 , battery level, activation state, and up time.
- An authorized user may manage the content provider's 250 supplemental content and the content's distribution through the console.
- the content provider 250 may create and manage conditions that govern the distribution of supplemental content.
- the conditions may include store segments, audience segments, event triggers, and user parameters. As described below, the conditions may be created and applied to one or more supplemental content items. By reusing conditions and rules, the authorized users may reduce the time required to create supplemental content.
- a condition is a store segment condition.
- the above described groups may also be further divided into store segments to provide greater control in where supplemental content is distributed.
- the store segments may incorporate one or more parameters.
- a content provider's 250 stores may be segments based on the store's performance and/or location.
- a store may belong to more than one segment.
- a content provider's 250 store in New York City may belong to a New England segment, a New York state segment, a New York City segment, and a high performance segment.
- An audience segment condition may be another exemplary embodiment of a condition.
- the audience segment may allow supplemental content to be provided to only specific users 230 .
- Audience segments may include one or more parameters such as, but not limited to, the number of visits within a given time range, the age of the user 230 , and the gender of the user 230 .
- a user 230 may be included in a first audience segment if the user 230 visits the content provider 250 more than three times in the last month, is between the ages of 18 and 34, and is female.
- the delivery of supplemental content may be triggered responsive to an event condition.
- event conditions may be referred to as offer trigger events.
- a number of parameters may be associated with the offer trigger.
- the parameters may include location, beacon reference, delay time, dwell time, and default status.
- the authorized users may create the supplemental content.
- the supplemental content may be placed in an offer queue that dispenses the supplemental content.
- multiple offer queues may be created.
- multiple offer queues may be created; however, only one may be active at a given time. For example, an offer manager may create offer queues for each season and then activate the seasonal offer queue during the correct season.
- the supplemental content may include one or more parameters.
- the parameters may include supplemental content value (e.g., 30% off or $10 off a purchase of $50), start date, end date, start time, end time, barcode image, supplemental content code, expiration time, exclusions, frequency cap, sharing option, and template.
- the template may layout and design (i.e., the visual presentation) of the supplemental content.
- the PSS 120 may verify one or more the supplemental content parameters before distributing the supplemental content. For example, the frequency cap of one supplemental content item may be set to 1,000. In this example, if the supplemental content has already been distributed 1,000 times, the PSS 120 may look for another supplemental content item in the offer queue to distribute to the user 230 . Responsive to creating the supplemental content, the supplemental content may be associated with an audience segment condition, store segment condition, and/or trigger event condition.
- the PSS 120 may determine that a user 230 meets the conditions to receive more than one supplemental content item.
- a priority level condition may be assigned to each supplemental content item. The priority level may be used to determine which supplemental content item the user 230 should receive.
- the offer manager may create supplemental content for loyal customers and give it a higher priority than supplemental content for the general public. Accordingly, in this example, the loyal customer may receive the supplemental content intended for loyal customers over the supplemental content intended for the general public.
- the PSS 120 may include a mechanism for approving supplemental content.
- offers reducing the price of supplemental content 251 by a percentage or amount over a predetermined limit require approval before the PSS 120 distributes the supplemental content to users 230 .
- the PSS 120 may seek approval for supplemental content my sending a message (e.g., an email message) to the account manager or other authorized user authorized to approval supplemental content.
- FIG. 7 is a flow chart of a method 700 for creating, managing, and delivering supplemental content.
- the method 700 includes creating one or more conditions.
- the conditions may include audience segment conditions, store segment conditions, and event trigger conditions.
- the PSS 120 stores the conditions such that they may be used with multiple supplemental content items.
- the supplemental content is created. Creating supplemental content may include associating predetermined parameters with an offer.
- the supplemental content is approved.
- the supplemental content may not require approval, and in other implementations, the supplemental content may require approval if the supplemental content includes an offer over a predetermined dollar value.
- one or more conditions are associated with the supplemental content.
- the conditions may include one or more parameters.
- the PSS 120 may use the parameters within the conditions to determine what supplemental content to deliver to a user's 230 client device 102 .
- the PSS 120 receives a beacon identification number from a client device 102 .
- step 705 may mirror step 453 of method 450 described above.
- the client device 102 may detect the beacon's 204 beacon identification number.
- the client device 102 may then transmit the beacon identification number and client device identification number to the PSS 120 .
- the PSS 120 may retrieve supplemental content that may be appropriate to deliver to the client device 102 .
- the PSS 120 determines which of the supplemental content items retrieved in step 705 should be delivered to the client device 102 .
- the determination may be responsive to the conditions associated with each of the supplemental content items. For example, in step 705 the PSS 120 may retrieve a first supplemental content item with the condition it is to be delivered to female user and a second supplemental content item with the condition it is to be delivered to a male user. The PSS 120 may review these conditions and determine that as the client device 102 is associated with a male user, the second condition should be delivered.
- the supplemental content is delivered to the client device 102 .
- a beacon 240 can be placed in a store.
- the store may sell a plurality of products from a plurality of venders (or content providers).
- a home improvement store may sell ten different types of lawn mowers produced by three different venders.
- the PSS 120 may send supplemental content to a client device 102 when the client device 102 is within a predetermined range of a beacon 240 .
- the PSS 120 may hold a content auction to determine what supplemental content is delivered to the client device 102 .
- FIG. 8 illustrates an example environment 800 for an content auction.
- products 801 ( 1 )- 801 ( 4 ) are for sale in store 802 .
- a beacon 240 is placed near the products 801 .
- the beacon 240 can communicate with a client device 102 within the beacon's physical radius 803 .
- the client device 102 is in communication with the PSS 120 through the network 104 .
- the PSS 120 of FIG. 8 is illustrated including a content database 804 , a transaction database 805 , and an auction module 806 . Any component described in relation to a PSS 120 can be included in any other PSS 120 described herein.
- the environment 800 also includes a plurality of content providers 807 that generate supplemental content to be delivered to the client device 102 .
- the content provider 807 are the venders of, or otherwise associated with, the products 801 .
- the PSS 120 of FIG. 8 can also include a content database 804 .
- the content database 804 can be database where the PSS 120 stores the supplemental content generated by the content providers 807 .
- the content stored in the content database 804 can be stored in the content database 804 in association with a bid price and at least one beacon 240 or beacon location. For example, a content provider 807 may be willing to pay $3.00 for one of its supplemental content items to be delivered to client device 102 when the client device 102 is near the content provider's product 801 .
- the PSS 120 may store the results of past auctions in the transaction database 805 .
- the content providers 807 may set a cap on the amount of money they wish to spend on auctions within a predetermined amount of time.
- the PSS 120 may store this information in the transaction database 805 and determine if the content provider 807 has enough money left in their allowance to place a bid in an active auction. For example, a content provider 807 may wish to spend no more than $1,000 on auctions per month. In this example, if the content provider 807 has already spent $998.00 on auctions in the month, the transaction database 805 may prohibit a $3.00 bid from being placed for the content provider's account.
- the transaction database 805 may also be used to general reports for billing purposes at the predetermined intervals. For example, the owner of the PSS 120 may create invoices for each of the content providers 807 using an interface to the transaction database 805 .
- the auction module 806 may conduct the auction to determine what supplement content is to be delivered to the client device 102 . For example, responsive to the PSS 120 determining the client device 102 is within the physical radius 803 of the beacon 240 , the PSS 120 may transmit supplemental content to the client device 102 . The PSS 120 can access to the content database 804 to determine what content is associated with the beacon 240 . In some implementations, the auction module 806 may access the transaction database 805 to determine if the content associated with the beacon 240 is eligible for an auction. Content may be ineligible for an auction if, for example, the content provider 807 wishes to spend a predetermined amount on auctions per month and that amount has been met for the month. The content provider's content may not be eligible for auctions until the content provider's budget renews at the beginning of the next month.
- the auction module 806 Responsive to determining what content is associated with the beacon 240 , the auction module 806 conducts the ad auction. In some implementations, the auction module 806 iteratively increase the price for sending the supplemental content item to the client device 102 until a winner of the auction is determined. For example, if the auction module 806 determines that content item A, B, C, and D are associated with products 801 ( 1 ), 801 ( 2 ), 801 ( 3 ), and 801 ( 4 ), respectively, it may enter the content items A, B, C, and D into the ad auction.
- the auction module 806 may increase the bid price of the auction until a winner is determined.
- the increase in bid price may be a fixed or variable amount. Furthering the above example, assume the increase price is $0.10. In this example, content item C would drop out once the bid price reaches 2.00 and content items A and D would drop out when the bid priced reaches 3.00. Content item B would win the auction at a price of 3.10. In some implementations, auction module 806 calculates the winning price as the second maximum highest bid price, which is to be paid by the content provider associated with the highest bid price.
- the second highest bid price is $3.00, which would be charged for displaying content item B.
- the winner of the auction may be determined by randomly selecting one of the content items that has the highest maximum bid price.
- each of the content items with the highest maximum bid may be queued for subsequent delivery to client devices 102 .
- content item D may be delivered to the first client device 102 and content item E may be queued for display to the next client device 102 that enters the physical radius 803 . Once the queue is empty ad auctions may resume to determine which content items are delivered to client device 102 entering the physical radius 803 .
- FIG. 9 is a flow chart of a method 900 for conducting an ad auction.
- the PSS 120 receives a plurality of supplemental content items.
- the plurality of supplemental content items can be received from one or more content providers 807 .
- a maximum bid price and a specific beacon 240 are associated with each of the supplemental content items.
- the supplemental content items can be associated with a plurality of beacons 240 .
- a content provider 807 may sell grills through a national retailer.
- the content provider may associate their supplemental content items with each of the beacons located near the grilling section of each of the national retailer's stores.
- the maximum bid price is the maximum price the content provider 807 is willing to pay for the supplemental content item to be delivered to the client device 102 .
- the PSS 120 receives an indication of a client device 102 location. As described above in relation to FIG. 8 , the PSS 120 may determine the location of a client device 102 by receiving a beacon identification from the client device 102 once the beacon 240 has crossed the physical radius 803 . The PSS 120 may then determine the location of the beacon 240 that generated the beacon identification number and then associate the location of the beacon 240 with the client device 102 .
- the PSS 120 selects a portion of the plurality of supplemental content items responsive to the location of the client device 102 .
- the auction module 806 may search the content database 804 for content items that are associated with the location indicated in step 902 .
- the PSS 120 may then enter the selected content items into an ad auction to determine which content item is to delivered to the client device 102 .
- the PSS 120 selects a supplemental content item responsive to the bids associated with the each of the plurality of supplemental content items selected in step 903 .
- the supplemental content item is selected through an ad auction.
- the ad auction can have a plurality of winners.
- the content item to be delivered can be randomly selected from the plurality of winners or the winning content items may be queued for display to subsequent client devices as they enter the physical radius 803 of the beacon 240 .
- the price of the winning bid is charged to the account of the content provider associated with the winning content item.
- the selected supplemental content item is delivered to the client device.
- the content item may be delivered to the client device via Wi-Fi or a cellular connection of the client device.
- the content item is only delivered to the client device is actively running an application associated with the PSS 120 .
- the content item may be delivered to the client device 102 as a push notification, and the software application associated with the PSS 120 does not need to be open or active.
- the PSS 120 may conduct a second ad auction to deliver a second supplemental content item.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The merchandise offered by local and national suppliers is always changing. Customers often spend numerous hours browsing websites, magazines, and other media outlets before purchasing merchandise, but unfortunately, many customers still cannot stay abreast of the latest trends and newest products. Additionally, local and national suppliers often fail to deliver a personalized shopping experience to consumers.
- The present disclosure provides a system and method for providing a user with supplemental content based on the user's preferences and location. Furthermore, the disclosure provides a computer program that allows users to discover the latest trends, discover new stores, and organize their discoveries from a platform that is accessible from a mobile device or computer.
- The system provides the user with a platform to store, organize, and retrieve preferences. The preferences may include preferred styles, looks, and retailers. Saving the preferences allows the user to create a customized catalog of styles, offers, and content.
- Additionally, the system includes one or more beacons that enables the detection of a device's location. Based on the location, the system may use the user's stored preferences to provide the user with supplemental content. Because the system can determine the user's location, the system can determine what merchandise the user is most likely viewing. Accordingly, the system can provide the customer with such supplemental content as matching accessories, time sensitive discounts on the item, or additional information about the item.
- According to one aspect of the disclosure, a method for determining a micro-location of a device includes receiving, by a server, a data packet generated by one of a plurality of beacons. The data packet is transmitted from the one of a plurality of beacons to a client device using a first wireless standard and forwarded to the server by the client device using a second wireless standard. The method also includes determining, by the server, which one of the plurality of beacons generated the data packet and determining the micro-location of the one of the plurality of beacons that generated the data packet. The server then associates the micro-location of the one of the plurality of beacons that generated the data packet with the client device.
- In some implementations, the method further includes determining a signal strength of a signal used to transmit the first wireless standard and refining the micro-location associated with the client device responsive to the determined signal strength of the signal used to transmit the first wireless standard. The method can also include determining if the client device is within a logical radius of the one of the plurality of beacons that generated the data packet responsive to the determined signal strength of the signal used to transmit the first wireless standard.
- In some implementations, the method includes transmitting content to the client device using the second wireless standard. The content that is transmitted to the client device can be selected responsive to the micro-location associated with the client device. The method can also include transmitting a second data packet to the one of the plurality of beacons that generated the first data packet. The second data packet is transmitted to the client device using the second wireless standard and forwarded to the one of the plurality of beacons that generated the data packet by the client device using the first wireless standard.
- In some implementations, the first wireless standard is the same as the second wireless standard. The wireless standards can include Bluetooth low energy or the Institute of Electrical and Electronics Engineers' (IEEE) 802.11 standard.
- According to another aspect of the disclosure, a system for determining a micro-location of a device includes a processor coupled to a computer readable medium storing processor executable instructions that when executed by the processor causes the processor to receive a data packet generated by one of a plurality of beacons. The data packet is transmitted from the one of a plurality of beacons to a client device using a first wireless standard and forwarded to the server by the client device using a second wireless standard. The processor also determines which one of the plurality of beacons generated the data packet, and determines the micro-location of the one of the plurality of beacons that generated the data packet. The processor associates the micro-location of the one of the plurality of beacons that generated the data packet with the client device.
- The system may also be configured to determine a signal strength of a signal used to transmit the first wireless standard and then refine the micro-location associated with the client device responsive to the determined signal strength of the signal used to transmit the first wireless standard.
- In some implementations, the system is configured to determine if the client device is within a logical radius of the one of the plurality of beacons that generated the data packet responsive to the determined signal strength of the signal used to transmit the first wireless standard.
- The system can be configured to transmit content to the client device using the second wireless standard. In some implementations, the system transmits a second data packet to the one of the plurality of beacons that generated the data packet. The second data packet is transmitted to the client device using the second wireless standard and forwarded to the one of the plurality of beacons that generated the data packet by the client device using the first wireless standard.
- In some implementations, the first wireless standard is the same as the second wireless standard. The wireless standard can be Bluetooth low energy or the Institute of Electrical and Electronics Engineers' (IEEE) 802.11 standard.
- The foregoing and other objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the following description taken in conjunction with the accompanying drawings, in which:
-
FIG. 1A is a block diagram depicting an embodiment of a network environment comprising client devices in communication with a server device, according to one implementation of the disclosure; -
FIG. 1B is a block diagram depicting a cloud computing environment comprising a client device in communication with a cloud service providers, according to one implementation of the disclosure; -
FIGS. 1C and 1D are block diagrams depicting embodiments of computing devices useful in connection with the methods and systems described herein, according to one implementation of the disclosure; -
FIG. 2A is a block diagram of a system for delivering content responsive to a client's location, according to one implementation of the disclosure; -
FIG. 2B is a block diagram illustrating the example connections between some of the components of the system ofFIG. 2A , according to one implementation of the disclosure; -
FIG. 3A is a flow chart depicting a method for determining the location of a client in a system similar to the system ofFIG. 2A and providing the client with supplemental content, according to one implementation of the disclosure; -
FIG. 3B is an example chart flow of a method for determining the location of a client device, according to one implementation of the disclosure; -
FIG. 3C is a flow chart of anexample method 370 for encrypting data transmissions when determining the micro-location of a client device, according to one implementation of the disclosure; -
FIG. 4A is a schematic illustrating an example smart store using the system ofFIG. 2A , according to one implementation of the disclosure; -
FIG. 4B is a flow chart illustrating an example method for determining the type of supplemental content to provide to the user in a system similar to the system ofFIG. 2A , according to one implementation of the disclosure; -
FIG. 5A-5F is an exemplary implementation of a user interface for interfacing with the System ofFIG. 2A , according to one implementation of the disclosure; -
FIG. 6 is a flow chart of the hierarchical relationship between the authorized user types of the system ofFIG. 2A , according to one implementation of the disclosure; -
FIG. 7 is a flow chart of an example method for creating, managing, and delivering supplemental content with the system ofFIG. 2A , according to one implementation of the disclosure; -
FIG. 8 is a schematic illustrating an example environment for conducting an ad auction using the System ofFIG. 2A , according to one implementation of the disclosure; -
FIG. 9 is a flow chart illustrating a method for conducting an ad auction using the System ofFIG. 2A , according to one implementation of the disclosure. - For purposes of reading the description of the various embodiments below, the following descriptions of the sections of the specification and their respective contents may be helpful.
- Section A describes a network environment and computing environment which may be useful for practicing embodiments described herein.
- Section B describes embodiments of systems and methods for providing supplemental content to a user based on user preferences and user location.
- Section C describes an exemplary implementation of the system and methods for communicating with the beacons.
- Section D describes embodiments of a smart store.
- Section E describes an exemplary implementation of the system.
- Section F describes an exemplary implementation of a user interface for interacting with a system for providing supplemental content to a user based on user preferences and user location.
- Section G describes an exemplary implementation of a content provider interface and system management interface for managing supplemental content and parameters of a location system.
- Section H describes an exemplary embodiment of an ad auction.
- Prior to discussing specific embodiments of the present solution, it may be helpful to describe aspects of the operating environment as well as associated system components (e.g., hardware elements) in connection with the methods and systems described herein. Referring to
FIG. 1A , an embodiment of a network environment is depicted. In brief overview, the network environment includes one ormore client devices 102 a-102 n (also generally referred to as local machine(s) 102, client(s) 102, client node(s) 102, client machine(s) 102, client computer(s) 102, client device(s) 102, endpoint(s) 102, or endpoint node(s) 102) in communication with one or more servers 106 a-106 n (also generally referred to as server(s) 106, node 106, or remote machine(s) 106) via one ormore networks 104. In some embodiments, aclient device 102 has the capacity to function as both a client node seeking access to resources provided by a server and as a server providing access to hosted resources forother client devices 102 a-102 n. - Although
FIG. 1A shows anetwork 104 between theclient devices 102 and the servers 106, theclient devices 102 and the servers 106 may be on thesame network 104. In some embodiments, there aremultiple networks 104 between theclient devices 102 and the servers 106. In one of these embodiments, anetwork 104′ (not shown) may be a private network and anetwork 104 may be a public network. In another of these embodiments, anetwork 104 may be a private network and anetwork 104′ a public network. In still another of these embodiments,networks - The
network 104 may be connected via wired or wireless links. Wired links may include Digital Subscriber Line (DSL), coaxial cable lines, or optical fiber lines. The wireless links may include BLUETOOTH, Wi-Fi, Worldwide Interoperability for Microwave Access (WiMAX), an infrared channel or satellite band. The wireless links may also include any cellular network standards used to communicate among mobile devices, including standards that qualify as 1G, 2G, 3G, or 4G. The network standards may qualify as one or more generation of mobile telecommunication standards by fulfilling a specification or standards such as the specifications maintained by International Telecommunication Union. The 3G standards, for example, may correspond to the International Mobile Telecommunications-2000 (IMT-2000) specification, and the 4G standards may correspond to the International Mobile Telecommunications Advanced (IMT-Advanced) specification. Examples of cellular network standards include AMPS, GSM, GPRS, UMTS, LTE, LTE Advanced, Mobile WiMAX, and WiMAX-Advanced. Cellular network standards may use various channel access methods e.g. FDMA, TDMA, CDMA, or SDMA. In some embodiments, different types of data may be transmitted via different links and standards. In other embodiments, the same types of data may be transmitted via different links and standards. - The
network 104 may be any type and/or form of network. The geographical scope of thenetwork 104 may vary widely and thenetwork 104 can be a body area network (BAN), a personal area network (PAN), a local-area network (LAN), e.g. Intranet, a metropolitan area network (MAN), a wide area network (WAN), or the Internet. The topology of thenetwork 104 may be of any form and may include, e.g., any of the following: point-to-point, bus, star, ring, mesh, or tree. Thenetwork 104 may be an overlay network which is virtual and sits on top of one or more layers ofother networks 104′. Thenetwork 104 may be of any such network topology as known to those ordinarily skilled in the art capable of supporting the operations described herein. Thenetwork 104 may utilize different techniques and layers or stacks of protocols, including, e.g., the Ethernet protocol, the internet protocol suite (TCP/IP), the ATM (Asynchronous Transfer Mode) technique, the SONET (Synchronous Optical Networking) protocol, or the SDH (Synchronous Digital Hierarchy) protocol. The TCP/IP internet protocol suite may include application layer, transport layer, internet layer (including, e.g., IPv6), or the link layer. Thenetwork 104 may be a type of a broadcast network, a telecommunications network, a data communication network, or a computer network. - In some embodiments, the system may include multiple, logically-grouped servers 106. In one of these embodiments, the logical group of servers may be referred to as a
server farm 38 or amachine farm 38. In another of these embodiments, the servers 106 may be geographically dispersed. In other embodiments, amachine farm 38 may be administered as a single entity. In still other embodiments, themachine farm 38 includes a plurality of machine farms 38. The servers 106 within eachmachine farm 38 can be heterogeneous—one or more of the servers 106 or machines 106 can operate according to one type of operating system platform (e.g., WINDOWS NT, manufactured by Microsoft Corp. of Redmond, Wash.), while one or more of the other servers 106 can operate on according to another type of operating system platform (e.g., Unix, Linux, or Mac OS X). - In one embodiment, servers 106 in the
machine farm 38 may be stored in high-density rack systems, along with associated storage systems, and located in an enterprise data center. In this embodiment, consolidating the servers 106 in this way may improve system manageability, data security, the physical security of the system, and system performance by locating servers 106 and high performance storage systems on localized high performance networks. Centralizing the servers 106 and storage systems and coupling them with advanced system management tools allows more efficient use of server resources. - The servers 106 of each
machine farm 38 do not need to be physically proximate to another server 106 in thesame machine farm 38. Thus, the group of servers 106 logically grouped as amachine farm 38 may be interconnected using a wide-area network (WAN) connection or a metropolitan-area network (MAN) connection. For example, amachine farm 38 may include servers 106 physically located in different continents or different regions of a continent, country, state, city, campus, or room. Data transmission speeds between servers 106 in themachine farm 38 can be increased if the servers 106 are connected using a local-area network (LAN) connection or some form of direct connection. Additionally, aheterogeneous machine farm 38 may include one or more servers 106 operating according to a type of operating system, while one or more other servers 106 execute one or more types of hypervisors rather than operating systems. In these embodiments, hypervisors may be used to emulate virtual hardware, partition physical hardware, virtualize physical hardware, and execute virtual machines that provide access to computing environments, allowing multiple operating systems to run concurrently on a host computer. Native hypervisors may run directly on the host computer. Hypervisors may include VMware ESX/ESXi, manufactured by VMWare, Inc., of Palo Alto, Calif.; the Xen hypervisor, an open source product whose development is overseen by Citrix Systems, Inc.; the HYPER-V hypervisors provided by Microsoft or others. Hosted hypervisors may run within an operating system on a second software level. Examples of hosted hypervisors may include VMware Workstation and VIRTUALBOX. - Management of the
machine farm 38 may be de-centralized. For example, one or more servers 106 may comprise components, subsystems and modules to support one or more management services for themachine farm 38. In one of these embodiments, one or more servers 106 provide functionality for management of dynamic data, including techniques for handling failover, data replication, and increasing the robustness of themachine farm 38. Each server 106 may communicate with a persistent store and, in some embodiments, with a dynamic store. - Server 106 may be a file server, application server, web server, proxy server, appliance, network appliance, gateway, gateway server, virtualization server, deployment server, SSL VPN server, or firewall. In one embodiment, the server 106 may be referred to as a remote machine or a node. In another embodiment, a plurality of nodes 290 may be in the path between any two communicating servers.
- Referring to
FIG. 1B , a cloud computing environment is depicted. A cloud computing environment may provideclient device 102 with one or more resources provided by a network environment. The cloud computing environment may include one ormore client devices 102 a-102 n, in communication with thecloud 108 over one ormore networks 104.Client devices 102 may include, e.g., thick clients, thin clients, and zero clients. A thick client may provide at least some functionality even when disconnected from thecloud 108 or servers 106. A thin client or a zero client may depend on the connection to thecloud 108 or server 106 to provide functionality. A zero client may depend on thecloud 108 orother networks 104 or servers 106 to retrieve operating system data for the client device. Thecloud 108 may include back end platforms, e.g., servers 106, storage, server farms or data centers. - The
cloud 108 may be public, private, or hybrid. Public clouds may include public servers 106 that are maintained by third parties to theclient devices 102 or the owners of the clients. The servers 106 may be located off-site in remote geographical locations as disclosed above or otherwise. Public clouds may be connected to the servers 106 over a public network. Private clouds may include private servers 106 that are physically maintained byclient devices 102 or owners of clients. Private clouds may be connected to the servers 106 over aprivate network 104.Hybrid clouds 108 may include both the private andpublic networks 104 and servers 106. - The
cloud 108 may also include a cloud based delivery, e.g. Software as a Service (SaaS) 110, Platform as a Service (PaaS) 112, and Infrastructure as a Service (IaaS) 114. IaaS may refer to a user renting the use of infrastructure resources that are needed during a specified time period. IaaS providers may offer storage, networking, servers or virtualization resources from large pools, allowing the users to quickly scale up by accessing more resources as needed. Examples of IaaS include AMAZON WEB SERVICES provided by Amazon.com, Inc., of Seattle, Wash., RACKSPACE CLOUD provided by Rackspace US, Inc., of San Antonio, Tex., Google Compute Engine provided by Google Inc. of Mountain View, Calif., or RIGHTSCALE provided by RightScale, Inc., of Santa Barbara, Calif. PaaS providers may offer functionality provided by IaaS, including, e.g., storage, networking, servers or virtualization, as well as additional resources such as, e.g., the operating system, middleware, or runtime resources. Examples of PaaS include WINDOWS AZURE provided by Microsoft Corporation of Redmond, Wash., Google App Engine provided by Google Inc., and HEROKU provided by Heroku, Inc. of San Francisco, Calif. SaaS providers may offer the resources that PaaS provides, including storage, networking, servers, virtualization, operating system, middleware, or runtime resources. In some embodiments, SaaS providers may offer additional resources including, e.g., data and application resources. Examples of SaaS include GOOGLE APPS provided by Google Inc., SALESFORCE provided by Salesforce.com Inc. of San Francisco, Calif., or OFFICE 365 provided by Microsoft Corporation. Examples of SaaS may also include data storage providers, e.g. DROPBOX provided by Dropbox, Inc. of San Francisco, Calif., Microsoft SKYDRIVE provided by Microsoft Corporation, Google Drive provided by Google Inc., or Apple ICLOUD provided by Apple Inc. of Cupertino, Calif. -
Client devices 102 may access IaaS resources with one or more IaaS standards, including, e.g., Amazon Elastic Compute Cloud (EC2), Open Cloud Computing Interface (OCCI), Cloud Infrastructure Management Interface (CIMI), or OpenStack standards. Some IaaS standards may allow clients access to resources over HTTP, and may use Representational State Transfer (REST) protocol or Simple Object Access Protocol (SOAP).Client devices 102 may access PaaS resources with different PaaS interfaces. Some PaaS interfaces use HTTP packages, standard Java APIs, JavaMail API, Java Data Objects (JDO), Java Persistence API (JPA), Python APIs, web integration APIs for different programming languages including, e.g., Rack for Ruby, WSGI for Python, or PSGI for Perl, or other APIs that may be built on REST, HTTP, XML, or other protocols.Client devices 102 may access SaaS resources through the use of web-based user interfaces, provided by a web browser (e.g. GOOGLE CHROME, Microsoft INTERNET EXPLORER, or Mozilla Firefox provided by Mozilla Foundation of Mountain View, Calif.).Client devices 102 may also access SaaS resources through smartphone or tablet applications, including, e.g., Salesforce Sales Cloud, or Google Drive app.Client devices 102 may also access SaaS resources through the client operating system, including, e.g., Windows file system for DROPBOX. - In some embodiments, access to IaaS, PaaS, or SaaS resources may be authenticated. For example, a server or authentication server may authenticate a user via security certificates, HTTPS, or API keys. API keys may include various encryption standards such as, e.g., Advanced Encryption Standard (AES). Data resources may be sent over Transport Layer Security (TLS) or Secure Sockets Layer (SSL).
- The
client device 102 and server 106 may be deployed as and/or executed on any type and form of computing device, e.g. a computer, network device or appliance capable of communicating on any type and form of network and performing the operations described herein.FIGS. 1C and 1D depict block diagrams of acomputing device 100 useful for practicing an embodiment of theclient device 102 or a server 106. As shown inFIGS. 1C and 1D , eachcomputing device 100 includes acentral processing unit 121, and amain memory unit 122. As shown inFIG. 1C , acomputing device 100 may include astorage device 128, aninstallation device 116, anetwork interface 118, an I/O controller 123, display devices 124 a-124 n, akeyboard 126 and apointing device 127, e.g. a mouse. Thestorage device 128 may include, without limitation, an operating system, software, and a software of aPinpoint System Server 120. As shown inFIG. 1D , eachcomputing device 100 may also include additional optional elements, e.g. amemory port 103, abridge 170, one or more input/output devices 130 a-130 n (generally referred to using reference numeral 130), and acache memory 140 in communication with thecentral processing unit 121. - The
central processing unit 121 is any logic circuitry that responds to and processes instructions fetched from themain memory unit 122. In many embodiments, thecentral processing unit 121 is provided by a microprocessor unit, e.g.: those manufactured by Intel Corporation of Mountain View, Calif.; those manufactured by Motorola Corporation of Schaumburg, Ill.; the ARM processor and TEGRA system on a chip (SoC) manufactured by Nvidia of Santa Clara, Calif.; the POWER7 processor, those manufactured by International Business Machines of White Plains, N.Y.; or those manufactured by Advanced Micro Devices of Sunnyvale, Calif. Thecomputing device 100 may be based on any of these processors, or any other processor capable of operating as described herein. Thecentral processing unit 121 may utilize instruction level parallelism, thread level parallelism, different levels of cache, and multi-core processors. A multi-core processor may include two or more processing units on a single computing component. Examples of a multi-core processors include the AMD PHENOM IIX2, INTEL CORE i5 and INTEL CORE i7. -
Main memory unit 122 may include one or more memory chips capable of storing data and allowing any storage location to be directly accessed by themicroprocessor 121.Main memory unit 122 may be volatile and faster thanstorage 128 memory.Main memory units 122 may be Dynamic random access memory (DRAM) or any variants, including static random access memory (SRAM), Burst SRAM or SynchBurst SRAM (BSRAM), Fast Page Mode DRAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended Data Output RAM (EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extended Data Output DRAM (REDO DRAM), Single Data Rate Synchronous DRAM (SDR SDRAM), Double Data Rate SDRAM (DDR SDRAM), Direct Rambus DRAM (DRDRAM), or Extreme Data Rate DRAM (XDR DRAM). In some embodiments, themain memory 122 or thestorage 128 may be non-volatile; e.g., non-volatile read access memory (NVRAM), flash memory non-volatile static RAM (nvSRAM), Ferroelectric RAM (FeRAM), Magnetoresistive RAM (MRAM), Phase-change memory (PRAM), conductive-bridging RAM (CBRAM), Silicon-Oxide-Nitride-Oxide-Silicon (SONOS), Resistive RAM (RRAM), Racetrack, Nano-RAM (NRAM), or Millipede memory. Themain memory 122 may be based on any of the above described memory chips, or any other available memory chips capable of operating as described herein. In the embodiment shown inFIG. 1C , theprocessor 121 communicates withmain memory 122 via a system bus 150 (described in more detail below).FIG. 1D depicts an embodiment of acomputing device 100 in which the processor communicates directly withmain memory 122 via amemory port 103. For example, inFIG. 1D themain memory 122 may be DRDRAM. -
FIG. 1D depicts an embodiment in which themain processor 121 communicates directly withcache memory 140 via a secondary bus, sometimes referred to as a backside bus. In other embodiments, themain processor 121 communicates withcache memory 140 using thesystem bus 150.Cache memory 140 typically has a faster response time thanmain memory 122 and is typically provided by SRAM, BSRAM, or EDRAM. In the embodiment shown inFIG. 1D , theprocessor 121 communicates with various I/O devices 130 via alocal system bus 150. Various buses may be used to connect thecentral processing unit 121 to any of the I/O devices 130, including a PCI bus, a PCI-X bus, or a PCI-Express bus, or a NuBus. For embodiments in which the I/O device is a video display 124, theprocessor 121 may use an Advanced Graphics Port (AGP) to communicate with the display 124 or the I/O controller 123 for the display 124.FIG. 1D depicts an embodiment of acomputer 100 in which themain processor 121 communicates directly with I/O device 130 b orother processors 121′ via HYPERTRANSPORT, RAPIDIO, or INFINIBAND communications technology.FIG. 1D also depicts an embodiment in which local busses and direct communication are mixed: theprocessor 121 communicates with I/O device 130 a using a local interconnect bus while communicating with I/O device 130 b directly. - A wide variety of I/O devices 130 a-130 n may be present in the
computing device 100. Input devices may include keyboards, mice, trackpads, trackballs, touchpads, touch mice, multi-touch touchpads and touch mice, microphones, multi-array microphones, drawing tablets, cameras, single-lens reflex camera (SLR), digital SLR (DSLR), CMOS sensors, accelerometers, infrared optical sensors, pressure sensors, magnetometer sensors, angular rate sensors, depth sensors, proximity sensors, ambient light sensors, gyroscopic sensors, or other sensors. Output devices may include video displays, graphical displays, speakers, headphones, inkjet printers, laser printers, and 3D printers. - Devices 130 a-130 n may include a combination of multiple input or output devices, including, e.g., Microsoft KINECT, Nintendo Wiimote for the WII, Nintendo WII U GAMEPAD, or Apple IPHONE. Some devices 130 a-130 n allow gesture recognition inputs through combining some of the inputs and outputs. Some devices 130 a-130 n provides for facial recognition which may be utilized as an input for different purposes including authentication and other commands. Some devices 130 a-130 n provides for voice recognition and inputs, including, e.g., Microsoft KINECT, SIRI for IPHONE by Apple, Google Now or Google Voice Search.
- Additional devices 130 a-130 n have both input and output capabilities, including, e.g., haptic feedback devices, touchscreen displays, or multi-touch displays. Touchscreen, multi-touch displays, touchpads, touch mice, or other touch sensing devices may use different technologies to sense touch, including, e.g., capacitive, surface capacitive, projected capacitive touch (PCT), in-cell capacitive, resistive, infrared, waveguide, dispersive signal touch (DST), in-cell optical, surface acoustic wave (SAW), bending wave touch (BWT), or force-based sensing technologies. Some multi-touch devices may allow two or more contact points with the surface, allowing advanced functionality including, e.g., pinch, spread, rotate, scroll, or other gestures. Some touchscreen devices, including, e.g., Microsoft PIXELSENSE or Multi-Touch Collaboration Wall, may have larger surfaces, such as on a table-top or on a wall, and may also interact with other electronic devices. Some I/O devices 130 a-130 n, display devices 124 a-124 n or group of devices may be augment reality devices. The I/O devices may be controlled by an I/
O controller 123 as shown inFIG. 1C . The I/O controller may control one or more I/O devices, such as, e.g., akeyboard 126 and apointing device 127, e.g., a mouse or optical pen. Furthermore, an I/O device may also provide storage and/or aninstallation medium 116 for thecomputing device 100. In still other embodiments, thecomputing device 100 may provide USB connections (not shown) to receive handheld USB storage devices. In further embodiments, an I/O device 130 may be a bridge between thesystem bus 150 and an external communication bus, e.g. a USB bus, a SCSI bus, a FireWire bus, an Ethernet bus, a Gigabit Ethernet bus, a Fibre Channel bus, or a Thunderbolt bus. - In some embodiments, display devices 124 a-124 n may be connected to I/
O controller 123. Display devices may include, e.g., liquid crystal displays (LCD), thin film transistor LCD (TFT-LCD), blue phase LCD, electronic papers (e-ink) displays, flexile displays, light emitting diode displays (LED), digital light processing (DLP) displays, liquid crystal on silicon (LCOS) displays, organic light-emitting diode (OLED) displays, active-matrix organic light-emitting diode (AMOLED) displays, liquid crystal laser displays, time-multiplexed optical shutter (TMOS) displays, or 3D displays. Examples of 3D displays may use, e.g. stereoscopy, polarization filters, active shutters, or autostereoscopy. Display devices 124 a-124 n may also be a head-mounted display (HMD). In some embodiments, display devices 124 a-124 n or the corresponding I/O controllers 123 may be controlled through or have hardware support for OPENGL or DIRECTX API or other graphics libraries. - In some embodiments, the
computing device 100 may include or connect to multiple display devices 124 a-124 n, which each may be of the same or different type and/or form. As such, any of the I/O devices 130 a-130 n and/or the I/O controller 123 may include any type and/or form of suitable hardware, software, or combination of hardware and software to support, enable or provide for the connection and use of multiple display devices 124 a-124 n by thecomputing device 100. For example, thecomputing device 100 may include any type and/or form of video adapter, video card, driver, and/or library to interface, communicate, connect or otherwise use the display devices 124 a-124 n. In one embodiment, a video adapter may include multiple connectors to interface to multiple display devices 124 a-124 n. In other embodiments, thecomputing device 100 may include multiple video adapters, with each video adapter connected to one or more of the display devices 124 a-124 n. In some embodiments, any portion of the operating system of thecomputing device 100 may be configured for using multiple displays 124 a-124 n. In other embodiments, one or more of the display devices 124 a-124 n may be provided by one or more other computing devices 100 a or 100 b connected to thecomputing device 100, via thenetwork 104. In some embodiments software may be designed and constructed to use another computer's display device as asecond display device 124 a for thecomputing device 100. For example, in one embodiment, an Apple iPad may connect to acomputing device 100 and use the display of thedevice 100 as an additional display screen that may be used as an extended desktop. One ordinarily skilled in the art will recognize and appreciate the various ways and embodiments that acomputing device 100 may be configured to have multiple display devices 124 a-124 n. - Referring again to
FIG. 1C , thecomputing device 100 may comprise a storage device 128 (e.g. one or more hard disk drives or redundant arrays of independent disks) for storing an operating system or other related software, and for storing application software programs such as any program related to thePinpoint System Server 120. Examples ofstorage device 128 include, e.g., hard disk drive (HDD); optical drive including CD drive, DVD drive, or BLU-RAY drive; solid-state drive (SSD); USB flash drive; or any other device suitable for storing data. Some storage devices may include multiple volatile and non-volatile memories, including, e.g., solid state hybrid drives that combine hard disks with solid state cache. Somestorage device 128 may be non-volatile, mutable, or read-only. Somestorage device 128 may be internal and connect to thecomputing device 100 via abus 150. Somestorage device 128 may be external and connect to thecomputing device 100 via a I/O device 130 that provides an external bus. Somestorage device 128 may connect to thecomputing device 100 via thenetwork interface 118 over anetwork 104, including, e.g., the Remote Disk for MACBOOK AIR by Apple. Someclient devices 100 may not require anon-volatile storage device 128 and may be thin clients or zeroclient devices 102. Somestorage device 128 may also be used as aninstallation device 116, and may be suitable for installing software and programs. Additionally, the operating system and the software can be run from a bootable medium, for example, a bootable CD, e.g. KNOPPIX, a bootable CD for GNU/Linux that is available as a GNU/Linux distribution from knoppix.net. -
Client device 100 may also install software or application from an application distribution platform. Examples of application distribution platforms include the App Store for iOS provided by Apple, Inc., the Mac App Store provided by Apple, Inc., GOOGLE PLAY for Android OS provided by Google Inc., Chrome Webstore for CHROME OS provided by Google Inc., and Amazon Appstore for Android OS and KINDLE FIRE provided by Amazon.com, Inc. An application distribution platform may facilitate installation of software on aclient device 102. An application distribution platform may include a repository of applications on a server 106 or acloud 108, which theclient devices 102 a-102 n may access over anetwork 104. An application distribution platform may include application developed and provided by various developers. A user of aclient device 102 may select, purchase and/or download an application via the application distribution platform. - Furthermore, the
computing device 100 may include anetwork interface 118 to interface to thenetwork 104 through a variety of connections including, but not limited to, standard telephone lines LAN or WAN links (e.g., 802.11, T1, T3, Gigabit Ethernet, Infiniband), broadband connections (e.g., ISDN, Frame Relay, ATM, Gigabit Ethernet, Ethernet-over-SONET, ADSL, VDSL, BPON, GPON, fiber optical including FiOS), wireless connections, or some combination of any or all of the above. Connections can be established using a variety of communication protocols (e.g., TCP/IP, Ethernet, ARCNET, SONET, SDH, Fiber Distributed Data Interface (FDDI), IEEE 802.11a/b/g/n/ac CDMA, GSM, WiMax and direct asynchronous connections). In one embodiment, thecomputing device 100 communicates withother computing devices 100′ via any type and/or form of gateway or tunneling protocol e.g. Secure Socket Layer (SSL) or Transport Layer Security (TLS), or the Citrix Gateway Protocol manufactured by Citrix Systems, Inc. of Ft. Lauderdale, Fla. Thenetwork interface 118 may comprise a built-in network adapter, network interface card, PCMCIA network card, EXPRESSCARD network card, card bus network adapter, wireless network adapter, USB network adapter, modem or any other device suitable for interfacing thecomputing device 100 to any type of network capable of communication and performing the operations described herein. - A
computing device 100 of the sort depicted inFIGS. 1B and 1C may operate under the control of an operating system, which controls scheduling of tasks and access to system resources. Thecomputing device 100 can be running any operating system such as any of the versions of the MICROSOFT WINDOWS operating systems, the different releases of the Unix and Linux operating systems, any version of the MAC OS for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, any operating systems for mobile computing devices, or any other operating system capable of running on the computing device and performing the operations described herein. Typical operating systems include, but are not limited to: WINDOWS 2000, WINDOWS Server 2012, WINDOWS CE, WINDOWS Phone, WINDOWS XP, WINDOWS VISTA, and WINDOWS 7, WINDOWS RT, and WINDOWS 8 all of which are manufactured by Microsoft Corporation of Redmond, Wash.; MAC OS and iOS, manufactured by Apple, Inc. of Cupertino, Calif.; and Linux, a freely-available operating system, e.g. Linux Mint distribution (“distro”) or Ubuntu, distributed by Canonical Ltd. of London, United Kingom; or Unix or other Unix-like derivative operating systems; and Android, designed by Google, of Mountain View, Calif., among others. Some operating systems, including, e.g., the CHROME OS by Google, may be used on zero clients or thin clients, including, e.g., CHROMEBOOKS. - The
computer system 100 can be any workstation, telephone, desktop computer, laptop or notebook computer, netbook, ULTRABOOK, tablet, server, handheld computer, mobile telephone, smartphone or other portable telecommunications device, media playing device, a gaming system, mobile computing device, or any other type and/or form of computing, telecommunications or media device that is capable of communication. Thecomputer system 100 has sufficient processor power and memory capacity to perform the operations described herein. In some embodiments, thecomputing device 100 may have different processors, operating systems, and input devices consistent with the device. The Samsung GALAXY smartphones, e.g., operate under the control of Android operating system developed by Google, Inc. GALAXY smartphones receive input via a touch interface. - In some embodiments, the
computing device 100 is a gaming system. For example, thecomputer system 100 may comprise aPLAYSTATION 3, or PERSONAL PLAYSTATION PORTABLE (PSP), or a PLAYSTATION VITA device manufactured by the Sony Corporation of Tokyo, Japan, a NINTENDO DS, NINTENDO 3DS, NINTENDO WII, or a NINTENDO WII U device manufactured by Nintendo Co., Ltd., of Kyoto, Japan, an XBOX 360 device manufactured by the Microsoft Corporation of Redmond, Wash. - In some embodiments, the
computing device 100 is a digital audio player such as the Apple IPOD, IPOD Touch, and IPOD NANO lines of devices, manufactured by Apple Computer of Cupertino, Calif. Some digital audio players may have other functionality, including, e.g., a gaming system or any functionality made available by an application from a digital application distribution platform. For example, the IPOD Touch may access the Apple App Store. In some embodiments, thecomputing device 100 is a portable media player or digital audio player supporting file formats including, but not limited to, MP3, WAV, M4A/AAC, WMA Protected AAC, AIFF, Audible audiobook, Apple Lossless audio file formats and .mov, .m4v, and .mp4 MPEG-4 (H.264/MPEG-4 AVC) video file formats. - In some embodiments, the
computing device 100 is a tablet e.g. the IPAD line of devices by Apple; GALAXY TAB family of devices by Samsung; or KINDLE FIRE, by Amazon.com, Inc. of Seattle, Wash. In other embodiments, thecomputing device 100 is a eBook reader, e.g. the KINDLE family of devices by Amazon.com, or NOOK family of devices by Barnes & Noble, Inc. of New York City, New York. - In some embodiments, the
communications device 102 includes a combination of devices, e.g. a smartphone combined with a digital audio player or portable media player. For example, one of these embodiments is a smartphone, e.g. the IPHONE family of smartphones manufactured by Apple, Inc.; a Samsung GALAXY family of smartphones manufactured by Samsung, Inc; or a Motorola DROID family of smartphones. In yet another embodiment, thecommunications device 102 is a laptop or desktop computer equipped with a web browser and a microphone and speaker system, e.g. a telephony headset. In these embodiments, thecommunications devices 102 are web-enabled and can receive and initiate phone calls. In some embodiments, a laptop or desktop computer is also equipped with a webcam or other video capture device that enables video chat and video call. - In some embodiments, the status of one or
more machines 102, 106 in thenetwork 104 is monitored, generally as part of network management. In one of these embodiments, the status of a machine may include an identification of load information (e.g., the number of processes on the machine, CPU and memory utilization), of port information (e.g., the number of available communication ports and the port addresses), or of session status (e.g., the duration and type of processes, and whether a process is active or idle). In another of these embodiments, this information may be identified by a plurality of metrics, and the plurality of metrics can be applied at least in part towards decisions in load distribution, network traffic management, and network failure recovery as well as any aspects of operations of the present solution described herein. Aspects of the operating environments and components described above will become apparent in the context of the systems and methods disclosed herein. - The present disclosure is directed towards systems and methods for providing supplemental content to a user based on the user's location and preferences. In some implementations, the system and methods described herein are implemented with the computer and network environment of
FIGS. 1A-1D . As described herein, a user's location can include the user's micro-location within the premises of a store, building, or outdoor location. For example, the system may narrow the location of a client device to a specific section within a store. - While the system and methods have been particularly shown and described with reference to specific implementations, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the system and methods described in this disclosure.
-
FIG. 2A is a schematic representation of a Pinpoint Network (PN) 200 for delivering content responsive to a client's location. As a brief overview, thePN 200 includes a Pinpoint System Server (PSS) 120. ThePSS 120 may include a plurality of components and modules. These modules may include ananti-spoofing module 261, alogistics module 262,user interface module 263, and ananalysis module 264. Additionally, thePSS 120 includes at least one database. The databases may include abeacon location database 265, acontent database 266, a user preference database 267, and acontent provider database 268. - The
PN 200 can also include a plurality ofclient devices 102 each in use by a user 230. Theclient devices 102 may include acamera 221, aGPS module 222, and awireless module 223. ThePN 200 also includes at least onebeacon 240. Thebeacon 240 includes awireless module 241 for communicating with the client device 102 (or PSS 120), ananti-spoofing module 242, and abattery 243. Additionally, thePN 200 includes at least onecontent provider 250 that providessupplemental content 251 to thePSS 120. ThePSS 120 deliverssupplemental content 251 to the plurality ofclient devices 102. The above described components of thePN 200 are connected by anetwork 104. - In some implementations, the content provider 250 a merchant that sells merchandise (or more generically referred to as content) to customers or users. In some implementations, the
supplemental content 251 is associated with the content for sell by thecontent provider 250. For example, thecontent provider 250 may be a clothing store selling content such as women's and men's fashions. In this example, thesupplemental content 251 may include information or other digital content related to the fashions for sell by the clothing store. Thecontent provider 250 may place abeacon 240 near specific content in the content provider's store. For example, thecontent provider 250 may place afirst beacon 240 near a display of sweaters and asecond beacon 240 near a rack of women's jeans. In other implementations, thebeacon 240 may be also placed near a non-content item, such as a door, cash register, or be positioned such that thebeacon 240 is near a plurality of content items. ThePSS 120 may deliversupplemental content 251 to aclient device 102 when thePSS 120 determines theclient device 102 is within a predetermined proximity of abeacon 240. - The
beacon 240 includes awireless module 241, ananti-spoofing module 242, and abattery 243. Thewireless module 241 may be a WIFI radio, a Bluetooth radio, RFID tag and/or similar wireless transmitter or receiver. In some implementations, thewireless module 241 is only a wireless transmitter. For example, thebeacon 240 may broadcast a signal that is detected by theclient device 102, but may not receive a signal from theclient device 102. Thewireless module 241 may be a low power wireless module such as a Bluetooth 4.0 (i.e., low energy) radio. Additionally or alternatively, thewireless module 241 may cycle on and off to conserve energy. In some implementations, the cycling may occur based on time of day or the detection of a nearby user. Thebeacon 240 may be configured to only broadcast a wireless signal during business hours. In some implementations, thewireless module 241 emits a wireless signal that covers a predetermined proximity zone. As described in greater detail below, thebeacon 240 may broadcast a unique beacon identification number over the wireless signal, which is detected by theclient device 102. In some implementations, the size and shape of the proximity zone may be adjusted. For example the size of the proximity zone may be adjusted by altering the power level of the wireless signal. For example, the power level of the wireless signal may be set to one of 4 dB, 0 dB, −6 dB, or −23 dB. - In some implementations, the beacon identification number is a unique identifier number that may not be detected if one is outside the defined proximity zone. In some implementations, a plurality of
beacons 240 may be daisy chained together such that they create a unified proximity zone. For example, acontent provider 250 may wish to have a single proximity zone cover an entire store rather than having micro proximity zones distributed throughout the store. In this example, each of the daisy changedBeacons 240 broadcast the same Beacon identification number. - Only able to detect the beacon identification number within the proximity zone allows the
PSS 120 to determine a location of theclient device 102. For example, and as described in greater detail below, if the client is detecting the beacon identification number 39475423, then the client must be within the proximity zone of thebeacon 240 having the identification number of 39475423. Accordingly, thePSS 120 may associate the location of thebeacon 240 with theclient device 102. - In some implementations, the
wireless module 241 allows thebeacon 240 to communicate directly with thePSS 120 via thenetwork 104. In other implementations, as in the implementation ofFIG. 2A , thebeacon 240 does not communicate directly with thePSS 120, but rather passes data to theclient device 102, which then forwards the data to thePSS 120. The method of forwarding data from theBeacon 240 to thePSS 120, via aclient device 102, is discussed in greater detail in relation toFIGS. 2B-3B . - In some implementations, the data transmitted from a
beacon 240 to theclient device 102 orPSS 120 is encrypted, for example, with 16 byte AES encryption. The data may include an AES key identifier, a beacon ID, a MAC address, the current battery level, beacon uptime, data, random data, or any combination thereof. The beacon ID may be randomly generated, and in some implementations, updated at specific intervals. For example, the beacon ID may be generated using a function (e.g., a hash function), which generates a new beacon ID at periodic intervals. ThePSS 120 may have the same hash function and may update its record of the beacon IDs as thebeacons 240 updates their beacon IDs. In some implementations, updating the beacon ID is done to prevent spoofing of thebeacon 240 and its data. An example method of encrypting the communication within thePN 200 is described in greater detail in relation toFIG. 3C . - As described above, the
beacon 240 can include ananti-spoofing module 242. Theanti-spoofing module 242 may ensure the data transmitted from thebeacon 240 to thePSS 120 is authentic. As discussed below, in some implementations, thePSS 120 may provide a user 230 with supplemental content when the user'sclient device 102 is within a predetermined proximity zone of abeacon 240. The supplemental content may be a coupon, loyalty points, or other benefit. Accordingly, acontent provider 250 may desire to ensure theclient device 102 is actually located in the expected location before providing supplemental content to theclient device 102. Theanti-spoofing module 242 may use the AES key identifier, location ID, battery level, beacon up time, or a combination thereof to ensure the authenticity of transmitted data. For example, the data packets transmitted to thePSS 120 may be encrypted and include the current battery level and up time of thebeacon 240 generating the data packets. - The
anti-spoofing module 242 may check that the battery level and up time indicated in the data packets correspond to expected values. For example, if theanti-spoofing module 242 receives a data packet that indicates the up time of aBeacon 240 should be 1 day, 3 hours and 15 minutes, but receives a data packet that indicates the up time is four days, the anti-spoofing module may determine that someone copied the data packets and is attempting to rebroadcast them without revisiting the store. In some implementations, theanti-spoofing module 242 may use a GPS radio or other location service to determine if the data packets are arriving from a location generally associated with thebeacon 240. In yet other implementations, theanti-spoofing module 242 may provide theclient device 102 with a password or other unique identification number such that theclient device 102 may verify to thePSS 120 that theclient device 102 is near thebeacon 240. The password may be a rolling password. In some implementations, if spoofing is detected thecontent provider 250 housing the beacon and/or thePSS 120 may be notified. Abeacon 240 that is the tampered with or spoofed may be remotely disabled. - In
FIG. 2A , the user 230 interacts with aclient device 102. As described above in greater detail in relation toFIG. 1 , the client may be, but is not limited to, a smart phone, a tablet computer, a laptop and/or a desktop computer. In some implementations, theclient device 102 includes aGPS module 222. TheGPS module 222 detects the current location of theclient device 102 and may transmit the detected location to thePSS 120 via thenetwork 104. The anti-spoofing module in the beacon and/or in thePSS 120,modules client device 102 is near the reported location of the beacon. For example, theclient device 102 may transmit the current location of theclient device 102 to theanti-spoofing module 261 of thePSS 120. ThePSS 120 may receive a unique beacon identification number. Referencing thebeacon location database 265, the unique beacon identification number transmitted to thePSS 120 may indicate the beacon should be located in a particular store of a shopping mall. The current location determined by thegps module 222 may indicate that theclient device 102 is in the corresponding shopping mall, and accordingly theclient device 102 may be authenticated as being near thebeacon 240. - The
client device 102 may include acamera 221. The user 230 may use the camera to capture images of merchandise or other content the user prefers. For example, if a user 230 finds a jacket that the user 230 may want to purchase at a later date, the user 230 may use thecamera 221 to capture an image of the jacket. In some implementations, the captured image may remain on theclient device 102, and in other implementations they are transmitted to thePSS 120 to be stored in the user preference database 267. - User preferences may include, but are not limited to, preferred content providers, preferred content, preferred colors, preferred price points, locations, preferred looks, preferred fashion styles, preferred users, or any combination thereof. For example, using the user interface discussed below, the user 230 may select a jacket the user likes. The jacket may then be saved to the user's preferences. In some implementations, the user 230 may view or change the stored user preferences via the
PSS 120. Responsive to those preferences, thePSS 120 may deliver supplemental content to the user. For example, after a user has stored a number of preferences thePSS 120 may send the user 230 a recommendation for pants that match the jacket the user 230 is viewing. The pants may be in a color and a price point the user 230 indicated that she liked in her saved preferences. - The
client device 102 may also include awireless module 223. In some implementations, thewireless module 223 may detect the broadcast from theBeacon 240. As described above, the broadcast may include the unique beacon identification number and other data. The other data may include a password, location data, system status data, system statistics, or any combination thereof. For example, thebeacon 240 may include current battery levels in the data broadcast. In some implementations, the data packet in the broadcast may be only a few bits in size. Using thewireless module 223 theclient device 102 may transmit the data packet to thePSS 120 on behalf of thebeacon 240. In some implementations, theclient device 102 forwards the data to thePSS 120 without reading (or decrypting) the data within the data packets. - Still referring to
FIG. 2A , and in more detail, thePSS 120 includes a plurality of modules and databases. In some implementations, thePSS 120 is a computer program running on a central server. In other implementations, thePSS 120 is a distributed system running on a plurality of computer servers. For example, thePSS 120 may be replicated across a plurality of servers or specific functions of thePSS 120 may be executed on specific computer servers. - The
PSS 120 may include ananti-spoofing module 261. Discussed in greater detail with theanti-spoofing module 242 of thebeacon 240, theanti-spoofing module 261 ensures the authenticity of the data received from theclient device 102 and/orBeacons 240. For example, thePSS 120 may receive data from the client device that includes the up time of abeacon 240. Theanti-spoofing module 261 may compare the up time with an expected up time to ensure the data is authentic. For example, if the up time is only 470 hours when it should be 1,213 hours, the anti-spoofing module may determine that the data was recorded and a third party is attempting to spoof the data to receive supplemental content such as reward points from thePSS 120. - The
logistics module 262 of thePSS 120 may provide thecontent provider 250 with logistical data. For example, thelogistics module 262 may monitor the number ofclient devices 102 that detect a specific beacon identification number over a given period of time and determine the content (or merchandise) near those beacons is more popular than the content nearbeacons 240 whose beacon identification numbers are not detected as often over the same given time period. Thelogistics module 262 may also monitor customer flow patterns through the content providers. Thecontent providers 250 may make decisions on where to place content based on the data returned from thelogistics module 262. For example, acontent provider 250 may place popular content near the back of the store such that a user will have to pass less popular content to get to the more popular content. - The
PSS 120 also includes aninterface 263. Theinterface 263 is discussed in greater detail in relation to the exemplary embodiments described in Section C. Briefly, theinterface 263 provides a means for a user 230 and/orcontent provider 250 to interact with thePSS 120. In some implementations, theinterface 263 is a plurality of web pages. In other implementations, theinterface 263 is a computer program running on thePSS 120 and/or on aclient device 102. There may be multiple versions of theuser interface 263. For example, there may be one user interface forcontent providers 250 and another user interface for users 230. In certain implementations, theuser interface 263 that is displayed to the user 230 may be responsive to the type ofclient device 102 used to view theuser interface 263. For example, the user interface may appear different when a user views theinterface 263 on a smart phone as compared to if the user views theinterface 263 on a personal computer. - The first type of
interface 263, a content provider interface, (also referred to as a console) may be the interface presented to acontent provider 250 upon logging into thePSS 120. The content provider interface may allow acontent provider 250 to upload, to thecontent database 266, descriptions and details ofsupplemental content 251, images of content 215, availability of content 215, or any combination thereof. Additionally, thecontent provider 250 may upload coupons and/or benefits to thecontent database 266 via the content provider interface. For example, thecontent provider 250 may upload a benefit to thecontent database 266 that indicates the content provider will be having a sale on Memorial Day. Accordingly, users viewing the user interface may be presented with the details of the Memorial Day sale. The console for acontent provider 250 is described below in relation to Section G. - In other implementations, the
PSS 120 may provide, through theuser interface 263, a platform for the user 230 to barter or haggle over the price of a piece ofsupplemental content 251 with the content provider. In these implementations, thecontent provider 250 may use the content provider interface to define minimum acceptable prices forsupplemental content 251 in thecontent database 266 or to define other rules that may govern the bartering and haggling process. - In another implementation, the content provider interfaces may allow for the control, configuration, and management of
beacons 240. Beacon management functions of the content provider interface may include such functions as updating firmware; configuring the hours of operation for the beacon; setting a logical radius; updating thePSS 120 as to the physical location of the beacon; and checking beacon settings, statistics, and current status (e.g., battery life). The console forPSS 120 administration is described further in relation to Section G. - In some implementations, the content provider interface is displayed via a computer program or webpage that interacts directly with the
PSS 120, which in turn transmits the above described configurations and settings to thebeacon 240. In other implementations, the content provider interface is displayed by a program or webpage executing on a mobile device. The mobile device may then allow for the direct configuration of thebeacon 240. For example, the mobile device may connect directly to thebeacon 240 by Bluetooth to deliver new configuration files, firmware updates, and/or settings to thebeacon 240. - The second type of
interface 263, the user interface, may be provided to the user 230 when interacting with thePSS 120. The exemplary embodiments discussed in Section F provide a detailed description of the user interface. Briefly, the user interface, may allow the user to view thesupplemental content 251 available by the plurality ofcontent providers 250. For example, the user interface may allow the user 230 to view or search for black high-heels available for sale by one or more stores using thePSS 120. Other searches performed by the use 230 aim include searching for content within a specific location, distance from a specific location, price range, color, size, or any combination thereof. - In some implementations, the user 230 may input preferences to the
PSS 120 via the user interface. These preferences may be saved into the user preference database 267. The preferences may be directly input into PSS 120 (e.g., the user may indicate they prefer Nike tennis shoes) or thePSS 120 may infer the user's preferences. In inferring the user's preferences, the user may “like” (or select) a plurality of content items. ThePSS 120 may then determine similarities between the selected content to determine the user's preferences. In some implementations, selecting a preferred content item may include selecting the image of the content item as it is displayed to the user 230 via theuser interface 263. In yet other implementations, the user 230 may upload images captured with thecamera 221 to user preference database 267. In yet other implementations, a first user 230 may use selected content of a second user 230 to augment the preferences of the first user 230. - The
PSS 120 also includes ananalysis module 264. In some implementations, responsive to the preferences of the user 230 stored in the user preference database 267, theanalysis module 264 provides the user 230 withsupplemental content 251 the user 230 may like. Thesupplemental content 251 provided to the user 230 may include coupons, benefits, links to other content or any combination thereof. In some implementations, the selection of thesupplemental content 251 is responsive to the location of theclient device 102. For example, when a user 230 enters the proximity zone of abeacon 240 and thePSS 120 determines theclient device 102 is at a specific location, theanalysis module 264 may then analyze the user preferences stored in the user preference database 267 and providesupplemental content 251 for the user 230 responsive to the user's preferences and the current location of the user. For example, theanalysis module 264 may determine a user is viewing sweaters within a specific store. Analyzing that a high percentage of the captures images of clothes the user uploaded to thePSS 120 include green articles of clothing, theanalysis module 264 may suggest to the user 230 to view the content provider's selection of green sweaters, located at the front of the store. In another example, the supplemental content selected by theanalysis module 264 may be responsive to only the user's current location. In some implementations, selectedsupplemental content 251 is associated with a competitor of content item near the user. For example, when viewing a pair of pants in a first store, theanalysis module 264 may send the user a coupon for a pair of similar pants at a second store. - As described herein, the
supplemental content 251 selected by theanalysis module 264 can include coupons, ads, product information or any combination thereof. In certain implementations, thesupplemental content 251 is time sensitive. For example, a coupon may be issued by theanalysis module 264 and only be valid for the next 10 minutes. In some implementations, theanalysis module 264 issues a time sensitive coupons when it has determined the user 230 may be uncertain if they wish to purchase the content item near the user. For example, theanalysis module 264 may determine that the user 230 has lingered in the vicinity of the content item for a set period of time (e.g. five minutes), and determined the user 230 is unsure of the purchase. Theanalysis module 264 may provide the user 230 with a coupon in order to persuade the user 230 to purchase the content item. - In yet other implementations, the
analysis module 264 may incorporate the data of thecontent database 266 and thecontent provider database 268 to provide theclient device 102 with supplemental content that is information about content provided by a competingcontent provider 250. For example, theanalysis module 264 may determine that aclient device 102 is in a store viewing shirts. Incorporating the data of thecontent provider database 268 and the content database theanalysis module 264 may provide the user withsupplemental content 251 that provides the user with additional information about the shirt near the user. The information may include availability, sizing information, information about similar content items, or general information about the product. - In some implementations, the
analysis module 264 provides the user 230 with information when theclient device 102 is not in the proximity zone of abeacon 240. For example, theanalysis module 264 may determine that the user 230 has uploaded a number of jackets and determines the user may be actively looking for a new winter coat. The analysis module may search thecontent database 266 and thecontent provider database 268 to determine if anycontent providers 250 in the general area currently have sales on jackets. In yet other implementations, the content providers may place bids on the opportunity to provide the user 230 with a coupon or supplemental content. Ad auctions are described further in relation to Section H. - C. Communication with the Beacon and Determining Microlocation
- In some implementations, the
beacons 240 can be placed in a location without providing thebeacons 240 with a power connector or a connection to thenetwork 104. For example, and as described above, thebeacons 240 can include abattery 243 that is configured to power thebeacons 240 for a least 1 month, 3 months, 6 months, or a year without needing to be replaced or recharged. In some implementations, thebeacons 240 do not have a direct connection to thenetwork 104. As described further below, in these implementations, thebeacons 240 can communicate with thePSS 120 through the data connection of aclient device 102. This can allow a content provider store owner to place abeacon 240 without first setting up anetwork 104 within the store or running power to the location where the store owner wishes to place thebeacon 240. -
FIG. 2B is an illustration that provides further detail about the interconnectivity between some of the components of thePN 200. In brief,FIG. 2B illustrates a plurality ofclient devices 102, each at different distances from abeacons 240. As described above theclient devices 102 are connected to thePSS 120 via anetwork 104. Alogical radius 271 extends a first distance from thebeacons 240 and aphysical radius 272 extends a second distance from the beacon 240 s. - As described above, the
beacons 240 transmits a wireless signal, such as a Bluetooth signal. The greatest distance the wireless signal may be received by aclient device 102 is thephysical radius 272 of thebeacon 240. In some implementations, alogical radius 271 may also be set for thebeacon 240. Thelogical radius 271 may be any radius within thephysical radius 272. In some implementations, more than onelogical radius 271 may be set for eachbeacon 240. In some implementations, crossing alogical radius 271 may cause an event, such as the delivery of supplemental content, to occur.Client devices 102 in different sections of the beacon's broadcast range may be treated differently. For example, different content may be delivered toclient devices 102 within thelogical radius 271 as compared toclient devices 102 outside thelogical radius 271 but within thephysical radius 272. In some implementations, thelogical radius 271 may be set via thePSS 120. Although thebeacon 240 is represented as broadcasting a wireless signal in an omnidirectional manner, one of average skill in the art will recognize that the wireless signal may be tuned such that the wireless signal is not omnidirectional. -
FIG. 2B illustrates client devices at three distances from abeacon 240. As illustrated, client device 102(1) is within theinner proximity zone 270. Client devices 102(2) are beyond thelogical radius 271 but within thephysical radius 272, and therefore within asecond proximity zone 280. Client device 102(3) is outside thephysical radius 272, and therefore not within one of the proximity zones. In some implementations, thePSS 120 may not deliver content to aclient device 102 unless the device is within alogical radius 271. In some implementations, thePSS 120 may determine that aclient device 102 is leaving the proximity of thebeacon 240 when theclient device 102 progresses from theinner proximity zone 270 to anouter zone 280 In some implementations, thePSS 120 may deliver different supplemental content to theclient device 102 responsive to if theclient device 102 is entering or leaving theinner proximity zone 270. - As described above, in some implementations, the
beacon 240 does not communicate directly with thePSS 120. The beacon may communicate with thePSS 120 via at least oneclient device 102. In some implementations, thebeacons 240 and aclient device 102 may communicate with one another using a first wireless standard and then theclient device 102 and thePSS 120 may communicate with a second communication standard. For example, thebeacon 240 may transmit a packet containing data, which is received by the client device 102(1), using the low power Bluetooth standard. The client device 102(1) may then forward the data packet to thePSS 120 using a second communication standard. For example, the client device 102(1) may use its cellular connection or a Wi-Fi connection to forward the data packet to thePSS 120. In some implementations, thedevice 102 retransmits the data packet to thePSS 120 without accessing, reading, and/or modifying the data packet. In some implementations, thedevice 102 may append a device identifier, such as a MAC address to the data packet. - The data packet can include information related to the beacon identification number or other data pertaining to the
beacon 240. For example, thebeacon 240 may relay information about its current power levels or conditions to thePSS 120 via the data packets. In some implementations, thebeacon 240 transmits the data packet to a plurality ofclient devices 102 for forwarding to thePSS 120. - In some implementations, the
PSS 120 may transmit data back to thebeacon 240 through theclient device 102. For example, thePSS 120 may select aclient device 102 within the physical radius 272 (or logical radius 271) of thebeacon 240. ThePSS 120 may then send a data packet to theclient device 102 using the second transmission protocol. Theclient device 102 may then forward the data packet to thebeacon 240 using first data transmission standard. ThePSS 120 may transmit the data packet to a plurality ofclient devices 102 within thephysical radius 272. The redundancy of the data transmission to thebeacon 240 may ensure the data still arrives to thebeacon 240 even if thefirst client device 102 leaves thephysical radius 272 before the data is fully transferred to thebeacon 240. For example, if client device 102(1) and client device 102(2) both receive the data packet from thePSS 120, if client device 102(2) leaves thephysical radius 272 before the data packet can be forwarded to thebeacon 240, client device 102(1) can still forward the data packet to thebeacon 240. In some implementations, the data that thePSS 120 transmits to abeacon 240 can include configuration files or firmware updates. -
FIG. 3A is a flow chart of anexample method 300 for determining the location of aclient device 102 and providing to theclient device 102 with supplement content. Themethod 300 includes receiving, by the client, a beacon identification number (step 301). The client then transmits the beacon identification number (step 302) to thePSS 120. Responsive to transmitting the beacon identification number, the client receives supplemental content (step 303) from thePSS 120. Responsive to receiving the supplemental content, the supplemental content is displayed on the client (step 304). - As set forth above, at
step 301, theclient device 102 receives a beacon identification number. In some implementations, the beacon identification number is received by thewireless module 223 of theclient device 102. In other implementations, theclient 102 may receive the beacon identification number by taking a picture of a QR code placed on or thebeacon 240 or through some other non-wireless transmission means. For example, the user may manually enter the beacon identification number into a computer programming running on theclient device 102. As discussed in relation toFIG. 2A , the beacon identification number may be accompanied by a data packet that may include beacon statistics or other data. - At
step 302, theclient device 102 transmits the beacon identification number to thePSS 120. In some implementations, theclient device 102 is Internet enabled and transmits the beacon identification number to thePSS 120. Theclient device 102 may add a client and/or user identification to the beacon identification number when forwarding data to thePSS 120 from thebeacon 240. Transmitting the beacon identification number may also include transmittingadditional client device 102 or user 230 information to thePSS 120. For example, when a beacon identification number is transmitted, the client may also transmit shopping preferences the user recently entered into a computer program executing on theclient device 102. In other implementations, thebeacon 240 is Internet enabled, and transmits client identification to thePSS 120 directly responsive to detecting aclient device 102 in the proximity zone. - At
step 303, in some implementations, theclient device 102 receives supplemental content. The supplemental content may be delivered to theclient device 102 from thePSS 120. As discussed above, the supplemental content may be a coupon, offer, or other information. For example, the supplemental content may be a coupon for thesupplemental content 251 near thebeacon 240, an offer for a competitor of thecontent provider 250 currently providing the content which theclient device 102 is near, or the supplemental content may be information indicating to the user additionalsupplemental content 251 that may complement the currently viewedsupplemental content 251. - At
step 304, the supplemental content is displayed to the user. In some implementations, the supplemental content is displayed to the user 230 via a computer program executing on theclient device 102. The user 230 may only receive the supplemental content if the user 230 is actively using the computer program. In other implementations, the supplemental content may be pushed to theclient device 102 and displayed to the user regardless if the user 230 is actively using the computer program. In yet other implementations, the user may only receive the supplemental content if the user is using the computer program and specifically requests the supplemental content to be delivered. For example, a user 230 may be viewing a sweater located near abeacon 240. The user 230 may wish to see if the store is selling any pants that would match the sweater. The user 230 may then activate the computer programming running on theclient device 102 and request thePSS 120 to provide the user 230 with a plurality of matching pants in the current and/or competing stores. In some implementations, the plurality of matching pants, or other supplemental content, is ranked based on the user's preferences stored in the user preference database 267. -
FIG. 3B is a flow chart of amethod 350 for determining the location of a client device. ThePSS 120 receives a data packet (step 351). ThePSS 120 determines whichbeacon 240 generated the data packet (step 352). ThePSS 120 then determines the location of the of thebeacon 240 that generated the data packet (step 352). ThePSS 120 then associates the location of thebeacon 240 that generated the data packet with theclient device 102. - As set forth above, the
method 350 begins when thePSS 120 receives a data packet. In some implementations, the data packet is generated by abeacon 240 that is one of a plurality ofbeacons 240. The data packet can be transmitted from thebeacon 240 to theclient device 102 using a first wireless standard, and then theclient device 102 forwards the data packet to thePSS 120 using a second wireless standard. In some implementations, theclient device 102 may append a client device identifier to the data packet when theclient device 102 forwards the data packet to thePSS 120. - At
step 352, thePSS 120 determines which one of the plurality ofbeacons 240 generated the data packet. In some implementations, the data packet received by thePSS 120 includes a beacon identifier. ThePSS 120 can used the beacon identifier to determine which one of thebeacons 240 generated the data packet. In some implementations, theclient device 102 that forwards the data packet to thePSS 120 may be within thephysical radius 272 of a plurality ofbeacons 240. In these implementations, theclient device 102 may receive a data packet from each of the plurality ofbeacons 240. Theclient device 102 orPSS 120 may determine with which of the plurality ofbeacons 240 has the strongest wireless connection. Theclient device 102 may forward only the data packet from thebeacon 240 with which it has the strongest data connection to thePSS 120. In some implementations, theclient device 102 may rank the strength of the connections to each of the plurality ofbeacons 240 and then forward an indication of the ranking to thePSS 120. ThePSS 120 may use the indication of the ranking to better determine the position of theclient device 102. - At
step 353, thePSS 120 determines the location of thebeacon 240 that generated the data packet. As described above, the location of each of thebeacons 240 can be saved into thebeacon location database 265. ThePSS 120 can access thebeacon location database 265 and search thebeacon location database 265 to retrieve the location of thebeacon 240 that generated the data packet. - At
step 354, thePSS 120 associates the location of thebeacon 240 with theclient device 102. For example, determining that theclient device 102 forwarded a data packet from abeacon 240 that is located within the men's section of a store, thePSS 120 may determine theclient device 102 is also within the men's section of the store. As described, above in relation to step 352, in some implementations, theclient device 102 may receive and forward a plurality of data packets form a plurality ofbeacons 240. ThePSS 120 may use the ranked list of connection strength to each of thebeacons 240 to triangulate a more specific location of theclient device 102. In some implementations, when only data packets form asingle beacon 240 are forwarded to thePSS 120, thePSS 120 may determine how far theclient device 102 is from thebeacon 240 response to the signal strength of the connection theclient device 102 establishes with thebeacon 240. For example, thePSS 120 may determine if thebeacons 240 is within a specificlogical radius 271 of thebeacon 240. - As described above, in some implementations, the communications between the
beacon 240,client 102, andPSS 120 are encrypted. The signal broadcast by thebeacon 240, for example, a Bluetooth low energy signal, can be detected by devices not part of thePN 200. For example, the signal may be detected by a laptop running packet sniffing software or the signal may be detected by third party applications executing on theclient device 102. For example, a third party may attempt to maliciously determine the user's location by loading software onto theclient device 102 and recording the beacon IDs detected as theclient device 102 visits different locations using thePN 200. To protect the privacy of users and to ensure the authenticity of communications, thebeacon 240,client 102, andPSS 120 may encrypt their communications such that even if a third party did detect the signal from abeacon 240 it would not be able to ascertain useable information from the signal. -
FIG. 3C is a flow chart of anexample method 370 for encrypting data transmissions when determining the micro-location of a client device. Atstep 371, thePSS 120 receives data from theclient device 102. In some implementations, the data includes an encrypted portion and an unencrypted portion. As described below, in some implementations, the data originates from abeacon 240. The data is broadcast by thebeacon 240 and received by theclient device 102, which forwards the data to thePSS 120. - The above discussed beacon identifier is stored in the encrypted portion of the data packet. Other data that can be used to ensure the authenticity of the communication is also stored in the encrypted portion. For example, an indication of the time the data packet was transmitted, the up-time of the
beacon 240, or similar data may be stored in the encrypted portion. In some implementations, the beacon identifier includes GPS coordinates or a text string that identifies thebeacon 240 to thePSS 120. The encrypted portion of the data can also include information regarding thebeacon 240, such as, but not limited to, battery level and firmware version. In some implementations, thebeacon 240 repeatedly transmits the same encrypted portion for a predetermined amount of time. For example, thebeacon 240 may encrypt and broadcast its current up time and beacon identification number for five minutes. After the five minute period, thebeacon 240 may generate a new encrypted portion that includes the beacon identification number and the present up time. - During manufacture, the
beacon 240 is coded with a key, for example a 16 bit-AES key. When broadcasting data, thebeacon 240 uses the key to encrypt data that it broadcasts. In some implementations, the beacon's key is updated randomly or periodically. For example, thebeacon 240 may include a shared secret that is hashed with a challenge (e.g., the current time) to create a new key. - The unencrypted portion of the data may include a key hint and a local-ID. As described in greater detail in relation to step 372, the
PSS 120 may select a key to decrypt the encrypted portion of the data using the key hint. The local-ID may be used by theclient device 102 to determine if it has recently received data from aspecific beacon 240. As the actual identification of thebeacon 240 is securely stored within the encrypted portion of the data, the client device can identify broadcasts frombeacons 240 by the local-ID and does not have to decrypt the data. For example, aclient device 102 may receive three data packets, the first with a local-ID of A, the second with a local ID of B, and a third with a local ID of A. Responsive to the local ID, theclient device 102 can determine that the first and third data packets came from thesame beacon 240. In some implementations, theclient device 102 may disregard the third data packet since it already received a data packet from that beacon in the recent past. In some implementations, the local-ID is a 16-bit identifier. At random intervals, eachbeacon 240 updates its local ID. - At
step 372, thePSS 120 selects a key to decrypt the encrypted portion of the data. In some implementations, when thePSS 120 receives encrypted data from aclient 102, thePSS 120 does not know whichbeacon 240 in thePN 200 generated the data. As eachbeacon 240 in thePN 200 encrypts its data with a unique key, thePSS 120 must determine which key to use to decrypt the data. ThePSS 120 stores each of the keys required to decrypt data sent from each of thebeacons 240PN 200. In some implementations, the key hint is part of a key-value pair, and once the key-hint is received by thePSS 120, the key-hint may be passed through a hash function to retrieve the decrypt key from a hash table. In some implementations, the key hint is not unique, such that the location of thebeacons 240 cannot be mapped by a third party. In some implementations, a geohash, or another indication of the beacon's general location, is transmitted in the unencrypted portion. ThePSS 120 may use the geohash in combination with the key hint to determine which key to use to decrypted the data. For example, aPSS 120 may receive a key hint of “DFCD 3454.” ThePSS 120 may then use the key hint to determine that beacon A has a key of “DFCD 3454 XBEA 788A 351A” and is located in California, beacon B has a key of “DFCD 3454 DPIO 89VA 478B” and is located in Massachusetts, and beacon C has a key of “DFCD 3454 78DA DPE7 3487” and is located in Georgia. ThePSS 120 may then determine that the geohash is associated with Massachusetts and select the key of “DFCD 3454 DPIO 89VA 478B”, associated with Beacon B, to decrypt the data. In some implementations, thePSS 120 may not require a geohash, and may iterative try each of the keys located with the key hint. - At
step 373, the data is decrypted. Using the key selected instep 371, thePSS 120 decrypts the encrypted portion of the data. In some implementations, thePSS 120 also authenticates the sender (i.e., the client device or application) transmitting the data to thePSS 120. ThePSS 120 may determine if the user of theclient device 102 has agreed for their location to be determined and that the application that forwarded the data to the PSS is allowed to receive location data. - At
step 374, the beacon identification number is retrieved from the decrypted portion of the data, and atstep 375 thePSS 120 determines the micro-location of the beacon associated with the beacon identification number. The method for determining the micro-location of theclient device 102 is described above in relation tomethod 350. -
FIG. 4A illustrates a schematic overview of a smartstore using beacons 240. In some implementations, thebeacons 240 are used by thePSS 120 to determine the relative location ofclient devices 102 within a store or other premise and deliver content to theclient device 102 responsive to the client device's location.FIG. 4A illustrates asmart store 400. Three beacon 240(1)-240(3) (generally referred to as beacons 240) are place within thestore 400. Beacon 240(1) is placed near the entrance to thestore 400. Beacon 240(2) is placed near the display 402(1), which is displaying produces 404(1) and 404(2). Beacon 240(3) is placed near the display 402(2), which is displaying products 404(3) and 404(4). A client device 102(1) is within the physical radius 406(3) of beacon 240(3) and a client device 102(2) is within the physical radius 406(1) of beacon 240(1). As illustrated there is noclient device 102 within the physical radius of beacon 240(2). The client devices 102(1) and 102(2) have established a wireless connection with beacons 240(1) and 240(3), respectively. The client devices 102(1) and 102(2) have also established a connection with thePSS 120 through thenetwork 104. ThePSS 120 includes the same components as thePSS 120 descried in relation toFIG. 2A . - In the example illustrated in
FIG. 4A , the beacon 240(1) is placed near the entrance of thestore 400 such that it can detect when anew client device 102 enters thestore 400. As illustrated, the client device 102(2) has just entered thestore 400 and is within the physical radius 406(1) of the beacon 240(1). While within the physical radius 406(1) of the beacon 240(1), the client device 102(2) may receive data packets with beacon identifiers from the beacon 240(1). The client device 102(2) may then forward data packets to thePSS 120 through thenetwork 104. As described above, thePSS 120 may then lookup the location of thebeacon 240 identified by the beacon identifier that was transmitted to thePSS 120 by the client device 102(2). For example, after receiving the data packet and beacon identifier from the client device 102(2), thePSS 120 may determine that the client device 102(2) is near beacon 240(1) and is therefore near the entrance of thestore 400. - The client device 102(1) may transmit data packets with deacon identifiers associated with beacon 240(3), and the
PSS 120 may determine that the user of the client device 102(1) is viewing products 404(3) and 404(4). As described above, thePSS 120 may transmit supplemental content related to the products 404(3) and 404(4) to the client device 102(1). In some implementations, thePSS 120 may send supplemental content generally related to thestore 400 to client device 102(2) when thePSS 120 determines that the client device 102(2) entered the store. For example, thePSS 120 may transmit a coupon for 15% off anyproduct 404 in thestore 400 to client device 102(2). The supplemental content deliver to client device 102 (1) may relate more specifically to the products 404(3) and 404(4). For example, thePSS 120 may deliver a coupon for 15% off of product 404(4) to the client device 102 (1) or thePSS 120 may deliver additional information regarding product 404(4) to the client device 102(1). - In some implementations, supplemental content can be advertisements, coupons, additional information, or suggested products. The
PSS 120 may determine what type of supplemental content to deliver to aclient device 102 responsive to the user preferences of the user associated with theclient device 102 or the preferences of the owners and managers of thestore 400. For example, the store owners may wish to reward repeat customers. In this example, a coupon may be delivered to aclient device 102 if theclient device 102 is determined to be near the location of beacon 240(1) a predetermined number of times within a predetermined number of days. For example, thePSS 120 may deliver a 20% off coupon to a user if the user visits the store five times in one month. In some implementations,beacons 240 may be placed outside of a store or in a location within thestore 400 such that thephysical radius 406 of thebeacon 240 may cover areas outside thestore 400. For example, the owner of thestore 400 may place abeacon 240 outside thestore 400 such that thePSS 120 can determine when a registeredclient device 102 is walking by the store and deliver supplemental content to theclient device 102. -
FIG. 4B is a flow chart of amethod 450 for delivering supplemental content to aclient device 102 in a smart store environment. Themethod 450 includes receiving user preferences (step 451) and receiving content provider preferences (step 452). Themethod 450 further includes associating a beacon with a location (step 453). Themethod 450 can also include receiving a beacon identification number from a client device (step 454). Responsive to receiving the beacon identification number, it is determined that the client device is within a predetermined radius of the location (step 455). The type of supplemental content or response that should be provided to the client is then determined (step 456). Responsive to the response determination, the supplemental content is delivered to the client device (step 457). - As set forth above, the method includes receiving user preferences (step 451) and content provider preferences (step 452). In some implementations, the preferences of the user 230 and/or
content provider 250 may be updated, added, or removed at any time. For example, the user may see an item for sale online and save it to their account to update the user's preferences. The content provider's preferences may include, but are not limited to, notifications regarding discounts on content, global use coupons, a list of competitors and/or collaborators, a list of preferred users, content inventory, or any combination thereof. The list of collaborators may be business associations that sell complementary items. For example, near Valentine's Day a local florist may enter into collaboration with a local confectioner, such that if a user 230 purchases content at one of the stores, the user 230 will automatically receive a coupon at the other store. Similarly, thecontent provider 250 may wish to keep a list of customers that, on average, spend a set dollar amount with the content provider each month, quarter or year. In turn, the content provider may have a preference to automatically provide those customers with discounts, coupons, benefits, or other supplemental content. - At
step 453, a location is associated with the beacon. The location of the beacon is stored in thebeacon location database 265. As described above, responsive to receiving a beacon identification number, thePSS 120 looks up the beacon location with the beacon identification number in thebeacon location database 265. ThePSS 120 then associates the location of the beacon with the location of theclient device 102. In some implementations, before thePSS 120 can associate the location of thebeacon 240 with theclient device 102, thePSS 120 needs to be provided the location of thebeacon 240. - At
step 454, thePSS 120 receives the beacon identification number from aclient device 102. As discussed above in relation tomethod 350, in some implementations, the beacon identification number is accompanied by a user identification number. - At
step 455, responsive to receiving the beacon identification number, thePSS 120 determines the location of the client device 102 (step 454). In some implementations, thePSS 120 compares the received beacon indemnification number with a table of beacon identification numbers stored in thebeacon location database 265. Thebeacon location database 265 may then provide thePSS 120 with the location of thebeacon 240. In some implementations, the location includes a physical location of thecontent provider 250 and/or the location of thebeacon 240 within thecontent provider 250. Responsive to determining the location and/or location of thebeacon 240, thePSS 120 may cross reference the determined location of thebeacon 240 with the current location of theclient device 102 to authenticate the received beacon identification number. In some implementations, theclient device 102 may deliver to thePSS 120 the strength of its connection with thebeacon 240 such that thePSS 120 can determine if theclient device 102 is within a logical radius of the beacons. In some implementations, thePSS 120 may wait for theclient device 102 to be within the logical radius of thebeacon 240 before transmitting supplemental content to theclient device 102. - At step 465, the
PSS 120 determines a response based on location, user preferences, and content provider preferences. In some implementations, the calculated response is a determination of the type of supplemental content to be sent to theclient device 102. In some implementations, the response based on the location of thebeacon 240, the user's preferences, the content provider's preferences, or any combination thereof. In some implementations, the user 230 may specify the type of response the user 230 would like to receive. For example, the user 230 may request a necklace to complement the currently viewed dress based on the preferences the user has uploaded to thePSS 120. As another example, the user may request a coupon for the currently view content or a list of similar items the user is currently viewing. - At
step 457, responsive to determining the response, thePSS 120 transmits the response to theclient device 102. As discussed in reference tomethod 300, in some implementations, the response is transmitted to the client only when requested by the user 230. In other implementations, the response may be automatically calculated and delivered to theclient device 102 without intervention by the user. - The skilled artisan will understand that, although the method steps above are shown in a particular order, they can be done in any order, or certain steps may be skipped entirely.
- Having described the components of the system, an example of a user 230 interacting with the
system 200 may provide further details and context for understanding the system and methods disclosed herein. While the below example particularly show and describe specific implementations, it should be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the system and methods described in this disclosure. - As a basis for the example, the
PSS 120 hosts a website that the user 230 may access via aclient device 102, such a web enabled smart phone or home computer. Furthering the example, thecontent providers 250 may be a clothing merchant that sells clothing through its retail outlets or stores. Within those outlets the clothingmerchant places beacons 240 throughout the store. The merchant may then list the merchandise available at the store with thePSS 120. Additionally, the PSS may gather images of merchandise from non-content providers, such from the website of fashion magazines. - In this example, a user may view clothing, accessories and other merchandise on the website hosted by the
PSS 120. As the user views the items on the website, the user may mark items they like or dislike. The system may then use the characteristics of these items to update the user's shopping and merchandise preferences. The website saves the user's preferences and “liked” items so the user may view details about them at a later time or share the details with friends via the website. For example, a group of friends may send each other images of dresses they like for an event, or a user may view the items save by a fashion forward movie star or other fashion opinion leader. - These details may also be saved, synced, and/or accessed by the user's smart phone. In this example, the user's smart phone may include a computer program that syncs with the
PSS 120. Additionally, the smart phone may be Bluetooth enabled such that it can detect the presence of a beacon. - Now referring back to the clothing store of content provider. The merchant can place a number of beacons around the store, for example, at the entrance to the store and near a table of dresses. In a manner completely transparent to the user, when the user enters a beacon-enabled, clothing store the user's phone may recognize the beacon. The beacon may send the phone a identifier, which the phone retransmits to the
PSS 120. ThePSS 120 resolves the identifier and determines in which store the beacon is located and the beacon's location within the store. Accessing the user's preferences, thePSS 120 may determine specific items the user may like. - As this process is transparent to the user, the user's experience of walking into a beacon-enabled store is as follows. Within a few moments of walking into the store, the user's phone alerts the user that the store has a dress similar to the dress the user recently indicated liking on the website hosted by the
PSS 120. Additionally, the user may receive information about the dress such as availability, location with the store, and price. The user may also receive a coupon for 10% off from the merchant as a thank you for having visited the store multiple times within the last week. - Next, the user may walk to table displaying the dress. The table contains a beacon. As the user nears the table the user's phone detects the beacon and, as described above, relays the beacon's identification to the
PSS 120. Knowing the location of the beacon, thePSS 120 can estimate that the user is viewing the dress. - Not seeing the dress in the user's size, the user may request assistance from a store employee via the program running on the phone. Additionally, if the user accesses the program while in the store the program may automatically display information about the merchandise at the nearest beacon. In this example, rather than asking for assistance from an employee, the user may access the program on the user's phone, which automatically reveals information about the dress the user is viewing. This information may reveal to the user the store currently has three of the dresses in the user's size in the store's back storage area.
- The system, having noticed the user has been near the beacon corresponding to the dress for some time without moving on, may predict the user has mixed feelings about purchasing the dress. After the user has been in close proximity to the dress for a few minutes, the
PSS 120 may automatically deliver to the user's phone a coupon for the dress that is valid for only the next 10 minutes. - As discussed above, the
PSS 120 includes aninterface module 263. In some implementations, theinterface module 263 generates a user interface and a content provider interface. The interfaces may be a website executing on thePSS 120 and/or another central web server. In some implementations, theclient device 102 executes a computer program that interfaces with thePSS 120. In other implementations, theclient device 102 includes a web browser that views the website pages provided by thePSS 120 and/or other central web server. The exemplary implementations below represent a possible user interfaces that may be viewed as a webpage and/or as a graphical user interface of a computer program interacting with thePSS 120. -
FIG. 5A is a first page of an exemplary implementation of a user interface. The user interface displays a plurality ofcontent items 501 that are available from one ormore content providers 250. In some implementations, the displayedcontent items 501 can be filtered. For example, the user 230 may request that only men's fashions be displayed or onlysupplemental content 251 from aparticular content provider 250 be displayed. The user interface also includes a number of buttons 502(1)-502(n). The exemplary implementation ofFIG. 5 includes 5 buttons. The buttons may be “soft buttons” that update according to the current page of the user interface that is currently displayed. In other implementations, thebuttons 502 are constant throughout the plurality of pages of the user interface. In some implementations, the user may select displayed content. Selecting the displayed content add and/or updates the user's preferences. - Similarly, in
FIG. 5B the exemplary user interface is displaying a plurality ofcontent providers 250. In some implementations, the plurality ofcontent providers 250 is allcontent providers 250 that are in thePN 200. In other implementations, the displayedcontent providers 250 are a sub-population of the total number ofcontent providers 250. For example, the user 230 may wish to onlydisplay content providers 250 that have been selected by the user 230 and/oronly content providers 250 that are within a given distance of the current location of the user 230. In some implementations, the user may select content providers to add to the user's preferences. -
FIG. 5C is an exemplary implementation of the user interface displayingcontent providers 250 within a given location of the user 230. In some implementations, thenearby content providers 250 are displayed on amap 504. Thecontent providers 250 may be marked on themap 504 with anindicator 505. The user 230 may set the scale of themap 504, and the number of displayedcontent providers 250 may update as the user 230 pans and zooms the view of themap 504. - In some implementations, the choice of
content provider 250 to display on themap 504 is responsive to the user preference and/or content provider preferences stored in thePSS 120. For example, the user interface may only displaycontent providers 250 that thePSS 120 has determined the user has a high probability of having an interest. In other implementations, the selection of thecontent providers 250 to display may be based on the preferences of thecontent providers 250. For example, the content providers may wish to have thePSS 120 provide, via the user interface, coupons to a specific demographic of user within a 2 mile radius of the content provider. -
FIG. 5D is an exemplary implementation of the user interface displaying additional information regarding acontent provider 250. In some implementations, responsive to selecting anindicator 505 on themap 504, additional information is provided to the user regarding the selectedcontent provider 250. Additional information about thecontent provider 250 may be displayed in awindow 506 that is overlaid on themap 504. Thewindow 506 may display, but is not limited to displaying, the content provider's name, location, contact information, availability of content, and available supplemental content. -
FIG. 5E is an exemplary implementation of the user interface for displaying supplemental content to a user 230.FIG. 5D lists a plurality ofsupplemental content 507 currently available to the user 230. In some implementations, the user 230 may save specific supplemental content for later use. As described above, in some implementations, the displayedsupplemental content 507 is global supplemental content. Global supplemental content may be supplemental content that is available to all users of thePN 100. In other implementations, the displayed supplemental content includessupplement content 507 that is specifically selected for and/or by the user 230. -
FIG. 5E is an exemplary implementation of the user interface for displaying the user's profile. In some implementations, the profile page may act as the hub of the user interface. For example, the user may add, remove, or change preferences. In some implementations, the user 230 may change system preferences on the profile page. In some implementations, system preferences may change the way the user 230 interacts with the user interface or howcontent providers 250 are allowed to interact with the user 230. In some implementations, the profile page includes awindow 508 that displays current or recent activity. The number of new items may also be represent to the user as anotification icon 509 that is always viewable to the user 230 when the user 230 is using the user interface. - As described above, the
PSS 120 includes aninterface module 263. In addition to the user interface descried above, thePSS 120 may also provide a content provider interface and system management interface. The content provider interface may providecontent providers 250 with an interface for performing actions such as updating supplemental content (e.g., coupons) and changing beacon parameters (e.g., logical radii settings). The system management interface may allow the manager of thePSS 120 to perform functions such as, but not limited to, adding new content provider accounts and associatingbeacons 240 withspecific content providers 250. - The
interface module 263 may provide the manager of thePSS 120 with a system management interface (also referred to as the console) for managing various aspects of thePSS 120. These aspects may include adding and removingcontent providers 250 from thePSS 120 and associatingbeacons 240 withspecific content providers 250. As described above, the console or other interface may be provided in the form of a webpage, web application, and/or computer program. The interface may be accessed and/or executed by various types of computing devices, such as desktop computers, laptops, smart phones and/or tablet computers. - In some implementations, the PSS manager may use the console to add
content providers 250 to thePSS 120. For example, thePSS 120 may be managed by a company that sells and/or licenses accounts tocontent providers 250. The manager of thePSS 120 may create a PSS account for thecontent provider 250 responsive to selling and/or licensing a PSS account to thecontent provider 250. Thecontent provider 250 may provide information to the PSS manger. The PSS manger may then use the information to setup a PSS account for thecontent provider 250. The information may include an account name, account manager information, number of properties (e.g., stores) in which thecontent provider 250 may be using thebeacons 240, the number ofbeacons 240 thecontent provider 250 is requesting (or purchasing), number of user logins to be associated with the PSS account, and any special instructions for the PSS manager. The PSS manager may future associate licensing restrictions with the content provider's 250 PSS account. The licensing restrictions may include the length of the license and the features of thePSS 120 thecontent provider 250 is licensed to use. Optional features to license may include content management and publishing, offers management, in-store beacon management, and analytics capabilities. - Responsive to creating the content provider's 250 PSS account, the PSS manager may associate an account administrator to the PSS account. The account administrator may be an employee of the
content provider 250 responsible for managing the PSS account. Managing a PSS account may include adding and removing authorized account users and managing the content provider's 250 PSS preferences. - As described above, the
content provider 250 may be a store. In some embodiments, thecontent provider 250 may own or manage a plurality of properties. For example, thecontent provider 250 may be a chain, which operates one or more stores in one or more cities. In some embodiments, the account administrator may group its plurality of properties responsive to a set criteria. For example, the plurality of stores may be grouped responsive to a geographic location. In some embodiments, the account administrator may group its plurality of properties based on a scheme that mirrors the content provider's 250 business structure. For example, thecontent provider 250 may divide its stores into sales regions. When grouping the plurality of properties associated with the PSS account, the account administrator may group the plurality of properties such that the groups align with the sales region. - In some implementations, one type of authorized user may be a group administrator. The group administrator may be responsible for one or more groups associated with the content provider's 250 PSS account. Continuing the above example, the system user responsible for a group may be a regional manager for a sales region. Another type of authorized user may be the role authorized user. The group administrators may create role authorized users and assign predetermined responsibilities to the role authorized users. Example responsibilities (or roles) may include content creator, offers manager, data analyst manager, and beacon manager. In some implementations, the content creator may create, manage, and publish content provider assets and product merchandising. The offers manager may create and manage the personalized supplemental content provided to users 230. The data analysis manager may generate and view reports created by the
PSS 120 and theanalysis module 264. The beacon manager may activate and deactivatebeacons 240 and set beacon parameters such as location and the above describedlogical radius 271. In some implementations, authorized users may be created which are not assigned specific roles. These authorized users may log into a content provider's 250 PSS account to view information, but may not be authorized to perform tasks associated with the above described roles. - One or more of the authorized user types may be authorized to perform various administrative functions. For example, an administrative function may include sending messages to the authorized users associated with the content provider's 250 PSS account. In some implementations, the messages may be sent to a specific type of authorized user. For example, the messages may be sent to only the beacon managers. Administrative functionality may also include resetting and/or retrieving passwords, performing system audits, and creating user directories.
-
FIG. 6 is a flow chart of the hierarchical relationship between the authorized user types described above. As an overview, thePSS manager 600 is the highest level authorized user. ThePSS manager 600 may manage thePSS 120. ThePSS manager 600 may sell the services of thePSS 120 ton content providers 250. For eachcontent provider 250, thePSS manager 600 may create anaccount manager 601. Theaccount manager 601 may then create one ormore group managers 602. Eachgroup manager 602 may then create one or more role authorized users 603. The role authorized users 603 may then create one or more authorized users 604. In some implementations, a user type may create and/or manage user types below it on the relationship tree. - In some embodiments, the PSS manager licenses and/or sells the
beacons 240 tocontent providers 250. In some embodiments, specific functions of thebeacons 240 may need to be managed by thecontent provider 250 and/or the PSS manager. For example, the PSS manager may activate and deactivatebeacons 240 responsive to the start and end of a licensing agreement with acontent provider 250. Thecontent provider 250 may manage beacon parameters such as thelogical radius 271. In some implementations,beacons 240 may be managed by one or more of the above described authorized user types. - In some implementations, the PSS manager may maintain a database of the
beacons 240 within thePN 200. The database may include the beacon's 240 serial number, MAC address, manufacturing data, manufacturer, version number, firmware version number, shipment date, associatedcontent provider 250 and case type. The PSS manager may populate the database prior to sending thebeacons 240 to thecontent provider 250. - Responsive to receiving the
beacons 240 from a PSS manager, thecontent provider 250 may log into the console and set various beacon parameters. In some embodiments, the parameters may include beacon placement, the size of thelogical radius 271, and the active/inactive state. In some embodiments, via the console, the beacon manager may also view beacon status reports for thebeacons 240 under its management. The information may include the version number of thebeacon 240, battery level, activation state, and up time. - An authorized user may manage the content provider's 250 supplemental content and the content's distribution through the console. The
content provider 250 may create and manage conditions that govern the distribution of supplemental content. The conditions may include store segments, audience segments, event triggers, and user parameters. As described below, the conditions may be created and applied to one or more supplemental content items. By reusing conditions and rules, the authorized users may reduce the time required to create supplemental content. - One exemplary embodiment of a condition is a store segment condition. In some embodiments, the above described groups may also be further divided into store segments to provide greater control in where supplemental content is distributed. The store segments may incorporate one or more parameters. For example, a content provider's 250 stores may be segments based on the store's performance and/or location. In some implementations, a store may belong to more than one segment. For example, a content provider's 250 store in New York City may belong to a New England segment, a New York state segment, a New York City segment, and a high performance segment.
- An audience segment condition may be another exemplary embodiment of a condition. The audience segment may allow supplemental content to be provided to only specific users 230. Audience segments may include one or more parameters such as, but not limited to, the number of visits within a given time range, the age of the user 230, and the gender of the user 230. For example, a user 230 may be included in a first audience segment if the user 230 visits the
content provider 250 more than three times in the last month, is between the ages of 18 and 34, and is female. - The delivery of supplemental content may be triggered responsive to an event condition. These event conditions may be referred to as offer trigger events. A number of parameters may be associated with the offer trigger. The parameters may include location, beacon reference, delay time, dwell time, and default status. For example, an offer trigger that occurs when a user 230 enters a content provider's 250 store may include the parameters: title=Walk in Instant; Beacons=All; Delay time=0 sec; default=yes.
- Having created the conditions that may control the distribution of the supplemental content, the authorized users may create the supplemental content. The supplemental content may be placed in an offer queue that dispenses the supplemental content. In some implementations, multiple offer queues may be created. In some implementations, multiple offer queues may be created; however, only one may be active at a given time. For example, an offer manager may create offer queues for each season and then activate the seasonal offer queue during the correct season. The supplemental content may include one or more parameters. The parameters may include supplemental content value (e.g., 30% off or $10 off a purchase of $50), start date, end date, start time, end time, barcode image, supplemental content code, expiration time, exclusions, frequency cap, sharing option, and template. The template may layout and design (i.e., the visual presentation) of the supplemental content. In some implementations, the
PSS 120 may verify one or more the supplemental content parameters before distributing the supplemental content. For example, the frequency cap of one supplemental content item may be set to 1,000. In this example, if the supplemental content has already been distributed 1,000 times, thePSS 120 may look for another supplemental content item in the offer queue to distribute to the user 230. Responsive to creating the supplemental content, the supplemental content may be associated with an audience segment condition, store segment condition, and/or trigger event condition. - In some implementations, the
PSS 120 may determine that a user 230 meets the conditions to receive more than one supplemental content item. In some embodiments, a priority level condition may be assigned to each supplemental content item. The priority level may be used to determine which supplemental content item the user 230 should receive. For example, the offer manager may create supplemental content for loyal customers and give it a higher priority than supplemental content for the general public. Accordingly, in this example, the loyal customer may receive the supplemental content intended for loyal customers over the supplemental content intended for the general public. - In some embodiment, the
PSS 120 may include a mechanism for approving supplemental content. In some implementations, offers reducing the price ofsupplemental content 251 by a percentage or amount over a predetermined limit require approval before thePSS 120 distributes the supplemental content to users 230. ThePSS 120 may seek approval for supplemental content my sending a message (e.g., an email message) to the account manager or other authorized user authorized to approval supplemental content. -
FIG. 7 is a flow chart of amethod 700 for creating, managing, and delivering supplemental content. Atstep 701, themethod 700 includes creating one or more conditions. As described above, the conditions may include audience segment conditions, store segment conditions, and event trigger conditions. In some implementations, thePSS 120 stores the conditions such that they may be used with multiple supplemental content items. Atstep 702, the supplemental content is created. Creating supplemental content may include associating predetermined parameters with an offer. - At
step 703, the supplemental content is approved. In some implementations, the supplemental content may not require approval, and in other implementations, the supplemental content may require approval if the supplemental content includes an offer over a predetermined dollar value. - At
step 704, one or more conditions are associated with the supplemental content. As described above, the conditions may include one or more parameters. ThePSS 120 may use the parameters within the conditions to determine what supplemental content to deliver to a user's 230client device 102. - At
step 705, thePSS 120 receives a beacon identification number from aclient device 102. In some implementations,step 705 may mirror step 453 ofmethod 450 described above. As described above, when aclient device 102 is within a predetermined range of abeacon 240, theclient device 102 may detect the beacon's 204 beacon identification number. Theclient device 102 may then transmit the beacon identification number and client device identification number to thePSS 120. Responsive to the beacon identification number and client device identification number, thePSS 120 may retrieve supplemental content that may be appropriate to deliver to theclient device 102. - At
step 706, thePSS 120 determines which of the supplemental content items retrieved instep 705 should be delivered to theclient device 102. The determination may be responsive to the conditions associated with each of the supplemental content items. For example, instep 705 thePSS 120 may retrieve a first supplemental content item with the condition it is to be delivered to female user and a second supplemental content item with the condition it is to be delivered to a male user. ThePSS 120 may review these conditions and determine that as theclient device 102 is associated with a male user, the second condition should be delivered. Atstep 707, the supplemental content is delivered to theclient device 102. - The skilled artisan will understand that, although the method steps above are shown in a particular order, they can be done in any order, or certain steps may be skipped entirely.
- As described above, in some implementations, a
beacon 240 can be placed in a store. In some implementations, the store may sell a plurality of products from a plurality of venders (or content providers). For example, a home improvement store may sell ten different types of lawn mowers produced by three different venders. As described above, thePSS 120 may send supplemental content to aclient device 102 when theclient device 102 is within a predetermined range of abeacon 240. In implementations, when the beacon is placed near the products of a plurality of venders, thePSS 120 may hold a content auction to determine what supplemental content is delivered to theclient device 102. -
FIG. 8 illustrates anexample environment 800 for an content auction. As illustrated, products 801(1)-801(4) (collectively referred to as products 801) are for sale instore 802. Abeacon 240 is placed near theproducts 801. Thebeacon 240 can communicate with aclient device 102 within the beacon'sphysical radius 803. As described above, theclient device 102 is in communication with thePSS 120 through thenetwork 104. ThePSS 120 ofFIG. 8 is illustrated including acontent database 804, atransaction database 805, and anauction module 806. Any component described in relation to aPSS 120 can be included in anyother PSS 120 described herein. Theenvironment 800 also includes a plurality ofcontent providers 807 that generate supplemental content to be delivered to theclient device 102. In some implementations, thecontent provider 807 are the venders of, or otherwise associated with, theproducts 801. - In
FIG. 2A , thePSS 120 ofFIG. 8 can also include acontent database 804. Thecontent database 804 can be database where thePSS 120 stores the supplemental content generated by thecontent providers 807. The content stored in thecontent database 804 can be stored in thecontent database 804 in association with a bid price and at least onebeacon 240 or beacon location. For example, acontent provider 807 may be willing to pay $3.00 for one of its supplemental content items to be delivered toclient device 102 when theclient device 102 is near the content provider'sproduct 801. - The
PSS 120 may store the results of past auctions in thetransaction database 805. In some implementations, thecontent providers 807 may set a cap on the amount of money they wish to spend on auctions within a predetermined amount of time. ThePSS 120 may store this information in thetransaction database 805 and determine if thecontent provider 807 has enough money left in their allowance to place a bid in an active auction. For example, acontent provider 807 may wish to spend no more than $1,000 on auctions per month. In this example, if thecontent provider 807 has already spent $998.00 on auctions in the month, thetransaction database 805 may prohibit a $3.00 bid from being placed for the content provider's account. Thetransaction database 805 may also be used to general reports for billing purposes at the predetermined intervals. For example, the owner of thePSS 120 may create invoices for each of thecontent providers 807 using an interface to thetransaction database 805. - The
auction module 806 may conduct the auction to determine what supplement content is to be delivered to theclient device 102. For example, responsive to thePSS 120 determining theclient device 102 is within thephysical radius 803 of thebeacon 240, thePSS 120 may transmit supplemental content to theclient device 102. ThePSS 120 can access to thecontent database 804 to determine what content is associated with thebeacon 240. In some implementations, theauction module 806 may access thetransaction database 805 to determine if the content associated with thebeacon 240 is eligible for an auction. Content may be ineligible for an auction if, for example, thecontent provider 807 wishes to spend a predetermined amount on auctions per month and that amount has been met for the month. The content provider's content may not be eligible for auctions until the content provider's budget renews at the beginning of the next month. - Responsive to determining what content is associated with the
beacon 240, theauction module 806 conducts the ad auction. In some implementations, theauction module 806 iteratively increase the price for sending the supplemental content item to theclient device 102 until a winner of the auction is determined. For example, if theauction module 806 determines that content item A, B, C, and D are associated with products 801(1), 801(2), 801(3), and 801(4), respectively, it may enter the content items A, B, C, and D into the ad auction. In this example, if content item A has a maximum bid price of $3.00, content item B a maximum bid price of $5.00, content item C a maximum bid price of $2.00, and content item maximum D a bid price of $3.00. Theauction module 806 may increase the bid price of the auction until a winner is determined. The increase in bid price may be a fixed or variable amount. Furthering the above example, assume the increase price is $0.10. In this example, content item C would drop out once the bid price reaches 2.00 and content items A and D would drop out when the bid priced reaches 3.00. Content item B would win the auction at a price of 3.10. In some implementations,auction module 806 calculates the winning price as the second maximum highest bid price, which is to be paid by the content provider associated with the highest bid price. In this example, the second highest bid price is $3.00, which would be charged for displaying content item B. In some implementations, if the highest bid price is associated with more than one content item (for example, if the above example action also included content item E with a maximum bid price of $5.00), the winner of the auction may be determined by randomly selecting one of the content items that has the highest maximum bid price. In some implementations, with multiple highest maximum bids, each of the content items with the highest maximum bid may be queued for subsequent delivery toclient devices 102. For example, content item D may be delivered to thefirst client device 102 and content item E may be queued for display to thenext client device 102 that enters thephysical radius 803. Once the queue is empty ad auctions may resume to determine which content items are delivered toclient device 102 entering thephysical radius 803. -
FIG. 9 is a flow chart of amethod 900 for conducting an ad auction. Atstep 901, thePSS 120 receives a plurality of supplemental content items. The plurality of supplemental content items can be received from one ormore content providers 807. In some implementations, a maximum bid price and aspecific beacon 240 are associated with each of the supplemental content items. In some implementations, the supplemental content items can be associated with a plurality ofbeacons 240. For example, acontent provider 807 may sell grills through a national retailer. In this example, the content provider may associate their supplemental content items with each of the beacons located near the grilling section of each of the national retailer's stores. As described above, the maximum bid price is the maximum price thecontent provider 807 is willing to pay for the supplemental content item to be delivered to theclient device 102. - At
step 902, thePSS 120 receives an indication of aclient device 102 location. As described above in relation toFIG. 8 , thePSS 120 may determine the location of aclient device 102 by receiving a beacon identification from theclient device 102 once thebeacon 240 has crossed thephysical radius 803. ThePSS 120 may then determine the location of thebeacon 240 that generated the beacon identification number and then associate the location of thebeacon 240 with theclient device 102. - At
step 903, thePSS 120 selects a portion of the plurality of supplemental content items responsive to the location of theclient device 102. For example, theauction module 806, may search thecontent database 804 for content items that are associated with the location indicated instep 902. ThePSS 120 may then enter the selected content items into an ad auction to determine which content item is to delivered to theclient device 102. - At
step 904, thePSS 120 selects a supplemental content item responsive to the bids associated with the each of the plurality of supplemental content items selected instep 903. As described above, in some implementations, the supplemental content item is selected through an ad auction. In some implementations, responsive to multiple content items having the same maximum bid price, the ad auction can have a plurality of winners. In these instances, the content item to be delivered can be randomly selected from the plurality of winners or the winning content items may be queued for display to subsequent client devices as they enter thephysical radius 803 of thebeacon 240. Once a content item is selected for display to theclient device 102, the price of the winning bid is charged to the account of the content provider associated with the winning content item. - At
step 905, the selected supplemental content item is delivered to the client device. The content item may be delivered to the client device via Wi-Fi or a cellular connection of the client device. In some implementations, the content item is only delivered to the client device is actively running an application associated with thePSS 120. In other implementations, the content item may be delivered to theclient device 102 as a push notification, and the software application associated with thePSS 120 does not need to be open or active. In some implementations, if theclient device 102 remains within the physical radius of thebeacon 240 for a predetermined amount of time, thePSS 120 may conduct a second ad auction to deliver a second supplemental content item.
Claims (20)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/100,699 US8781502B1 (en) | 2013-02-01 | 2013-12-09 | Systems and methods for display of supplemental content responsive to location |
EP14746451.5A EP2951772A4 (en) | 2013-02-01 | 2014-01-31 | Systems and methods for display of supplemental content responsive to location |
CN201480018022.9A CN105051779A (en) | 2013-02-01 | 2014-01-31 | Systems and methods for display of supplemental content responsive to location |
PCT/US2014/014059 WO2014121024A1 (en) | 2013-02-01 | 2014-01-31 | Systems and methods for display of supplemental content responsive to location |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361759641P | 2013-02-01 | 2013-02-01 | |
US201361822568P | 2013-05-13 | 2013-05-13 | |
US14/100,699 US8781502B1 (en) | 2013-02-01 | 2013-12-09 | Systems and methods for display of supplemental content responsive to location |
Publications (2)
Publication Number | Publication Date |
---|---|
US8781502B1 US8781502B1 (en) | 2014-07-15 |
US20140219118A1 true US20140219118A1 (en) | 2014-08-07 |
Family
ID=51135743
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/100,699 Active US8781502B1 (en) | 2013-02-01 | 2013-12-09 | Systems and methods for display of supplemental content responsive to location |
US14/107,873 Active 2035-03-20 US9715698B2 (en) | 2013-02-01 | 2013-12-16 | Systems and methods for encrypting location broadcasts |
US14/169,964 Abandoned US20140222573A1 (en) | 2013-02-01 | 2014-01-31 | Systems and methods for encrypting location broadcasts |
US15/352,404 Active 2035-06-04 US10559007B2 (en) | 2013-02-01 | 2016-11-15 | System for the secure distributed firmware and configuration update of unnetworked physical devices |
US16/719,854 Active US11107127B2 (en) | 2013-02-01 | 2019-12-18 | System for the secure distributed firmware and configuration update of un-networked physical devices |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/107,873 Active 2035-03-20 US9715698B2 (en) | 2013-02-01 | 2013-12-16 | Systems and methods for encrypting location broadcasts |
US14/169,964 Abandoned US20140222573A1 (en) | 2013-02-01 | 2014-01-31 | Systems and methods for encrypting location broadcasts |
US15/352,404 Active 2035-06-04 US10559007B2 (en) | 2013-02-01 | 2016-11-15 | System for the secure distributed firmware and configuration update of unnetworked physical devices |
US16/719,854 Active US11107127B2 (en) | 2013-02-01 | 2019-12-18 | System for the secure distributed firmware and configuration update of un-networked physical devices |
Country Status (4)
Country | Link |
---|---|
US (5) | US8781502B1 (en) |
EP (1) | EP2951772A4 (en) |
CN (1) | CN105051779A (en) |
WO (1) | WO2014121024A1 (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160012517A1 (en) * | 2014-07-09 | 2016-01-14 | Sk Planet Co., Ltd. | Beacon service method, device and server |
KR20160028290A (en) * | 2014-09-03 | 2016-03-11 | 에스케이플래닛 주식회사 | Content providing system based on recognation of beacon signal |
CN105516887A (en) * | 2014-09-25 | 2016-04-20 | 阿里巴巴集团控股有限公司 | Bluetooth based positioning method and device |
CN106643696A (en) * | 2016-12-07 | 2017-05-10 | 上海潘氏投资管理有限公司 | Information processing method and apparatus |
KR20170095856A (en) * | 2014-12-19 | 2017-08-23 | 알리바바 그룹 홀딩 리미티드 | Information push method and device |
WO2017143281A1 (en) * | 2016-02-17 | 2017-08-24 | Estimote, Inc. | System and method for providing content using beacon systems |
US20170288982A1 (en) * | 2016-03-31 | 2017-10-05 | Grigorios Katsaros | Dynamically adapting cloud applications |
US20170332200A1 (en) * | 2016-05-13 | 2017-11-16 | Charles A. KAIMAN | Radiocommunication systems, methods and devices |
WO2018009878A1 (en) * | 2016-07-07 | 2018-01-11 | Estimote Polska Sp. Z O. O. | Method and system for content delivery with a beacon |
US10262331B1 (en) | 2016-01-29 | 2019-04-16 | Videomining Corporation | Cross-channel in-store shopper behavior analysis |
US20190116457A1 (en) * | 2017-10-16 | 2019-04-18 | Christopher Anthony Silva | Method and System for 3-D Location of Mobile Devices |
KR20190077406A (en) * | 2017-04-14 | 2019-07-03 | 알리바바 그룹 홀딩 리미티드 | Resource transfer method and device |
US10354262B1 (en) | 2016-06-02 | 2019-07-16 | Videomining Corporation | Brand-switching analysis using longitudinal tracking of at-shelf shopper behavior |
US10387896B1 (en) | 2016-04-27 | 2019-08-20 | Videomining Corporation | At-shelf brand strength tracking and decision analytics |
US10524083B2 (en) | 2015-09-02 | 2019-12-31 | Estimote Polska Sp z o.o. | System and method for low power data routing |
US10523685B1 (en) | 2018-08-22 | 2019-12-31 | Estimote Polska Sp z o.o. | System and method for verifying device security |
US10856107B2 (en) | 2013-08-19 | 2020-12-01 | Estimote Polska Sp z o.o. | System and method for providing content using beacon systems |
US10852441B2 (en) | 2018-08-24 | 2020-12-01 | Estimote Polska Sp z o.o. | Method and system for asset management |
US10963893B1 (en) | 2016-02-23 | 2021-03-30 | Videomining Corporation | Personalized decision tree based on in-store behavior analysis |
US11297460B2 (en) * | 2013-08-19 | 2022-04-05 | Estimote Polska Sp z o.o. | Wireless beacon and methods |
US11354683B1 (en) | 2015-12-30 | 2022-06-07 | Videomining Corporation | Method and system for creating anonymous shopper panel using multi-modal sensor fusion |
US11510041B2 (en) * | 2020-01-23 | 2022-11-22 | Geora LLC | Access to beacon networks by outside users |
Families Citing this family (124)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8116749B2 (en) | 2008-09-08 | 2012-02-14 | Proctor Jr James Arthur | Protocol for anonymous wireless communication |
US20130297416A1 (en) * | 2010-12-09 | 2013-11-07 | Checkpoints Llc | Systems, apparatuses and methods for verifying consumer activity and providing value to consumers based on consumer activity |
US10002356B2 (en) * | 2011-07-23 | 2018-06-19 | Robert Francis de Sylva | Location augmented biotransaction systems and methods |
KR20130096978A (en) * | 2012-02-23 | 2013-09-02 | 삼성전자주식회사 | User terminal device, server, information providing system based on situation and method thereof |
US20150215409A1 (en) * | 2012-09-04 | 2015-07-30 | Nokia Corporation | Method and apparatus for location-based publications and subscriptions |
US9779596B2 (en) | 2012-10-24 | 2017-10-03 | Apple Inc. | Devices and methods for locating accessories of an electronic device |
US8781502B1 (en) | 2013-02-01 | 2014-07-15 | Swirl Networks, Inc. | Systems and methods for display of supplemental content responsive to location |
WO2014130958A1 (en) * | 2013-02-25 | 2014-08-28 | Radius Mobile, Inc. | Identifying computer devices in proximity to a given origin |
US10592915B2 (en) | 2013-03-15 | 2020-03-17 | Retailmenot, Inc. | Matching a coupon to a specific product |
US10318993B2 (en) * | 2013-05-31 | 2019-06-11 | Accenture Global Services Limited | Cross-channel personalized promotion platform |
US11244376B1 (en) * | 2013-11-27 | 2022-02-08 | Giftzapz, LLC | Systems and methods for generating a gift list of items and managing distribution of items from the gift list of items by sharing one or more items on an item and personal level among different purchasers or groups of purchasers of the items |
US20160342979A1 (en) * | 2014-04-08 | 2016-11-24 | Capital One Services, Llc | Systems and methods for transaction authentication using dynamic wireless beacon devices |
US11100499B1 (en) * | 2014-05-07 | 2021-08-24 | Google Llc | Location modeling using transaction data for validation |
US10117085B2 (en) | 2014-05-19 | 2018-10-30 | Aerohive Networks, Inc. | Deployment of proximity beacon devices |
KR102103242B1 (en) * | 2014-05-27 | 2020-04-23 | 에스케이플래닛 주식회사 | Method for tighten security of beacon device, system and apparatus thereof |
EP2955629B1 (en) * | 2014-06-11 | 2021-10-27 | Home Control Singapore Pte. Ltd. | System for installing new firmware on a small-memory device |
US9432808B1 (en) | 2014-07-07 | 2016-08-30 | Microstrategy Incorporated | Education proximity services |
US10009868B1 (en) | 2014-07-07 | 2018-06-26 | Microstrategy Incorporated | Proximity services |
US10171935B1 (en) | 2014-07-07 | 2019-01-01 | Microstrategy Incorporated | Healthcare proximity services |
US9531658B2 (en) * | 2014-07-16 | 2016-12-27 | International Business Machines Corporation | Routing messages based on geolocation information associated with both the messages and with subscribers |
USD839285S1 (en) * | 2014-08-11 | 2019-01-29 | Cfph, Llc | Display screen or portion thereof with gaming graphical user interface |
US9681420B2 (en) * | 2014-08-13 | 2017-06-13 | Gimbal, Inc. | Beacon sharing platform |
US20170269186A1 (en) * | 2014-08-22 | 2017-09-21 | Philips Lighting Holding B.V. | Localization system comprising multiple beacons and an assignment system |
US9514589B2 (en) | 2014-08-25 | 2016-12-06 | Accenture Global Services Limited | Secure short-distance-based communication and access control system |
US9922294B2 (en) | 2014-08-25 | 2018-03-20 | Accenture Global Services Limited | Secure short-distance-based communication and enforcement system |
US9633493B2 (en) | 2014-08-25 | 2017-04-25 | Accenture Global Services Limited | Secure short-distance-based communication and validation system for zone-based validation |
US10009745B2 (en) | 2014-08-25 | 2018-06-26 | Accenture Global Services Limited | Validation in secure short-distance-based communication and enforcement system according to visual objects |
US9589402B2 (en) | 2014-08-25 | 2017-03-07 | Accenture Global Services Limited | Restricted area access control system |
KR102134586B1 (en) * | 2014-08-28 | 2020-07-16 | 삼성전자 주식회사 | Apparatus for generating mobile beacon signal and service method using the same |
CN104346746A (en) * | 2014-09-27 | 2015-02-11 | 深圳市无微不至数字技术有限公司 | Consumption dynamic line plan system and method for offline business district |
KR20160056086A (en) * | 2014-11-11 | 2016-05-19 | 정양산업(주) | Location-Specific Advertising Service Method Using Beacon |
US9608999B2 (en) | 2014-12-02 | 2017-03-28 | Accenture Global Services Limited | Smart beacon data security |
US10477359B2 (en) | 2014-12-08 | 2019-11-12 | International Business Machines Corporation | Publishing messages based on geographic area |
US9923719B2 (en) | 2014-12-09 | 2018-03-20 | Cryptography Research, Inc. | Location aware cryptography |
US20160162980A1 (en) * | 2014-12-09 | 2016-06-09 | Opnia LLC | Internet of things device management platform |
US9629113B2 (en) | 2015-02-09 | 2017-04-18 | Yuxing Ren | Information broadcasting and interaction system |
US10825053B2 (en) * | 2015-02-16 | 2020-11-03 | Mirum Digital Limited | Characterized wireless signal mobile messaging method and system |
EP3259741B1 (en) | 2015-02-17 | 2021-05-19 | Sensormatic Electronics LLC | Method and system for credential management |
US10149159B1 (en) * | 2015-03-19 | 2018-12-04 | Proxidyne, Inc. | Trusted beacon system and method |
US9629064B2 (en) | 2015-03-20 | 2017-04-18 | Bkon Connect, Inc. | Beacon-implemented system for mobile content management |
WO2016154129A1 (en) * | 2015-03-20 | 2016-09-29 | Graves Richard C | System for anti-spoofing beacon network and cloud based administration of related content |
JP2016200779A (en) * | 2015-04-14 | 2016-12-01 | カシオ計算機株式会社 | Content reproduction apparatus, content reproduction system, content reproduction method and program |
US11062345B2 (en) | 2015-05-13 | 2021-07-13 | Abl Ip Holding, Llc | Systems and methods for activity measurement around pop displays with wireless beacons |
US9686734B2 (en) * | 2015-05-13 | 2017-06-20 | Verizon Patent And Licensing Inc. | Determining content availability based on selective use of an active location system |
CN108012581A (en) * | 2015-06-23 | 2018-05-08 | 飞利浦照明控股有限公司 | System for protective position information |
KR102300583B1 (en) | 2015-06-26 | 2021-09-09 | 삼성전자주식회사 | A service providing method using a beacon and electronic apparatus thereof |
US10206068B2 (en) | 2015-07-09 | 2019-02-12 | OneMarket Network LLC | Systems and methods to determine a location of a mobile device |
US10091649B2 (en) * | 2015-07-12 | 2018-10-02 | Qualcomm Incorporated | Network architecture and security with encrypted client device contexts |
US10097995B2 (en) | 2015-07-12 | 2018-10-09 | Qualcomm Incorporated | Network architecture and security with encrypted network reachability contexts |
US10650162B2 (en) * | 2015-07-29 | 2020-05-12 | Simplifeye, Inc. | System and method for facilitating access to a database |
US10044502B2 (en) | 2015-07-31 | 2018-08-07 | Nicira, Inc. | Distributed VPN service |
US10567347B2 (en) | 2015-07-31 | 2020-02-18 | Nicira, Inc. | Distributed tunneling for VPN |
KR20170087303A (en) | 2016-01-20 | 2017-07-28 | 주식회사 푸른밤 | Method, system and non-transitory computer-readable recording medium for monitoring attendance |
WO2017040690A1 (en) | 2015-09-02 | 2017-03-09 | Estimote, Inc. | System and methods for object tracking with wireless beacons |
US9826351B2 (en) * | 2015-09-02 | 2017-11-21 | Estimote Polska Sp. Z O. O. | System and method for beacon fleet management |
GB2542127B (en) * | 2015-09-08 | 2020-06-03 | Arm Ip Ltd | Processing digital content |
US10148497B1 (en) * | 2015-12-11 | 2018-12-04 | Amazon Technologies, Inc. | Network addressable device automation using a beacon |
US10331155B1 (en) | 2015-12-11 | 2019-06-25 | Amazon Technologies, Inc. | Network addressable power socket automation |
KR102234408B1 (en) | 2015-12-22 | 2021-04-01 | 삼성전자주식회사 | Method for providing service in wireless network and electronic device thereof |
USD797768S1 (en) * | 2016-02-08 | 2017-09-19 | Prsym, Inc. | Display screen with graphical user interface for aspect ratio selection |
US10375060B1 (en) | 2016-02-10 | 2019-08-06 | Bkon Connect, Inc. | System for mobile content and metadata management |
USD792445S1 (en) * | 2016-02-11 | 2017-07-18 | Sears Brands, L.L.C. | Display screen or portion thereof with transitional graphical user interface |
USD791816S1 (en) * | 2016-02-11 | 2017-07-11 | Sears Brands, L.L.C. | Display screen or portion thereof with transitional graphical user interface |
USD789947S1 (en) * | 2016-02-11 | 2017-06-20 | Sears Brands, L.L.C. | Display screen or portion thereof with graphical user interface |
USD791817S1 (en) * | 2016-02-11 | 2017-07-11 | Sears Brands, L.L.C. | Display screen or portion thereof with transitional graphical user interface |
USD793426S1 (en) * | 2016-02-11 | 2017-08-01 | Sears Brands, L.L.C. | Display screen or portion thereof with graphical user interface |
USD793425S1 (en) * | 2016-02-11 | 2017-08-01 | Sears Brands, L.L.C. | Display screen or portion thereof with graphical user interface |
USD792446S1 (en) * | 2016-02-11 | 2017-07-18 | Sears Brands, L.L.C. | Display screen or portion thereof with transitional graphical user interface |
USD793427S1 (en) * | 2016-02-11 | 2017-08-01 | Sears Brands, L.L.C. | Display screen or portion thereof with graphical user interface |
US10445364B2 (en) * | 2016-03-16 | 2019-10-15 | International Business Machines Corporation | Micro-location based photograph metadata |
US9872146B2 (en) | 2016-03-22 | 2018-01-16 | Estimote Polska Sp. Z O. O. | System and method for multi-beacon interaction and management |
USD816092S1 (en) * | 2016-04-06 | 2018-04-24 | Rockwell Automation Technologies, Inc. | Display screen or portion thereof with graphical user interface |
US10074225B2 (en) | 2016-04-18 | 2018-09-11 | Accenture Global Solutions Limited | Validation in secure short-distance-based communication and enforcement system according to visual object flow |
EP3446214A1 (en) * | 2016-04-21 | 2019-02-27 | Philips Lighting Holding B.V. | Systems and methods for updating system devices in a cloud-based system for monitoring and controlling physical environments |
US9894483B2 (en) | 2016-04-28 | 2018-02-13 | OneMarket Network LLC | Systems and methods to determine the locations of packages and provide navigational guidance to reach the packages |
USD816095S1 (en) * | 2016-05-10 | 2018-04-24 | Rockwell Automation Technologies, Inc. | Display screen or portion thereof with graphical user interface |
USD816096S1 (en) * | 2016-05-10 | 2018-04-24 | Rockwell Automation Technologies, Inc. | Display screen or portion thereof with graphical user interface |
USD816684S1 (en) * | 2016-05-10 | 2018-05-01 | Rockwell Automation Technologies, Inc. | Display screen or portion thereof with graphical user interface |
USD816094S1 (en) * | 2016-05-10 | 2018-04-24 | Rockwell Automation Technologies, Inc. | Display screen or portion thereof with graphical user interface |
USD816093S1 (en) * | 2016-05-10 | 2018-04-24 | Rockwell Automation Technologies, Inc. | Display screen or portion thereof with graphical user interface |
US10531334B2 (en) * | 2016-06-28 | 2020-01-07 | International Business Machines Corporation | Determining a transmission number for a device |
US10178625B2 (en) * | 2016-07-07 | 2019-01-08 | Tile, Inc. | Power Preservation in GPS-Equipped Tracking Devices |
US20180248954A1 (en) * | 2016-07-19 | 2018-08-30 | Xenio Corporation | Establishing and configuring iot devices |
JP7030778B2 (en) * | 2016-07-28 | 2022-03-07 | コーニンクレッカ フィリップス エヌ ヴェ | Identification of the network node to which the data is replicated |
US10616725B2 (en) | 2016-09-01 | 2020-04-07 | Motie Shivtahal | Providing location-based messages using social network information |
CN106548365A (en) * | 2016-09-28 | 2017-03-29 | 杭州鸿雁智能科技有限公司 | A kind of method and device that advertisement putting is realized based on radio channel |
US11227311B2 (en) | 2016-10-05 | 2022-01-18 | Abl Ip Holding, Llc | Local data acquisition for retail displays with wireless beacons |
US10178495B2 (en) | 2016-10-14 | 2019-01-08 | OneMarket Network LLC | Systems and methods to determine a location of a mobile device |
US11763249B2 (en) * | 2016-10-14 | 2023-09-19 | Sensormatic Electronics, LLC | Robotic generation of a marker data mapping for use in inventorying processes |
US9591451B1 (en) | 2016-10-26 | 2017-03-07 | Blue Bite LLC | Dynamic generation of customized content for display on a network device |
US10554530B2 (en) * | 2016-12-20 | 2020-02-04 | The Nielsen Company (Us), Llc | Methods and apparatus to monitor media in a direct media network |
US10601591B2 (en) * | 2017-01-25 | 2020-03-24 | Microsoft Technology Licensing, Llc | Close proximity inner circle discovery |
US10831822B2 (en) | 2017-02-08 | 2020-11-10 | International Business Machines Corporation | Metadata based targeted notifications |
WO2018170539A1 (en) * | 2017-03-24 | 2018-09-27 | Honeycomb Media Pty Ltd | System and method for providing information |
US10209983B2 (en) * | 2017-04-19 | 2019-02-19 | Servicenow, Inc. | Distributed incremental updating of trays using a source control system |
US20180374069A1 (en) | 2017-05-19 | 2018-12-27 | Shelfbucks, Inc. | Pressure-sensitive device for product tracking on product shelves |
BR112019025803A2 (en) * | 2017-06-07 | 2020-07-07 | Noodle Technology Inc. | method for delay-tolerant decentralized networking, and associated means |
US10623790B2 (en) | 2017-08-11 | 2020-04-14 | Benjamin Dean Maddalena | Methods and systems for cloud-based content management |
GB201720497D0 (en) * | 2017-12-08 | 2018-01-24 | Ibm | Process |
EP3495848B1 (en) * | 2017-12-08 | 2020-11-11 | Centre National d'Etudes Spatiales | Device and method to detect spoofing of a terminal |
JP7027561B2 (en) * | 2018-01-31 | 2022-03-01 | オッポ広東移動通信有限公司 | Intermittent transmission methods and equipment |
US11388724B2 (en) * | 2018-02-16 | 2022-07-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Time resource allocation for radio access networks |
US11412041B2 (en) | 2018-06-25 | 2022-08-09 | International Business Machines Corporation | Automatic intervention of global coordinator |
US11641563B2 (en) * | 2018-09-28 | 2023-05-02 | Apple Inc. | System and method for locating wireless accessories |
US11310306B2 (en) | 2018-11-08 | 2022-04-19 | Juganu, Ltd. | Systems and methods for reliable firmware update in tree-based wireless networks |
US11863671B1 (en) | 2019-04-17 | 2024-01-02 | Apple Inc. | Accessory assisted account recovery |
CN113812175A (en) * | 2019-04-17 | 2021-12-17 | 苹果公司 | Sharing keys for wireless accessories |
US10789062B1 (en) * | 2019-04-18 | 2020-09-29 | Dell Products, L.P. | System and method for dynamic data deduplication for firmware updates |
CN110356007A (en) * | 2019-05-29 | 2019-10-22 | 北京工业大学 | A kind of extensive 3D printing model slice cloud platform based on IPv6 network |
US10515343B1 (en) | 2019-06-03 | 2019-12-24 | Blue Night Co., Ltd. | Method and system for reporting and monitoring location-related activities of mobile devices |
CN110278267B (en) * | 2019-06-21 | 2021-10-29 | 浙江蓝卓工业互联网信息技术有限公司 | Method and system for limiting use of industrial internet APP |
FR3099607B1 (en) * | 2019-07-30 | 2021-11-05 | Stmicroelectronics Grand Ouest Sas | Electronic component to firmware |
USD921693S1 (en) * | 2019-11-25 | 2021-06-08 | Blingby, Llc | Display screen with an animated graphical user interface |
KR20210067784A (en) * | 2019-11-29 | 2021-06-08 | 삼성전자주식회사 | Electronic device for providing geo-fencing service and method thereof |
US11216269B2 (en) * | 2020-01-09 | 2022-01-04 | Dell Products L.P. | Systems and methods for update of storage resource firmware |
US11429489B2 (en) * | 2020-04-28 | 2022-08-30 | Pelion Technology, Inc. | Device recovery mechanism |
US12008618B2 (en) * | 2020-07-06 | 2024-06-11 | Wiliot, LTD. | System and method for an augmented reality tag viewer |
US12118345B2 (en) | 2020-08-11 | 2024-10-15 | Hewlett-Packard Development Company, L.P. | Application status reporting via platform binary tables |
US11889302B2 (en) | 2020-08-28 | 2024-01-30 | Apple Inc. | Maintenance of wireless devices |
US12073705B2 (en) | 2021-05-07 | 2024-08-27 | Apple Inc. | Separation alerts for notification while traveling |
KR102362750B1 (en) * | 2021-09-23 | 2022-02-15 | 한화시스템(주) | Health And Usage Monitoring System executable and setting file update system and method |
US20230262049A1 (en) * | 2022-02-16 | 2023-08-17 | Dark Cryptonite, LLC | Cyberattack resistant computing system and method |
US20230275932A1 (en) * | 2022-02-25 | 2023-08-31 | Vmware, Inc. | Validation of security standard implementation for applications in protected execution environment |
US12131048B2 (en) * | 2022-06-27 | 2024-10-29 | Sap Se | Rollback of comment migration to cloud storage |
Family Cites Families (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571279B1 (en) * | 1997-12-05 | 2003-05-27 | Pinpoint Incorporated | Location enhanced information delivery system |
US6259405B1 (en) * | 1995-06-06 | 2001-07-10 | Wayport, Inc. | Geographic based communications service |
US6587835B1 (en) * | 2000-02-09 | 2003-07-01 | G. Victor Treyz | Shopping assistance with handheld computing device |
US6934532B2 (en) * | 2000-02-09 | 2005-08-23 | Apriva, Inc. | Communication systems, components, and methods operative with programmable wireless devices |
US7143289B2 (en) * | 2000-10-30 | 2006-11-28 | Geocodex Llc | System and method for delivering encrypted information in a communication network using location identity and key tables |
WO2002076039A2 (en) * | 2001-03-20 | 2002-09-26 | Koninklijke Philips Electronics N.V. | Beacon update mechanism |
US6842433B2 (en) | 2001-04-24 | 2005-01-11 | Wideray Corporation | System and method for communicating information from a computerized distributor to portable computing devices |
JP4475377B2 (en) * | 2002-12-27 | 2010-06-09 | 日本電気株式会社 | Wireless communication system, common key management server, and wireless terminal device |
CN101527926B (en) * | 2003-05-14 | 2020-07-17 | 英特尔公司 | Wireless transmitting/receiving unit configured to request and receive measurements |
US7647055B2 (en) * | 2003-09-19 | 2010-01-12 | Qualcomm Incorporated | System and method for integration of wireless computer network in position determining technology |
US7751829B2 (en) * | 2003-09-22 | 2010-07-06 | Fujitsu Limited | Method and apparatus for location determination using mini-beacons |
US7312752B2 (en) * | 2003-10-22 | 2007-12-25 | Awarepoint Corporation | Wireless position location and tracking system |
KR20050065194A (en) * | 2003-12-24 | 2005-06-29 | 한국전자통신연구원 | Ulid data structure and ulid-based location acquisition method and the lbs service system |
WO2005106523A1 (en) * | 2004-04-02 | 2005-11-10 | Qualcomm Incorporated | Methods and apparatuses for beacon assisted position determination systems |
US7283093B2 (en) * | 2004-10-27 | 2007-10-16 | International Business Machines Corporation | Method and system for monitoring location based service emitter infrastructure |
US7414988B2 (en) * | 2004-10-29 | 2008-08-19 | Skyhook Wireless, Inc. | Server for updating location beacon database |
US7873959B2 (en) * | 2005-02-01 | 2011-01-18 | Microsoft Corporation | Publishing the status of and updating firmware components |
JP4980247B2 (en) * | 2005-02-22 | 2012-07-18 | スカイフック ワイヤレス,インク. | Continuous data optimization in positioning systems |
CN101401341B (en) | 2005-11-18 | 2016-06-01 | 安全第一公司 | Secure data parser method and system |
WO2007084960A2 (en) | 2006-01-19 | 2007-07-26 | Vigicomm, Inc. | Location specific communications |
US7853721B2 (en) * | 2006-11-09 | 2010-12-14 | Yahoo! Inc. | System and method for transmission of DNS beacons |
US8385322B2 (en) * | 2007-07-30 | 2013-02-26 | Innovative Wireless Technologies, Inc. | Distributed ad hoc network protocol using synchronous shared beacon signaling |
EP2248366A4 (en) * | 2008-01-29 | 2014-04-09 | Qualcomm Inc | Secure application signing |
US8259692B2 (en) * | 2008-07-11 | 2012-09-04 | Nokia Corporation | Method providing positioning and navigation inside large buildings |
US8040219B2 (en) * | 2008-11-06 | 2011-10-18 | Sony Ericsson Mobile Communications Ab | System and method for in-building location determination |
US9886696B2 (en) * | 2009-07-29 | 2018-02-06 | Shopkick, Inc. | Method and system for presence detection |
US20110099063A1 (en) | 2009-10-20 | 2011-04-28 | Paul Clemmons | My Life Cost (MLC) Systems and Methods |
US8374632B2 (en) * | 2010-01-04 | 2013-02-12 | Alcatel Lucent | Method and apparatus for providing geo-location enablement for wireless device |
US9234760B2 (en) * | 2010-01-29 | 2016-01-12 | Blackberry Limited | Portable mobile transceiver for GPS navigation and vehicle data input for dead reckoning mode |
US8775065B2 (en) * | 2010-04-05 | 2014-07-08 | Qualcomm Incorporated | Radio model updating |
US8396485B2 (en) | 2010-11-09 | 2013-03-12 | Apple Inc. | Beacon-based geofencing |
US20130297416A1 (en) | 2010-12-09 | 2013-11-07 | Checkpoints Llc | Systems, apparatuses and methods for verifying consumer activity and providing value to consumers based on consumer activity |
US8618932B2 (en) * | 2011-03-18 | 2013-12-31 | Microsoft Corporation | Device location detection |
US20120250106A1 (en) * | 2011-03-30 | 2012-10-04 | Infosys Technologies Ltd. | Method, device and system for updating an application on a mobile device |
US8965284B2 (en) | 2011-04-07 | 2015-02-24 | Nokia Corporation | Facilitating positioning through Bluetooth low energy wireless messaging |
US8645270B2 (en) * | 2011-10-24 | 2014-02-04 | Paynection | Enhanced customer interaction channel systems and methods |
US9369959B2 (en) * | 2011-10-31 | 2016-06-14 | Nokia Technologies Oy | Wirelessly transferring data to a packaged electronic device |
US10797864B2 (en) * | 2011-11-21 | 2020-10-06 | Combined Conditional Access Development And Support, Llc | System and method for authenticating data while minimizing bandwidth |
US9125022B2 (en) | 2011-12-02 | 2015-09-01 | Microsoft Technology Licensing, Llc | Inferring positions with content item matching |
US9537889B2 (en) * | 2011-12-05 | 2017-01-03 | Microsoft Technology Licensing, Llc | Trusting crowdsourced data with issued tags |
US9699667B2 (en) * | 2012-01-09 | 2017-07-04 | Qualcomm Incorporated | Systems and methods to transmit configuration change messages between an access point and a station |
US20130278622A1 (en) * | 2012-04-23 | 2013-10-24 | Netspectrum Inc. | Secure and Authenticated Transactions with Mobile Devices |
US10360593B2 (en) * | 2012-04-24 | 2019-07-23 | Qualcomm Incorporated | Retail proximity marketing |
US9485102B2 (en) * | 2012-06-27 | 2016-11-01 | Intel Corporation | Techniques for user-validated close-range mutual authentication |
US8847754B2 (en) * | 2012-11-15 | 2014-09-30 | James Buchheim | Locator beacon and radar application for mobile device |
US8781502B1 (en) | 2013-02-01 | 2014-07-15 | Swirl Networks, Inc. | Systems and methods for display of supplemental content responsive to location |
US9122554B2 (en) * | 2013-02-08 | 2015-09-01 | Microsoft Technology Licensing, Llc | Pervasive service providing device-specific updates |
US9425962B2 (en) * | 2013-06-21 | 2016-08-23 | Intel IP Corporation | Low energy Bluetooth system with authentication during connectionless advertising and broadcasting |
US9202245B2 (en) * | 2013-08-19 | 2015-12-01 | Estimote Polska Sp. Z O.O. | Wireless beacon and methods |
US9445220B2 (en) * | 2013-09-06 | 2016-09-13 | Paypal, Inc. | Systems and methods for enabling additional devices to check in to bluetooth low energy (BLE) beacons |
US9258695B2 (en) * | 2013-12-16 | 2016-02-09 | Nokia Technologies Oy | Method, apparatus, and computer program product for service discovery in short-range communication environment |
WO2015143248A1 (en) * | 2014-03-19 | 2015-09-24 | Ebay Inc. | Managing multiple beacons with a network-connected primary beacon |
US10643243B1 (en) * | 2014-04-09 | 2020-05-05 | Groupon, Inc. | Communication beacon based promotions for mobile devices |
US20160044467A1 (en) * | 2014-07-12 | 2016-02-11 | Cartogram, Inc. | Method for improving the accuracy of an indoor positioning system with crowdsourced fingerprints |
US10321259B2 (en) * | 2014-10-28 | 2019-06-11 | Comcast Cable Communications, Llc | Low energy network |
US10542380B2 (en) * | 2015-01-30 | 2020-01-21 | Bby Solutions, Inc. | Beacon-based media network |
KR102424834B1 (en) * | 2015-04-16 | 2022-07-25 | 에스케이플래닛 주식회사 | Method for managing of beacon device, and apparatus thereof |
US10848533B2 (en) * | 2015-04-22 | 2020-11-24 | Radius Networks Inc. | Remotely configurable wireless broadcast device |
US9894475B2 (en) * | 2015-10-20 | 2018-02-13 | Perfect Sense, Inc. | Micro-location monitoring techniques |
US10475144B2 (en) * | 2016-02-26 | 2019-11-12 | Microsoft Technology Licensing, Llc | Presenting context-based guidance using electronic signs |
US10469997B2 (en) * | 2016-02-26 | 2019-11-05 | Microsoft Technology Licensing, Llc | Detecting a wireless signal based on context |
US9998853B2 (en) * | 2016-04-01 | 2018-06-12 | Microsoft Technology Licensing, Llc | Dynamically managing a listen list of beacon aware devices |
US9877212B1 (en) * | 2016-11-08 | 2018-01-23 | International Business Machines Corporation | Crowd sourcing beacon setting adjustments |
US20190005530A1 (en) * | 2017-06-29 | 2019-01-03 | International Business Machines Corporation | Determining brand loyalty based on consumer location |
US20190172086A1 (en) * | 2017-12-06 | 2019-06-06 | International Business Machines Corporation | Dynamic promotion rate based on location-based metrics |
US11205168B2 (en) * | 2018-06-26 | 2021-12-21 | International Business Machines Corporation | Frictionless microlocation detection and authorization |
-
2013
- 2013-12-09 US US14/100,699 patent/US8781502B1/en active Active
- 2013-12-16 US US14/107,873 patent/US9715698B2/en active Active
-
2014
- 2014-01-31 CN CN201480018022.9A patent/CN105051779A/en active Pending
- 2014-01-31 EP EP14746451.5A patent/EP2951772A4/en not_active Withdrawn
- 2014-01-31 WO PCT/US2014/014059 patent/WO2014121024A1/en active Application Filing
- 2014-01-31 US US14/169,964 patent/US20140222573A1/en not_active Abandoned
-
2016
- 2016-11-15 US US15/352,404 patent/US10559007B2/en active Active
-
2019
- 2019-12-18 US US16/719,854 patent/US11107127B2/en active Active
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11297460B2 (en) * | 2013-08-19 | 2022-04-05 | Estimote Polska Sp z o.o. | Wireless beacon and methods |
US11202171B2 (en) | 2013-08-19 | 2021-12-14 | Estimote Polska Sp z o.o. | System and method for providing content using beacon systems |
US10856107B2 (en) | 2013-08-19 | 2020-12-01 | Estimote Polska Sp z o.o. | System and method for providing content using beacon systems |
US10002380B2 (en) * | 2014-07-09 | 2018-06-19 | Sk Planet Co., Ltd. | Beacon service method and device |
US20160012517A1 (en) * | 2014-07-09 | 2016-01-14 | Sk Planet Co., Ltd. | Beacon service method, device and server |
US20180268466A1 (en) * | 2014-07-09 | 2018-09-20 | Sk Planet Co., Ltd. | Beacon service method, device and server |
KR20160028290A (en) * | 2014-09-03 | 2016-03-11 | 에스케이플래닛 주식회사 | Content providing system based on recognation of beacon signal |
KR102186705B1 (en) * | 2014-09-03 | 2020-12-04 | 에스케이플래닛 주식회사 | Content providing system based on recognation of beacon signal |
CN105516887A (en) * | 2014-09-25 | 2016-04-20 | 阿里巴巴集团控股有限公司 | Bluetooth based positioning method and device |
US10447790B2 (en) | 2014-12-19 | 2019-10-15 | Alibaba Group Holding Limited | Information push |
KR20170095856A (en) * | 2014-12-19 | 2017-08-23 | 알리바바 그룹 홀딩 리미티드 | Information push method and device |
KR102139409B1 (en) * | 2014-12-19 | 2020-07-30 | 알리바바 그룹 홀딩 리미티드 | Information push method and device |
US10616709B2 (en) | 2015-09-02 | 2020-04-07 | Estimote Polska Sp z o.o. | System and method for lower power data routing |
US11006237B2 (en) | 2015-09-02 | 2021-05-11 | Estimote Polska Sp z o.o. | System and method for low power data routing |
US10771917B2 (en) | 2015-09-02 | 2020-09-08 | Estimote Polska Sp z o.o. | System and method for low power data routing |
US10524083B2 (en) | 2015-09-02 | 2019-12-31 | Estimote Polska Sp z o.o. | System and method for low power data routing |
US11354683B1 (en) | 2015-12-30 | 2022-06-07 | Videomining Corporation | Method and system for creating anonymous shopper panel using multi-modal sensor fusion |
US10262331B1 (en) | 2016-01-29 | 2019-04-16 | Videomining Corporation | Cross-channel in-store shopper behavior analysis |
WO2017143281A1 (en) * | 2016-02-17 | 2017-08-24 | Estimote, Inc. | System and method for providing content using beacon systems |
US10963893B1 (en) | 2016-02-23 | 2021-03-30 | Videomining Corporation | Personalized decision tree based on in-store behavior analysis |
US10659317B2 (en) * | 2016-03-31 | 2020-05-19 | Intel Corporation | Dynamically adapting cloud applications |
US20170288982A1 (en) * | 2016-03-31 | 2017-10-05 | Grigorios Katsaros | Dynamically adapting cloud applications |
US10387896B1 (en) | 2016-04-27 | 2019-08-20 | Videomining Corporation | At-shelf brand strength tracking and decision analytics |
US20170332200A1 (en) * | 2016-05-13 | 2017-11-16 | Charles A. KAIMAN | Radiocommunication systems, methods and devices |
US10354262B1 (en) | 2016-06-02 | 2019-07-16 | Videomining Corporation | Brand-switching analysis using longitudinal tracking of at-shelf shopper behavior |
WO2018009878A1 (en) * | 2016-07-07 | 2018-01-11 | Estimote Polska Sp. Z O. O. | Method and system for content delivery with a beacon |
CN106643696A (en) * | 2016-12-07 | 2017-05-10 | 上海潘氏投资管理有限公司 | Information processing method and apparatus |
KR102194064B1 (en) | 2017-04-14 | 2020-12-23 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | Resource transmission method and device |
KR20190077406A (en) * | 2017-04-14 | 2019-07-03 | 알리바바 그룹 홀딩 리미티드 | Resource transfer method and device |
US10708715B2 (en) * | 2017-10-16 | 2020-07-07 | Christopher Anthony Silva | Method and system for 3-D location of mobile devices |
US20190116457A1 (en) * | 2017-10-16 | 2019-04-18 | Christopher Anthony Silva | Method and System for 3-D Location of Mobile Devices |
US10523685B1 (en) | 2018-08-22 | 2019-12-31 | Estimote Polska Sp z o.o. | System and method for verifying device security |
US11218492B2 (en) | 2018-08-22 | 2022-01-04 | Estimote Polska Sp. Z .O.O. | System and method for verifying device security |
US10852441B2 (en) | 2018-08-24 | 2020-12-01 | Estimote Polska Sp z o.o. | Method and system for asset management |
US11510041B2 (en) * | 2020-01-23 | 2022-11-22 | Geora LLC | Access to beacon networks by outside users |
Also Published As
Publication number | Publication date |
---|---|
US20170131994A1 (en) | 2017-05-11 |
EP2951772A1 (en) | 2015-12-09 |
CN105051779A (en) | 2015-11-11 |
EP2951772A4 (en) | 2016-09-07 |
US10559007B2 (en) | 2020-02-11 |
US11107127B2 (en) | 2021-08-31 |
US9715698B2 (en) | 2017-07-25 |
US8781502B1 (en) | 2014-07-15 |
US20140222573A1 (en) | 2014-08-07 |
US20140222685A1 (en) | 2014-08-07 |
US20200242662A1 (en) | 2020-07-30 |
WO2014121024A1 (en) | 2014-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11107127B2 (en) | System for the secure distributed firmware and configuration update of un-networked physical devices | |
US20200118161A1 (en) | Systems and methods for a platform to manage and execute marketing campaigns | |
AU2022206832B2 (en) | A System and Method for Facilitating Shopping | |
US20170052983A1 (en) | Systems and methods for screenshot linking | |
US10229429B2 (en) | Cross-device and cross-channel advertising and remarketing | |
US20200112534A1 (en) | Systems and methods for text to social networking site to buy | |
US20140143333A1 (en) | Systems and methods for a social discovery platform | |
US10524118B1 (en) | Apparatus, system and method for device activation | |
US10986375B2 (en) | Systems and methods automatically erasing content stored on a set top box | |
US20190251538A1 (en) | Systems and methods for remotely executing transactions via applications and point of sale systems | |
US12088736B2 (en) | Methods and systems for authorizing transactions based on a derived public key | |
US11574522B1 (en) | Systems and methods for arranging interface elements based on broadcaster events | |
US20140129365A1 (en) | Systems and methods for negotiating a purchase price | |
US11899656B2 (en) | Systems and methods for dynamic media asset modification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SWIRL NETWORKS, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MIDDLETON, THOMAS;BOES, ROBERT TODD;SIGNING DATES FROM 20131205 TO 20131209;REEL/FRAME:031749/0119 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551) Year of fee payment: 4 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, MASSACHUSETTS Free format text: SECURITY INTEREST;ASSIGNOR:SWIRL NETWORKS, INC.;REEL/FRAME:046592/0821 Effective date: 20180808 |
|
AS | Assignment |
Owner name: SWIRL NETWORKS, INC., MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:048123/0347 Effective date: 20190117 |
|
AS | Assignment |
Owner name: BEST BUY CO., INC., MINNESOTA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SWIRL NETWORKS, INC.;REEL/FRAME:049052/0560 Effective date: 20190115 |
|
AS | Assignment |
Owner name: BBY SOLUTIONS, INC., MINNESOTA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BEST BUY CO., INC.;REEL/FRAME:049168/0913 Effective date: 20190514 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |