US20120036003A1 - System and method for rewarding application actions - Google Patents
System and method for rewarding application actions Download PDFInfo
- Publication number
- US20120036003A1 US20120036003A1 US13/198,809 US201113198809A US2012036003A1 US 20120036003 A1 US20120036003 A1 US 20120036003A1 US 201113198809 A US201113198809 A US 201113198809A US 2012036003 A1 US2012036003 A1 US 2012036003A1
- Authority
- US
- United States
- Prior art keywords
- action
- application
- client device
- indication
- performance
- 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.)
- Abandoned
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/0207—Discounts or incentives, e.g. coupons or rebates
-
- 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/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0239—Online discounts or incentives
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/20—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
- H04W4/21—Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Definitions
- Example embodiments of the present application generally relate to an application platform, and more specifically, to techniques for detecting actions performed in applications.
- Online advertising models generally involve the delivery of advertisements or offers to users over one or more advertising channels.
- the effectiveness of the offers varies, depending on the type of offer and the channel used to deliver the offer.
- one reason a user may ignore an offer is that there is no incentive for the user to follow the offer.
- FIG. 1 is a block diagram illustrating a networked environment within which a client or mobile device connects, via a network, with an application server, while a referral system monitors the connection, according to some embodiments.
- FIG. 2 is a flow diagram illustrating example interactions between a client device, a reward machine, and an application store, according to some embodiments.
- FIG. 3 is a flow diagram illustrating example interactions between a client device, a reward machine, and an application developer, according to some embodiments.
- FIG. 4 is a flow diagram illustrating example interactions between a reward machine, an advertiser, and a publisher in response to a user action, according to some embodiments.
- FIG. 5 is a block diagram showing modules of an application, running on a client device, and modules of a reward system, running on a server, according to some embodiments.
- FIG. 6 is a flowchart illustrating an example method for tracking and incentivizing application installs, according to some embodiments.
- FIG. 7 is a flowchart illustrating an example method for delivering and monitoring targeted pay-per-action events occurring within an application, according to some embodiments.
- FIG. 8 is a flowchart illustrating an example method for registering and mapping actions occurring within an application to a pay-per-action model, according to some embodiments.
- FIG. 9 is a flowchart illustrating an example method for tracking and incentivizing the performance of actions within an application, according to some embodiments.
- FIG. 10 illustrates a diagrammatic representation of machine in the example form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
- applications may be offered for download at a centralized site, such as an application store or market (“app store”).
- apps in the app store may be listed by a variety of metrics, such as by category, popularity, and cost.
- a publisher may refer to the entity that publishes or otherwise provides an application for download by users.
- An advertiser may refer to an entity that provides an offer, usually in the form of an action to be taken by the user.
- FIG. 1 is a block diagram illustrating an example embodiment of a networked environment in which a client device connects, via a network, to an application server hosting an application store.
- client devices 102 and 104 each storing one or more applications 106 , may connect via a network 108 , such as the Internet, to an application server 120 executing an application store 122 .
- Client devices 102 and 104 may be re-directed to the app store 122 to download application(s) via the network 108 .
- Web server 110 may host a website for a mobile application platform that connects advertisers and publishers. Web server 110 may provide various hosted web services to the website, including code deployment and testing, online analytics, data storage, and task management. Web server 110 may be connected to one or more databases 112 that store data associated with the website, among other things.
- web server 110 may be an Amazon.com hosted web server providing web services. However, it is contemplated that different third party hosted providers of web services may be used, or servers associated with the website may provide web services without resort to third party-provided web services. Additional web servers (not shown) may include servers associated with the hosted website.
- the one or more databases 112 may be SimpleDB distributed databases. SimpleDB distributed databases use a key-value pair to enable fast lookup and retrieval operations as compared to structured query language (SQL) databases. It is contemplated that other databases employing key-value pairs to store and index data may be used. In some embodiments, at least one of the databases 112 may be a SQL database. Data associated with the website, such as user data and application tracking data, also may be stored in cache server 114 . Cache server 114 may include memory 116 , in the form of RAM, for example, that stores part or all of the data stored in database(s) 112 . Cache server 114 may operate as a backup or supplemental data store for the website.
- SQL structured query language
- cache server may be a Memcached distributed memory caching system.
- Publisher server 118 may either serve as the source of applications downloaded to a client device 102 or 104 or provide the applications to the application server 120 for storage and listing in the app store 122 .
- advertiser server 120 may provide and deliver advertisements to client device 102 or 104 on behalf of advertisers or advertising networks or may provide advertisements via the network 108 to the application server 120 for the application server 120 to deliver.
- FIG. 2 is a flow diagram illustrating example interaction between a client device, a reward machine, and an application store, in accordance with an example embodiment.
- a call is made to the reward machine.
- the reward machine may be part of a reward system or platform that comprises a website, one or more web servers providing web services, and one or more data storage devices, either distributed and accessible via the network 108 or connected to the one or more web servers.
- the call may be in the form of a ping initiated by software code in the application. The ping is pushed to the reward machine.
- a reward machine(s) 204 associated with the reward platform may deliver an advertisement to the client device 202 executing the application.
- the reward machine(s) may track the display of the advertisement so that the platform may record the advertisement impression.
- the client device 202 may receive the advertisement.
- the advertisement may be an offer or a referral related to the application being executed on the client device 202 .
- the referral offer may prompt the user to download a different application in exchange for a reward or incentive.
- the reward or incentive may be virtual currency or a virtual good for use with the executing application.
- the virtual currency may be used to purchase virtual or actual goods associated with the executing application.
- the client device 202 accesses the referral, such as by clicking a URL or hyperlink.
- the referral may direct the user to the app store 206 , and in some embodiments, to the referred application in the app store 206 .
- the referral is directed to the reward machine(s) 204 , where it is tracked and stored.
- the unique device identifier (“Udid”) for the client device 202 that accessed the referral is stored.
- Udid is the term commonly associated with a device identifier for client devices operating the Apple iOS mobile operating system
- the present application is not intended to be limited to client devices operating the iOS operating system or device identifiers associated only with the iOS operating system.
- the use of the term “unique device identifier” or “Udid” in the present application may refer to any device identifier associated with any operating system, including, but not limited to, device IDs commonly associated with client devices operating the Android operating system, the Palm operating system, and the Blackberry operating system.
- an application identifier (“AppID”) associated with the referred application also is stored. It is contemplated that other identification information may be stored as well, including an Internet Protocol (“IP”) address, a Media Access Control (“MAC”) address, or an account identifier, such as a client device account identifier (e.g., a telephone number) or a third party account identifier (e.g., Facebook® username, Apple® account identifier, Google® account identifier).
- IP Internet Protocol
- MAC Media Access Control
- account identifier such as a client device account identifier (e.g., a telephone number) or a third party account identifier (e.g., Facebook® username, Apple® account identifier, Google® account identifier).
- the client device 202 may be re-directed to the referred application in the app store.
- the referred application may be downloaded from the app store 206 to the client device 202 .
- the client device 202 may install the referred application.
- the reward machine(s) 204 may have no knowledge of whether the client device 202 actually downloaded the referred application from the app store 206 because the reward machine(s) 204 may not have access to the mechanisms and inner workings of the app store 206 .
- the client device 202 may execute the installed application.
- a script or other code included in the referred application by the reward machine(s) 204 or by an advertiser may trigger the referred application to ping or otherwise push data to the reward machine(s) 204 of the reward platform.
- the ping may indicate to the reward platform that the client device 202 , as identified by its Udid, has executed the referred application.
- the reward platform may verify whether a referral conversion has occurred.
- a referral conversion (e.g., an installation of a referred application) is verified by searching a table of stored clicks using the Udid of the device executing the application and the AppID of the application being executed.
- the stored clicks table may store an installation history for every application downloaded by a client device, in addition to other data, such as a date of execution or access. If the search of the stored clicks table shows that the user recently clicked to the application within a predetermined amount of time and the user has not previously installed the application, the execution of the application is considered a conversion.
- a rewards domain of the reward platform is updated.
- the rewards domain tracks all rewards in the system.
- the rewards machine(s) 204 may associate reward data with the client device 202 or an account associated with a user of the client device 202 and may transmit the reward data to the user account or the client device 202 .
- the rewards machine(s) 204 may call a software method or command to transmit the reward to the user.
- the rewards machine(s) 204 may push the reward to the user account or client device 202 .
- a user of the client device 202 may retrieve the reward from the rewards machine(s) 204 .
- the reward may be virtual currency or a virtual good for use within the referring application.
- FIG. 3 is a flow diagram illustrating example interactions between a client device, a reward machine(s), and an application developer, according to some embodiments.
- an application developer may desire to engage a user of an application.
- the application developer may accomplish deeper engagement of an application by incentivizing the user to perform targeted actions within the application.
- the application developer 306 may register an application action that it wishes to incentivize with the reward machine(s) 304 .
- the application developer 306 enters a name and a description of the action to be performed within the application.
- the application developer 306 also may enter a bid price corresponding to an amount of currency that the application developer 306 is willing to pay for the user to complete the action.
- the reward machine(s) 304 may generate an action identifier (ID) for the corresponding registered action.
- ID may be a unique, random, or pseudo-random number of n bits.
- the action ID may be mapped to the action.
- the reward machine(s) 304 may be part of a reward system or platform that comprises a website, one or more web servers providing web services, and one or more data storage devices, either distributed and accessible via the network 108 or connected to the one or more web servers.
- the reward machine(s) 304 may create and store an offer corresponding to the incentivized action registered by the application developer 306 .
- the action ID mapped to the action may be stored with the offer.
- the reward machine(s) 304 may generate software code corresponding to the offer and return the software code and the action ID to the application developer 306 .
- the application developer 306 may integrate the offer code and action ID into the application at the point of the action.
- the offer code may trigger a ping or cause a ping to be transmitted from a client device executing the application to the reward machine(s) 304 when the user completes the incentivized action in the application.
- the generated offer code may be client device platform-specific.
- the application developer 306 may specify which device platform (e.g., Android®, iOS®) the application is configured to execute on, and the offer code may be generated specifically for the specified device platform.
- a client device 302 may execute the application containing the incentivized action.
- the application may have been previously installed by the user of the client device 302 .
- the user may navigate to a web page that lists offers associated with various actions for various applications. The user may select an offer from the web page (called in some embodiments, an “offer wall”) and be redirected to the application relating to the offer.
- the redirection may guide a user to the application in the app store, where the user then is able to open or execute the application.
- the user may be prompted or offered the opportunity to download and/or install the application, in some cases, for an additional incentive.
- the user may initiate and perform the action being incentivized within the application.
- the offer code inserted in the application by the application developer 306 may cause the client device 302 to ping or otherwise notify the reward machine(s) 304 upon the initiation of the action.
- the client device 302 may send an additional ping or other notification to the reward machine(s) upon completion of the action.
- the reward machine(s) 304 may receive the ping or other notification from the client device 302 .
- the reward machine(s) 304 may receive a first ping when the action is first initiated by the user of the client device 302 and a second ping when the action is completed by the user of the client device 302 . For example, if an action is time consuming, the user may initiate the action at a first point in time and then resume completion of the action at a later point in time.
- the reward machine(s) 304 may receive identifying information concerning the action.
- the reward machine(s) 304 may receive a click ID that is generated when a user clicks or otherwise selects or interacts with the action, the action ID generated and mapped to the incentivized action, a partner ID, and a device ID, such as the Udid of the client device 302 or a user account identifier associated with the user.
- the click ID may enable the reward machine(s) 304 to match the click with stored clicks to determine when a user interaction in the application is a conversion of a referral offer or an organic interaction (unrelated to the referral offer) with an aspect of the application.
- the reward machine(s) 304 may update the reward domain to indicate the successful completion of an action by a user.
- the rewards domain tracks all rewards in the system.
- the reward machine(s) 304 may record the identifying information received in block 320 in a record of a database along with an indication that a reward has been allocated or transmitted to the user for performing the action.
- the client device 302 or a user account associated with the user operating the client device 302 may receive the reward for performing and completing the incentivized action.
- the reward may correspond to and be usable within the application in which the incentivized action was performed.
- the reward may correspond to and be usable within a different application within the client device application platform, such as an application that referred the user to the offer to perform the incentivized action.
- the rewards machine(s) 304 may call a software method or command to transmit the reward to the user.
- the rewards machine(s) 304 may push the reward to the user account or client device 202 .
- a user of the client device 302 may retrieve the reward from the rewards machine(s) 304 .
- the reward may be virtual currency or a virtual good for use within the referring application.
- FIG. 3 shows operations 316 , 318 , 320 , 322 , and 324 are not connected to the other operations. This illustrates that, in some embodiments, these operations may be performed independently of the other operations.
- FIG. 4 is a block diagram illustrating an example interaction between a reward system, an advertiser, and a publisher in response to a user action, in accordance with an example embodiment.
- an advertiser 406 seeking to market an application to users of the reward system platform adds credits to their account. The credits may instruct the platform as to how much the advertiser is willing to pay per application installation.
- reward machine(s) 404 associated with the platform may update an account associated with the advertiser 406 .
- Account data may be stored in a database or lookup table.
- the reward machine(s) 404 track and verify a referral conversion.
- a referral conversion may comprise the installation of an application referred by the advertiser 406 .
- click and accompanying data including but not limited to the client device's Udid and IP address, are stored.
- the reward machine(s) 404 may not have access to the inner workings of an app store or other third party application repository, a referral conversion is verified by detecting execution of the referred application by the client device.
- the application may push data to the reward machine(s) 404 indicating that the client device has executed the referred application.
- a software method “send_money_txn” may be called to send transaction data to web server 110 . It is contemplated that the name of the software method used to send transaction data to web server 110 is immaterial; other software methods may be invoked to send the transaction data to the web server 110 .
- Web server 110 may insert the transaction into a database table that stores application transactions.
- a script may execute on a periodic basis to perform a SUM operation over the table. In an example embodiment, the script pay execute every minute.
- the script may debit an advertiser account at block 416 .
- the script also may credit a publisher account at block 418 .
- blocks 414 , 416 , and 418 may be performed for each detected application installation.
- FIG. 4 shows operations 414 , 416 , and 418 are not connected to the other operations. This illustrates that, in some embodiments, these three operations may be performed independently of the other operations. Also, the embodiments of FIG. 4 may be equally applicable to referrals involving incentivized actions. For example, block 412 may track the conversion of an incentivized action referral by receiving information from a client device that indicates an initiation and a completion of an incentivized and referred action.
- FIG. 5 is a block diagram showing modules of an application, executing on a client device, and modules of a reward system, executing on a server, according to some embodiments.
- the application 106 may include an execution detection module 502 , a communication module 504 , and a protocol handler module 506 .
- Execution detection module 502 may detect when the application 106 is executed. In an example embodiment, execution detection module 502 may be inserted into application 106 by the reward system 508 or an advertiser to track execution of the application. In addition to tracking execution of the application 106 , execution detection module 502 may track application usage data, including user interaction with the application, duration of use, and use of virtual goods or currency, among other things. In some embodiments, the application usage data tracked by the execution detection module 502 includes events or actions performed within the application by the user. Performance of the actions may be incentivized by an advertiser or other entity.
- Communication module 504 may transmit and receive data to and from the application. Communication module 504 may operate in conjunction with execution detection module 502 to push data, for example, a ping, to the reward system upon execution of the application 106 or initiation and completion of an action within the application 106 .
- the ping may include identifying information concerning use of the application, such as an action performed within the application.
- identifying information such as an identifier (e.g., Udid) of the client device 102 or an account identifier (e.g., user name, telephone number) associated with a user of the client device 102 is received by the communication module 504 in addition to the ping.
- Communication module 504 also may receive referral offers from the reward system 508 and may transmit acceptance of a referral offer, along with identifying information about the application, the client device 102 , and the incentivized and referred action.
- Protocol handler module 506 may register a protocol handler for use on the mobile device 102 .
- the protocol handler module 506 may register the protocol handler on behalf of a publisher of an application.
- the reward system 508 may cooperate with the publisher of the application to use the protocol handler to gain access to the application.
- the reward system 508 may transmit code via communication module 504 to the client device 102 and use the exposed protocol handler to insert the code in the application 106 .
- the code may enable the reward system to offer and track the effectiveness of incentives to users for targeted pay-per-action events. Examples of targeted pay-per-action events may include but are not limited to logging in or checking in to an application account, watching videos, taking surveys, performing specific actions within the application, and accessing particular advertisements.
- Protocol handler module 506 may operate in conjunction with execution detection module 502 to detect when a user performs a pay-per-action event. In response to a pay-per-action event, the execution detection module 502 may generate a ping or initiate a data push to notify the reward system that the user has engaged in a pay-per-action event. In some embodiments, the protocol handler module 506 may detect an initiation of a pay-per-action event and a completion of the pay-per-action event. The execution detection module 502 may generate a ping or initiate a data push upon the initiation of the pay-per-action event and upon the completion of the pay-per-action event.
- an application developer may contact the reward system 508 directly to register an action to be incentivized with the reward system 508 .
- the application developer may describe the action, including measurable events, such as what constitutes an initiation of the action, what action steps need to be performed, and what constitutes a completion of the action, and circumstances surrounding the action (e.g., the action takes place in level 1 of a game).
- the reward system 508 may pre-approve the action as being suitable for a referral offer or incentive.
- the reward system 508 may generate an action ID to identify the action and code corresponding to a referral offer or incentive.
- the application developer may insert the code and the action ID into the application itself rather than use the protocol handler module 506 .
- the reward system 508 includes a referral tracking module 510 , an application use/install module 512 , a database interface module 514 , a deep linking module 516 , a fraud prevention module 518 , and a communication module 520 .
- the referral module 510 may select and generate referral offers to be transmitted to the client device 102 .
- the referral offer is a list of offers optimized for the application being executed.
- the list of offers may comprise a list of applications incentivized for download by the user, with the incentive being virtual currency or a virtual good.
- the list of offers also may include one or more actions capable of being performed within one or more applications, with different actions being awarded differing incentives.
- the difficulty of performing the actions may factor into the amount of incentive offered.
- the advertiser or application developer's desire to have a particular action performed may influence the amount of incentive offered.
- the list of offers may be compared to a list of disabled offers stored on a per application basis to determine which offers should be culled from the offer list.
- the referral module 510 may use advertisements from a variety of advertising networks. The referral module 510 may select an advertisement to be offered to the user, with different advertisements being offered depending on the application being executed by the client device 102 .
- the advertisement offered as a referral may be chosen for delivery using an ad order algorithm that optimizes advertisements to be delivered by one or more predetermined metrics. In an example embodiment, the effective cost per mille for each advertisement may be considered in determining which advertisement to deliver.
- the advertisements may be aggregated and listed on a web page or user interface in the form of an offer wall.
- the advertisements may be sortable or capable of being filtered by application, action, incentive, Udid, and so forth. For example, if the user has installed the application previously via the reward machine(s) (e.g., as part of a pay-per-install offer), the offer to install the application may be filtered out and not shown to the user again.
- the reward machine(s) e.g., as part of a pay-per-install offer
- the application use/install module 512 may monitor and track application usage and installation.
- the application use/install module 512 may store the client device's Udid whenever a referral sends a user to the app store for a specific application that the client device 102 has not previously run.
- the client device's Udid may be stored with application identifiers corresponding to every application executed by the mobile device 102 .
- the Udid may serve as a key to enable a fast lookup whenever a client device executes an application.
- the reward system 508 may use the Udid to lookup a list of every application executed by the client device 102 to determine whether an executed application is a newly installed application.
- the application use/install module 512 may store the Udid and AppID as a key in a stored click table whenever a user clicks to an app store to download an application.
- the stored click table may be referenced by the application use/install module 512 when the module 512 is attempting to determine whether an executing application was recently downloaded and is a new installation.
- the application use/install module 512 tracks application usage by a user.
- Application usage may include actions initiated and performed within one or more applications.
- the application use/install module 512 may store the Udid of the client device 102 , the AppID and an action ID, among other things, as keys in a stored click table when a user initiates an incentivized action within an application.
- the application use/install module 512 also may store the same identifiers in the stored click table when the user completes the incentivized action within the application.
- the database interface module 514 may interface with connected and distributed databases to store and retrieve application and user data.
- the database interface module 514 may interface with databases or data storage devices to access an installation history for applications on a per client device basis.
- the reward platform may use both SQL and SimpleDB storage platforms for storing and maintaining records concerning installed applications and rewards.
- the database interface module 514 interfaces with databases and data storage devices to access a history of application actions undertaken by a client device. The history of application actions may reflect the status and progress of actions performed by a client device 102 .
- the database interface module 514 may receive database retrieval and storage commands from other modules in the reward system 508 and may translate these commands, if necessary, to appropriately interface with the storage platforms.
- the deep linking module 516 may interface with a protocol handler registered on the client device 102 to insert code in the application 106 , redirect users to the application from an offer wall (e.g., a user interface or web page containing referral offers), or redirect users to a specific event or action in the application.
- the code may facilitate the linking or redirection of users to specific events inside the application, thereby allowing the reward system to provide targeted incentives for certain pay-per-action events occurring in the application.
- the deep linking module 516 may insert code in the application 106 that rewards a user for watching a video or performing a game action in the application 106 .
- the deep linking module 516 may use the registered protocol handler, in essence, to open up the application and allow the reward system to deposit code related to pay-per-action events.
- the fraud detection module 518 may detect and block fraudulent activity within the reward system. Fraudulent activity may be determined by monitoring certain identifiers, such as a client device IP address, a mobile device Udid, an AppID, an action ID, and a publisher identifier. In an example embodiment, fraud is detected by determining that the same IP address is installing the same application multiple times in an attempt to be rewarded for each installation of the same application. In another example embodiment, fraud may be detected by identifying the same publisher ID being passed during multiple installations for the same application. In each scenario, the fraud detection module 518 may block the offending users from the reward system or otherwise prevent the offending users from being unjustly rewarded.
- identifiers such as a client device IP address, a mobile device Udid, an AppID, an action ID, and a publisher identifier.
- fraud is detected by determining that the same IP address is installing the same application multiple times in an attempt to be rewarded for each installation of the same application.
- fraud may be detected by identifying the same publisher ID being passed during multiple installations
- the communication module 520 may transmit and receive data to and from the reward system 508 to the mobile device 102 .
- the communication module 520 may operate in conjunction with other modules of the reward system to transmit generated referral offers, receive a ping or pushed data from an application executed on the client device 102 , and transmit rewards to the client device 102 upon a referral conversion.
- FIG. 6 is a flowchart illustrating an example method for tracking and incentivizing application installs.
- the reward system 508 may provide a client device 102 with a referral offer.
- the referral offer may be an offer to download an application from an app store in exchange for virtual currency or a virtual good.
- the reward system 508 may determine prior to providing the client device 102 with the referral offer whether the client device is eligible to perform the referral offer. For example, the reward system 508 may determine whether the client device 102 has executed the application before determining whether to send the referral offer to download and execute the application to the client device 102 .
- the reward system may monitor whether the user clicked on the referral.
- the reward system may track referral clicks using the Udid of the client device 102 . If the user did not click on the referral, the example method returns to block 602 .
- the reward system 508 may store the click with the client device's 102 Udid.
- the click may be stored in a table.
- the AppID of the application may be stored as well in the table. Together, the Udid and the AppID may serve as a key in the table, thereby enabling easy searching for the combination of the mobile device and application when the user runs the referred application.
- the reward system 508 detects the execution of the application. Detection may be facilitated by the pushing of data from the client device 102 to the reward system 508 .
- the pushing of data may be caused by code inserted into the application 106 by the reward system 508 or an advertiser that transmits a ping to the server.
- the rewards system 508 determines whether or not the client device 102 has clicked to the app in the app store recently. If the client device 102 is found to have clicked to the app within a predetermined amount of time, the client device 102 will be adjudged to have recently downloaded the app. If the client device 102 did not recently click to the app, the example method may return to block 608 for detection of additional application executions.
- the rewards system 508 determines whether or not the client device 102 has previously installed the referred application. Determination of this query may involve searching the stored click table using the client device 102 Udid and the AppID of the referred application 106 . If the stored click table does not contain a record of the referred application 106 being previously installed, then in block 614 , the rewards system 508 may be updated. If the stored click table does contain a record of the referred application being previously installed, then the example method returns to block 608 to detect additional application executions.
- the rewards system 508 may be updated to reflect that a referral conversion occurred.
- the updating may include updating the stored click table to indicate that the referred application has been installed. Further, the rewards system 508 may be updated to reflect that a reward (e.g., virtual currency, virtual good) is to be awarded to the client device 102 .
- a reward e.g., virtual currency, virtual good
- the rewards system 508 may transmit the reward to the user, for example, by transmitting the reward to the client device 102 or an account associated with the user.
- financial transaction data relating to the referral conversion may be recorded and stored.
- transaction data relating to the referral conversion may be inserted into a MoneyTransactions table.
- the MoneyTransactions table may be a Microsoft SQL database.
- an advertiser account is debited to reflect that a user installed a referred application.
- a credit is given to a publisher account.
- FIG. 7 is a flowchart illustrating an example method for delivering and monitoring targeted pay-per-action events occurring within an application.
- the rewards system 508 may access an application via an exposed registered protocol handler.
- the protocol handler may be registered by a publisher of the application.
- the rewards system 508 may insert code into the application using the registered protocol handler.
- the code may operate to redirect a user executing the application to a particular application event. For example, the user may be redirected to a particular video or survey and may be prompted to watch the video or take the survey.
- the code may provide a callback mechanism by which the application pings or transmits data to the reward system 508 when the user performs an action or event associated with the portion of the application where the code is inserted.
- no code is inserted by the rewards system 508 using the registered protocol handler. Rather, code may be generated by the rewards system 508 and provided to the application developer for integration with the application.
- Redirection of the user may occur in response to the user selecting an offer from an offer wall (in the form of a user interface or web page with selectable referral offers).
- the offer wall may call a web view of the wall that triggers the protocol handler to redirect the user to the referred application or event in the application identified by the code inserted by the application developer.
- the rewards system 508 may monitor user interaction with the application event.
- the user's interaction with the targeted pay-per-action event may be recorded in block 708 .
- a reward or incentive offered in exchange for the user interacting with the pay-per-action application event may be logged and transmitted to the user.
- FIG. 8 is a flowchart illustrating an example method for registering and mapping actions occurring within an application to a pay-per-action model, according to some embodiments.
- the referral module 510 of the reward system 508 receives registration of an application action to be incentivized or referred. Registration of the application action may entail an application developer or publisher submitting a title of the action, one or more steps needed to perform the action, and a bid amount indicating an amount of currency the application developer or publisher is willing to pay for the user to perform the action.
- the title of the action submitted to the rewards system 508 is shown to the users on an offer wall or when the user views the incentivized action.
- the steps submitted by the application developer or publisher are required to be performed in order for the incentive associated with the application action to be awarded to the user.
- the bid amount may be actual currency (e.g., U.S. currency) that the application developer is willing to pay the reward system 508 . All or a portion of the actual currency may be converted into virtual currency to be awarded to the user.
- the virtual currency may be redeemable or applicable to the application in which the action is being performed or may apply to a different application. A remaining amount of the actual currency may be retained by the reward system 508 as a fee for providing the referral offer.
- the referral module 510 of the reward system 508 may generate an action ID and action code associated with the incentivized application action.
- the action ID identifies the action with the application.
- the action ID may be a unique, random, or pseudo-random number.
- the action code generated by the referral module 510 of the reward system 508 operates as a callback mechanism to the reward system 508 upon performance of the action.
- the action code may prompt a ping and a transmission of identifying information (if the identifying information is not included in the ping itself) to the reward system 508 .
- the identifying information may include user identifying information, such as an account identifier (e.g., telephone number, user name), the action ID, and the app ID.
- the referral module 510 of the reward system 508 may map the action ID to the application action.
- the mapping may be stored in a table, database, or other data structure.
- the mapping may enable a fast look up of the action being performed by a user when action identifying information (e.g., action ID, App ID) is received by the reward system 508 .
- the reward system 508 may transmit the action ID and action code to the application developer.
- the reward system 508 may use the deep linking module 516 described in the example embodiment of FIG. 5 to insert the action code in the application via protocol handler module 506 .
- the action code is transmitted to the application developer who incorporates the code into the application.
- FIG. 9 is a flowchart illustrating an example method for tracking and incentivizing the performance of actions within an application, according to some embodiments.
- a referral offer to perform an action in an application is generated.
- the reward system 508 generates the referral offer in response to the registration of the action by an application developer or publisher.
- the offer may include a title of the action, one or more steps needed to be performed to complete the offer, and an incentive offered for performing the offer.
- the offer is caused to be displayed on a client device 102 to the user, for example, on an offer wall contained in a web page or user interface.
- selection of the referral offer may redirect a user to the application containing the incentivized action. If the application is not installed, in some embodiments, selection of the referral offer may redirect the user to an app store to download and install the application.
- the reward system 508 may receive an indication that the user has initiated the action within the application.
- the indication may take the form of a ping and may include information identifying the application, the action being undertaken, and the user or client device performing the action.
- the action code generated for the incentivized offer may prompt or cause the application or the client device 102 to transmit the indication of the action initiation to the reward system 508 .
- the indication (and accompanying identification information) may be recorded and stored in a table, database, or other data structure.
- the reward system 508 may wait for the completion of the action by the user of the client device 102 .
- Completion of the action may be detected by the receipt of an additional indication, for example, in the form of a ping, representing a completion of the action.
- the identifying information may further identify the step of the action being performed such that the reward system 508 may be able to track the status of the performance of the action. If the completion of the action is not detected, the example method proceeds to decision block 912 , where the reward system 508 determines whether the amount of time elapsed since the user selected the referral offer exceeds an expiration time for performing the referral offer.
- the expiration time may be set by the reward system 508 or the application developer.
- the reward system 508 may notify the user and redirect the user to block 906 of the example method to restart the action in the application. In some embodiments, if the offer has not been completed, the reward system 508 may not display the offer again to the user.
- the example method is redirected to decision block 910 , where the reward system 508 may continue monitoring and waiting for performed action data to arrive.
- the method proceeds to block 914 , where the reward system 508 may transmit the offered incentive to the user.
- the reward system 508 will record the completion of the action in a table, database, or other data structure, along with other identifying information, such as the user identity (e.g., Udid, account identifier), the issuance of the incentive, the date and time of action performance, and so forth.
- the reward system 508 may transmit the incentive to the client device 102 of the user or to a user account associated with the user.
- a notification of the incentive may be transmitted to the user. The notification may inform the user that an incentive has been awarded and may be claimed at a location (e.g., a web site, a page identified by a hyperlink) specified in the notification.
- a component or a module is a non-transitory and tangible unit capable of performing certain operations and may be configured or arranged in a certain manner.
- one or more computer systems e.g., a standalone, client or server computer system
- one or more components of a computer system e.g., a processor or a group of processors
- software e.g., an application or application portion
- a component or a module may be implemented mechanically or electronically.
- a component or a module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor) to perform certain operations.
- a component or a module also may comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a component or a module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- the term “component” or “module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein.
- components or modules are temporarily configured (e.g., programmed)
- each of the components or modules need not be configured or instantiated at any one instance in time.
- the components or modules comprise a general-purpose processor configured using software
- the general-purpose processor may be configured as respective different components or modules at different times.
- Software may accordingly configure a processor, for example, to constitute a particular component or module at one instance of time and to constitute a different component or module at a different instance of time.
- Components or modules can provide information to, and receive information from, other components or modules. Accordingly, the described components or modules may be regarded as being communicatively coupled. Where multiple of such components or modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the components or modules. In embodiments in which multiple components or modules are configured or instantiated at different times, communications between such components or modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple components or modules have access. For example, one component or module may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled. A further component or module may then, at a later time, access the memory device to retrieve and process the stored output. Components or module may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- a resource e.g., a collection of information
- Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
- Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
- the machine-readable medium may be a non-transitory machine- or computer-readable storage medium.
- a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment.
- a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output.
- Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
- FPGA field programmable gate array
- ASIC application-specific integrated circuit
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- both hardware and software architectures require consideration.
- the choice of whether to implement certain functionality in permanently configured hardware e.g., an ASIC
- temporarily configured hardware e.g., a combination of software and a programmable processor
- a combination permanently and temporarily configured hardware may be a design choice.
- hardware e.g., machine
- software architectures that may be deployed, in various example embodiments.
- FIG. 10 is a block diagram of machine in the example form of a computer system 1000 within which instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
- the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
- the machine may operate in the capacity of a server or a client device 102 , 104 in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
- the machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.
- PC personal computer
- PDA Personal Digital Assistant
- STB set-top box
- WPA Personal Digital Assistant
- a cellular telephone a web appliance
- network router switch or bridge
- machine any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.
- machine shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
- the example computer system 1000 includes at least one processor 1002 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 1004 and a static memory 1006 , which communicate with each other via a bus 1008 .
- the computer system 1000 may further include a video display unit 1010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)).
- the computer system 1000 also includes an alphanumeric input device 1012 (e.g., a keyboard), a user interface (UI) navigation device 1014 (e.g., a mouse), a disk drive unit 1016 , a signal generation device 1018 (e.g., a speaker) and a network interface device 1020 .
- an alphanumeric input device 1012 e.g., a keyboard
- UI user interface
- disk drive unit 1016 e.g., a disk drive unit
- signal generation device 1018 e.g., a speaker
- the disk drive unit 1016 includes a machine-readable medium 1022 on which is stored one or more sets of instructions and data structures (e.g., software 1024 ) embodying or utilized by any one or more of the methodologies or functions described herein.
- the software 1024 may also reside, completely or at least partially, within the main memory 1004 and/or within the processor 1002 during execution thereof by the computer system 1000 , the main memory 1004 and the processor 1002 also constituting machine-readable media.
- machine-readable medium 1022 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions or data structures.
- the term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions.
- the term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
- machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
- semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
- magnetic disks such as internal hard disks and removable disks
- magneto-optical disks and CD-ROM and DVD-ROM disks.
- the software 1024 may further be transmitted or received over a communications network 1026 using a transmission medium.
- the software 1024 may be transmitted using the network interface device 1020 and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks).
- POTS Plain Old Telephone
- the term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
- the described methods may be implemented using one a distributed or non-distributed software application designed under a three-tier architecture paradigm. Under this paradigm, various parts of computer code (or software) that instantiate or configure components or modules may be categorized as belonging to one or more of these three tiers. Some embodiments may include a first tier as an interface (e.g., an interface tier). Further, a second tier may be a logic (or application) tier that performs application processing of data inputted through the interface level. The logic tier may communicate the results of such processing to the interface tier, and/or to a backend, or storage tier. The processing performed by the logic tier may relate to certain rules, or processes that govern the software as a whole.
- a third, storage tier may be a persistent storage medium, or a non-persistent storage medium. In some cases, one or more of these tiers may be collapsed into another, resulting in a two-tier architecture, or even a one-tier architecture.
- the interface and logic tiers may be consolidated, or the logic and storage tiers may be consolidated, as in the case of a software application with an embedded database.
- the three-tier architecture may be implemented using one technology, or, a variety of technologies.
- the example three-tier architecture, and the technologies through which it is implemented may be realized on one or more computer systems operating, for example, as a standalone system, or organized in a server-client, peer-to-peer, distributed or so some other suitable configuration. Further, these three tiers may be distributed between more than one computer systems as various components.
- Example embodiments may include the above described tiers, and processes or operations about constituting these tiers may be implemented as components. Common to many of these components is the ability to generate, use, and manipulate data. The components, and the functionality associated with each, may form part of standalone, client, server, or peer computer systems. The various components may be implemented by a computer system on an as-needed basis. These components may include software written in an object-oriented computer language such that a component oriented, or object-oriented programming technique can be implemented using a Visual Component Library (VCL), Component Library for Cross Platform (CLX), Java Beans (JB), Java Enterprise Beans (EJB), Component Object Model (COM), Distributed Component Object Model (DCOM), or other suitable technique.
- VCL Visual Component Library
- CLX Component Library for Cross Platform
- JB Java Beans
- EJB Java Enterprise Beans
- COM Component Object Model
- DCOM Distributed Component Object Model
- Software for these components may further enable communicative coupling to other components (e.g., via various Application Programming interfaces (APIs)), and may be compiled into one complete server, client, and/or peer software application. Further, these APIs may be able to communicate through various distributed programming protocols as distributed computing components.
- APIs Application Programming interfaces
- Some example embodiments may include remote procedure calls being used to implement one or more of the above described components across a distributed programming environment as distributed computing components.
- an interface component e.g., an interface tier
- a logic component e.g., a logic tier
- first and second computer systems may be configured in a standalone, server-client, peer-to-peer, or some other suitable configuration.
- Software for the components may be written using the above described object-oriented programming techniques, and can be written in the same programming language, or a different programming language.
- Various protocols may be implemented to enable these various components to communicate regardless of the programming language used to write these components.
- a component written in C++ may be able to communicate with another component written in the Java programming language through utilizing a distributed computing protocol such as a Common Object Request Broker Architecture (CORBA), a Simple Object Access Protocol (SOAP), or some other suitable protocol.
- CORBA Common Object Request Broker Architecture
- SOAP Simple Object Access Protocol
- Some embodiments may include the use of one or more of these protocols with the various protocols outlined in the Open Systems Interconnection (OSI) model, or Transmission Control Protocol/Internet Protocol (TCP/IP) protocol stack model for defining the protocols used by a network to transmit data.
- OSI Open Systems Interconnection
- TCP/IP Transmission Control Protocol/Internet Protocol
- Example embodiments may use the OSI model or TCP/IP protocol stack model for defining the protocols used by a network to transmit data.
- a system of data transmission between a server and client, or between peer computer systems may for example include five layers comprising: an application layer, a transport layer, a network layer, a data link layer, and a physical layer.
- the various tiers e.g., the interface, logic, and storage tiers
- data from an application residing at the application layer is loaded into the data load field of a TCP segment residing at the transport layer.
- This TCP segment also contains port information for a recipient software application residing remotely.
- This TCP segment is loaded into the data load field of an IP datagram residing at the network layer.
- this IP datagram is loaded into a frame residing at the data link layer.
- This frame is then encoded at the physical layer, and the data transmitted over a network such as an internet, Local Area Network (LAN), Wide Area Network (WAN), or some other suitable network.
- internet refers to a network of networks. These networks may use a variety of protocols for the exchange of data, including the aforementioned TCP/IP, and additionally ATM, SNA, SDI, or some other suitable protocol. These networks may be organized within a variety of topologies (e.g., a star topology), or structures.
- inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
- inventive concept merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- This application claims priority under 35 U.S.C. §119 to U.S. Provisional Patent Application No. 61/371,500, filed Aug. 6, 2010, and entitled “SYSTEM AND METHOD FOR REWARDING APPLICATION INSTALLS,” which application is incorporated by reference herein in its entirety.
- Example embodiments of the present application generally relate to an application platform, and more specifically, to techniques for detecting actions performed in applications.
- Online advertising models generally involve the delivery of advertisements or offers to users over one or more advertising channels. The effectiveness of the offers, however, varies, depending on the type of offer and the channel used to deliver the offer. In particular, one reason a user may ignore an offer is that there is no incentive for the user to follow the offer.
- In the drawings, which are not necessarily drawn to scale, like numerals describe substantially similar components throughout the several views. Like numerals having different letter suffixes represent different instances of substantially similar components. The drawings illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document.
-
FIG. 1 is a block diagram illustrating a networked environment within which a client or mobile device connects, via a network, with an application server, while a referral system monitors the connection, according to some embodiments. -
FIG. 2 is a flow diagram illustrating example interactions between a client device, a reward machine, and an application store, according to some embodiments. -
FIG. 3 is a flow diagram illustrating example interactions between a client device, a reward machine, and an application developer, according to some embodiments. -
FIG. 4 is a flow diagram illustrating example interactions between a reward machine, an advertiser, and a publisher in response to a user action, according to some embodiments. -
FIG. 5 is a block diagram showing modules of an application, running on a client device, and modules of a reward system, running on a server, according to some embodiments. -
FIG. 6 is a flowchart illustrating an example method for tracking and incentivizing application installs, according to some embodiments. -
FIG. 7 is a flowchart illustrating an example method for delivering and monitoring targeted pay-per-action events occurring within an application, according to some embodiments. -
FIG. 8 is a flowchart illustrating an example method for registering and mapping actions occurring within an application to a pay-per-action model, according to some embodiments. -
FIG. 9 is a flowchart illustrating an example method for tracking and incentivizing the performance of actions within an application, according to some embodiments. -
FIG. 10 illustrates a diagrammatic representation of machine in the example form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. - The following detailed description includes references to the accompanying drawings, which form a part of the detailed description. The drawings show illustrations in accordance with example embodiments. These embodiments, which are also referred to herein as “examples,” are described in enough detail to enable those skilled in the art to practice the invention. It will be apparent to one skilled in the art that specific details in the example embodiments are not required in order to practice the present invention. For example, although the example embodiments are disclosed with reference to client devices, the teachings of the present disclosure can be used in other environments wherein applications are downloaded, installed, and executed. The example embodiments may be combined, other embodiments may be utilized, or structural, logical and electrical changes may be made without departing from the scope what is claimed. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope is defined by the appended claims and their equivalents.
- In a mobile environment, applications may be offered for download at a centralized site, such as an application store or market (“app store”). Applications in the app store may be listed by a variety of metrics, such as by category, popularity, and cost. As concerns applications provided for download in an app store, a publisher may refer to the entity that publishes or otherwise provides an application for download by users. An advertiser may refer to an entity that provides an offer, usually in the form of an action to be taken by the user.
-
FIG. 1 is a block diagram illustrating an example embodiment of a networked environment in which a client device connects, via a network, to an application server hosting an application store. Referring toFIG. 1 ,client devices more applications 106, may connect via anetwork 108, such as the Internet, to anapplication server 120 executing anapplication store 122.Client devices app store 122 to download application(s) via thenetwork 108. -
Web server 110 may host a website for a mobile application platform that connects advertisers and publishers.Web server 110 may provide various hosted web services to the website, including code deployment and testing, online analytics, data storage, and task management.Web server 110 may be connected to one ormore databases 112 that store data associated with the website, among other things. In an example embodiment,web server 110 may be an Amazon.com hosted web server providing web services. However, it is contemplated that different third party hosted providers of web services may be used, or servers associated with the website may provide web services without resort to third party-provided web services. Additional web servers (not shown) may include servers associated with the hosted website. - In some embodiments, the one or
more databases 112 may be SimpleDB distributed databases. SimpleDB distributed databases use a key-value pair to enable fast lookup and retrieval operations as compared to structured query language (SQL) databases. It is contemplated that other databases employing key-value pairs to store and index data may be used. In some embodiments, at least one of thedatabases 112 may be a SQL database. Data associated with the website, such as user data and application tracking data, also may be stored incache server 114.Cache server 114 may includememory 116, in the form of RAM, for example, that stores part or all of the data stored in database(s) 112.Cache server 114 may operate as a backup or supplemental data store for the website. In some embodiments, cache server may be a Memcached distributed memory caching system.Publisher server 118 may either serve as the source of applications downloaded to aclient device application server 120 for storage and listing in theapp store 122. Similarly,advertiser server 120 may provide and deliver advertisements toclient device network 108 to theapplication server 120 for theapplication server 120 to deliver. -
FIG. 2 is a flow diagram illustrating example interaction between a client device, a reward machine, and an application store, in accordance with an example embodiment. Referring toFIG. 2 , when an application using or associated with the website ad platform executes, a call is made to the reward machine. In some embodiments, the reward machine may be part of a reward system or platform that comprises a website, one or more web servers providing web services, and one or more data storage devices, either distributed and accessible via thenetwork 108 or connected to the one or more web servers. The call may be in the form of a ping initiated by software code in the application. The ping is pushed to the reward machine. - At block 208, a reward machine(s) 204 associated with the reward platform may deliver an advertisement to the client device 202 executing the application. The reward machine(s) may track the display of the advertisement so that the platform may record the advertisement impression. At block 210, the client device 202 may receive the advertisement. The advertisement may be an offer or a referral related to the application being executed on the client device 202. In some embodiments, the referral offer may prompt the user to download a different application in exchange for a reward or incentive. In some embodiments, the reward or incentive may be virtual currency or a virtual good for use with the executing application. The virtual currency may be used to purchase virtual or actual goods associated with the executing application. At block 212, the client device 202 accesses the referral, such as by clicking a URL or hyperlink. In some embodiments, the referral may direct the user to the app store 206, and in some embodiments, to the referred application in the app store 206.
- At block 214, when the user clicks on the referral, the referral is directed to the reward machine(s) 204, where it is tracked and stored. In some embodiments, the unique device identifier (“Udid”) for the client device 202 that accessed the referral is stored. Although Udid is the term commonly associated with a device identifier for client devices operating the Apple iOS mobile operating system, the present application is not intended to be limited to client devices operating the iOS operating system or device identifiers associated only with the iOS operating system. The use of the term “unique device identifier” or “Udid” in the present application may refer to any device identifier associated with any operating system, including, but not limited to, device IDs commonly associated with client devices operating the Android operating system, the Palm operating system, and the Blackberry operating system. In some embodiments, an application identifier (“AppID”) associated with the referred application also is stored. It is contemplated that other identification information may be stored as well, including an Internet Protocol (“IP”) address, a Media Access Control (“MAC”) address, or an account identifier, such as a client device account identifier (e.g., a telephone number) or a third party account identifier (e.g., Facebook® username, Apple® account identifier, Google® account identifier). Once stored, the reward machine(s) 204 may redirect the user to the app store 206.
- At block 216, the client device 202 may be re-directed to the referred application in the app store. At block 218, the referred application may be downloaded from the app store 206 to the client device 202. At block 220, the client device 202 may install the referred application. In some embodiments, the reward machine(s) 204 may have no knowledge of whether the client device 202 actually downloaded the referred application from the app store 206 because the reward machine(s) 204 may not have access to the mechanisms and inner workings of the app store 206.
- At block 222, the client device 202 may execute the installed application. A script or other code included in the referred application by the reward machine(s) 204 or by an advertiser may trigger the referred application to ping or otherwise push data to the reward machine(s) 204 of the reward platform. The ping may indicate to the reward platform that the client device 202, as identified by its Udid, has executed the referred application.
- At block 224, the reward platform may verify whether a referral conversion has occurred. A referral conversion (e.g., an installation of a referred application) is verified by searching a table of stored clicks using the Udid of the device executing the application and the AppID of the application being executed. The stored clicks table may store an installation history for every application downloaded by a client device, in addition to other data, such as a date of execution or access. If the search of the stored clicks table shows that the user recently clicked to the application within a predetermined amount of time and the user has not previously installed the application, the execution of the application is considered a conversion.
- At block 226, if a conversion is determined to have occurred, a rewards domain of the reward platform is updated. The rewards domain tracks all rewards in the system. At block 228, the rewards machine(s) 204 may associate reward data with the client device 202 or an account associated with a user of the client device 202 and may transmit the reward data to the user account or the client device 202. The rewards machine(s) 204 may call a software method or command to transmit the reward to the user. In some embodiments, the rewards machine(s) 204 may push the reward to the user account or client device 202. In some embodiments, a user of the client device 202 may retrieve the reward from the rewards machine(s) 204. The reward may be virtual currency or a virtual good for use within the referring application.
-
FIG. 3 is a flow diagram illustrating example interactions between a client device, a reward machine(s), and an application developer, according to some embodiments. Referring toFIG. 3 , an application developer may desire to engage a user of an application. In some embodiments, the application developer may accomplish deeper engagement of an application by incentivizing the user to perform targeted actions within the application. Atblock 308, theapplication developer 306 may register an application action that it wishes to incentivize with the reward machine(s) 304. In some embodiments, as part of the registration process, theapplication developer 306 enters a name and a description of the action to be performed within the application. In some embodiments, theapplication developer 306 also may enter a bid price corresponding to an amount of currency that theapplication developer 306 is willing to pay for the user to complete the action. - At
block 310, the reward machine(s) 304 may generate an action identifier (ID) for the corresponding registered action. In some embodiments, the generated action ID may be a unique, random, or pseudo-random number of n bits. The action ID may be mapped to the action. In some embodiments, the reward machine(s) 304 may be part of a reward system or platform that comprises a website, one or more web servers providing web services, and one or more data storage devices, either distributed and accessible via thenetwork 108 or connected to the one or more web servers. - At
block 312, the reward machine(s) 304 may create and store an offer corresponding to the incentivized action registered by theapplication developer 306. The action ID mapped to the action may be stored with the offer. - At
block 314, the reward machine(s) 304 may generate software code corresponding to the offer and return the software code and the action ID to theapplication developer 306. Theapplication developer 306 may integrate the offer code and action ID into the application at the point of the action. The offer code may trigger a ping or cause a ping to be transmitted from a client device executing the application to the reward machine(s) 304 when the user completes the incentivized action in the application. In some embodiments, the generated offer code may be client device platform-specific. Theapplication developer 306 may specify which device platform (e.g., Android®, iOS®) the application is configured to execute on, and the offer code may be generated specifically for the specified device platform. - At
block 316, aclient device 302 may execute the application containing the incentivized action. In some embodiments, the application may have been previously installed by the user of theclient device 302. In some embodiments, the user may navigate to a web page that lists offers associated with various actions for various applications. The user may select an offer from the web page (called in some embodiments, an “offer wall”) and be redirected to the application relating to the offer. In some embodiments, the redirection may guide a user to the application in the app store, where the user then is able to open or execute the application. In the event the user has not previously installed the application, the user may be prompted or offered the opportunity to download and/or install the application, in some cases, for an additional incentive. - At
block 318, the user may initiate and perform the action being incentivized within the application. The offer code inserted in the application by theapplication developer 306 may cause theclient device 302 to ping or otherwise notify the reward machine(s) 304 upon the initiation of the action. In some embodiments, theclient device 302 may send an additional ping or other notification to the reward machine(s) upon completion of the action. - At
block 320, the reward machine(s) 304 may receive the ping or other notification from theclient device 302. In some embodiments, the reward machine(s) 304 may receive a first ping when the action is first initiated by the user of theclient device 302 and a second ping when the action is completed by the user of theclient device 302. For example, if an action is time consuming, the user may initiate the action at a first point in time and then resume completion of the action at a later point in time. Within or in addition to the ping or other notification, the reward machine(s) 304 may receive identifying information concerning the action. For example, the reward machine(s) 304 may receive a click ID that is generated when a user clicks or otherwise selects or interacts with the action, the action ID generated and mapped to the incentivized action, a partner ID, and a device ID, such as the Udid of theclient device 302 or a user account identifier associated with the user. The click ID may enable the reward machine(s) 304 to match the click with stored clicks to determine when a user interaction in the application is a conversion of a referral offer or an organic interaction (unrelated to the referral offer) with an aspect of the application. - At
block 322, the reward machine(s) 304 may update the reward domain to indicate the successful completion of an action by a user. The rewards domain tracks all rewards in the system. In some embodiments, the reward machine(s) 304 may record the identifying information received inblock 320 in a record of a database along with an indication that a reward has been allocated or transmitted to the user for performing the action. - At
block 324, theclient device 302 or a user account associated with the user operating theclient device 302 may receive the reward for performing and completing the incentivized action. In some embodiments, the reward may correspond to and be usable within the application in which the incentivized action was performed. In some embodiments, the reward may correspond to and be usable within a different application within the client device application platform, such as an application that referred the user to the offer to perform the incentivized action. The rewards machine(s) 304 may call a software method or command to transmit the reward to the user. In some embodiments, the rewards machine(s) 304 may push the reward to the user account or client device 202. In some embodiments, a user of theclient device 302 may retrieve the reward from the rewards machine(s) 304. The reward may be virtual currency or a virtual good for use within the referring application. - Note that
FIG. 3 showsoperations -
FIG. 4 is a block diagram illustrating an example interaction between a reward system, an advertiser, and a publisher in response to a user action, in accordance with an example embodiment. Atblock 408, anadvertiser 406 seeking to market an application to users of the reward system platform adds credits to their account. The credits may instruct the platform as to how much the advertiser is willing to pay per application installation. Atblock 410, reward machine(s) 404 associated with the platform (or reward website) may update an account associated with theadvertiser 406. Account data may be stored in a database or lookup table. - At
block 412, the reward machine(s) 404 track and verify a referral conversion. A referral conversion may comprise the installation of an application referred by theadvertiser 406. When a user clicks on a referral, that click and accompanying data, including but not limited to the client device's Udid and IP address, are stored. Because the reward machine(s) 404 may not have access to the inner workings of an app store or other third party application repository, a referral conversion is verified by detecting execution of the referred application by the client device. The application may push data to the reward machine(s) 404 indicating that the client device has executed the referred application. - If a referral conversion has occurred, at
block 414, financial records are updated on the rewards machine(s) 404. In an example embodiment, a software method “send_money_txn” may be called to send transaction data toweb server 110. It is contemplated that the name of the software method used to send transaction data toweb server 110 is immaterial; other software methods may be invoked to send the transaction data to theweb server 110.Web server 110 may insert the transaction into a database table that stores application transactions. A script may execute on a periodic basis to perform a SUM operation over the table. In an example embodiment, the script pay execute every minute. The script may debit an advertiser account atblock 416. The script also may credit a publisher account atblock 418. In an example embodiment, blocks 414, 416, and 418 may be performed for each detected application installation. - Note that
FIG. 4 showsoperations FIG. 4 may be equally applicable to referrals involving incentivized actions. For example, block 412 may track the conversion of an incentivized action referral by receiving information from a client device that indicates an initiation and a completion of an incentivized and referred action. -
FIG. 5 is a block diagram showing modules of an application, executing on a client device, and modules of a reward system, executing on a server, according to some embodiments. Theapplication 106 may include anexecution detection module 502, acommunication module 504, and aprotocol handler module 506. -
Execution detection module 502 may detect when theapplication 106 is executed. In an example embodiment,execution detection module 502 may be inserted intoapplication 106 by thereward system 508 or an advertiser to track execution of the application. In addition to tracking execution of theapplication 106,execution detection module 502 may track application usage data, including user interaction with the application, duration of use, and use of virtual goods or currency, among other things. In some embodiments, the application usage data tracked by theexecution detection module 502 includes events or actions performed within the application by the user. Performance of the actions may be incentivized by an advertiser or other entity. -
Communication module 504 may transmit and receive data to and from the application.Communication module 504 may operate in conjunction withexecution detection module 502 to push data, for example, a ping, to the reward system upon execution of theapplication 106 or initiation and completion of an action within theapplication 106. In some embodiments, the ping may include identifying information concerning use of the application, such as an action performed within the application. In some embodiments, identifying information, such as an identifier (e.g., Udid) of theclient device 102 or an account identifier (e.g., user name, telephone number) associated with a user of theclient device 102 is received by thecommunication module 504 in addition to the ping.Communication module 504 also may receive referral offers from thereward system 508 and may transmit acceptance of a referral offer, along with identifying information about the application, theclient device 102, and the incentivized and referred action. -
Protocol handler module 506 may register a protocol handler for use on themobile device 102. Theprotocol handler module 506 may register the protocol handler on behalf of a publisher of an application. Thereward system 508 may cooperate with the publisher of the application to use the protocol handler to gain access to the application. Thereward system 508 may transmit code viacommunication module 504 to theclient device 102 and use the exposed protocol handler to insert the code in theapplication 106. The code may enable the reward system to offer and track the effectiveness of incentives to users for targeted pay-per-action events. Examples of targeted pay-per-action events may include but are not limited to logging in or checking in to an application account, watching videos, taking surveys, performing specific actions within the application, and accessing particular advertisements.Protocol handler module 506 may operate in conjunction withexecution detection module 502 to detect when a user performs a pay-per-action event. In response to a pay-per-action event, theexecution detection module 502 may generate a ping or initiate a data push to notify the reward system that the user has engaged in a pay-per-action event. In some embodiments, theprotocol handler module 506 may detect an initiation of a pay-per-action event and a completion of the pay-per-action event. Theexecution detection module 502 may generate a ping or initiate a data push upon the initiation of the pay-per-action event and upon the completion of the pay-per-action event. - In some embodiments, an application developer may contact the
reward system 508 directly to register an action to be incentivized with thereward system 508. The application developer may describe the action, including measurable events, such as what constitutes an initiation of the action, what action steps need to be performed, and what constitutes a completion of the action, and circumstances surrounding the action (e.g., the action takes place in level 1 of a game). In some embodiments, thereward system 508 may pre-approve the action as being suitable for a referral offer or incentive. Thereward system 508 may generate an action ID to identify the action and code corresponding to a referral offer or incentive. The application developer may insert the code and the action ID into the application itself rather than use theprotocol handler module 506. - The
reward system 508 includes areferral tracking module 510, an application use/installmodule 512, adatabase interface module 514, adeep linking module 516, afraud prevention module 518, and acommunication module 520. - The
referral module 510 may select and generate referral offers to be transmitted to theclient device 102. In some embodiments, the referral offer is a list of offers optimized for the application being executed. The list of offers may comprise a list of applications incentivized for download by the user, with the incentive being virtual currency or a virtual good. The list of offers also may include one or more actions capable of being performed within one or more applications, with different actions being awarded differing incentives. In some embodiments, the difficulty of performing the actions may factor into the amount of incentive offered. In some embodiments, the advertiser or application developer's desire to have a particular action performed may influence the amount of incentive offered. - The list of offers may be compared to a list of disabled offers stored on a per application basis to determine which offers should be culled from the offer list. The
referral module 510 may use advertisements from a variety of advertising networks. Thereferral module 510 may select an advertisement to be offered to the user, with different advertisements being offered depending on the application being executed by theclient device 102. The advertisement offered as a referral may be chosen for delivery using an ad order algorithm that optimizes advertisements to be delivered by one or more predetermined metrics. In an example embodiment, the effective cost per mille for each advertisement may be considered in determining which advertisement to deliver. In some embodiments, the advertisements may be aggregated and listed on a web page or user interface in the form of an offer wall. The advertisements may be sortable or capable of being filtered by application, action, incentive, Udid, and so forth. For example, if the user has installed the application previously via the reward machine(s) (e.g., as part of a pay-per-install offer), the offer to install the application may be filtered out and not shown to the user again. - The application use/install
module 512 may monitor and track application usage and installation. The application use/installmodule 512 may store the client device's Udid whenever a referral sends a user to the app store for a specific application that theclient device 102 has not previously run. The client device's Udid may be stored with application identifiers corresponding to every application executed by themobile device 102. The Udid may serve as a key to enable a fast lookup whenever a client device executes an application. In this respect, thereward system 508 may use the Udid to lookup a list of every application executed by theclient device 102 to determine whether an executed application is a newly installed application. - Similarly, the application use/install
module 512 may store the Udid and AppID as a key in a stored click table whenever a user clicks to an app store to download an application. The stored click table may be referenced by the application use/installmodule 512 when themodule 512 is attempting to determine whether an executing application was recently downloaded and is a new installation. - In some embodiments, the application use/install
module 512 tracks application usage by a user. Application usage may include actions initiated and performed within one or more applications. The application use/installmodule 512 may store the Udid of theclient device 102, the AppID and an action ID, among other things, as keys in a stored click table when a user initiates an incentivized action within an application. The application use/installmodule 512 also may store the same identifiers in the stored click table when the user completes the incentivized action within the application. - The
database interface module 514 may interface with connected and distributed databases to store and retrieve application and user data. In an example embodiment, thedatabase interface module 514 may interface with databases or data storage devices to access an installation history for applications on a per client device basis. For example, the reward platform may use both SQL and SimpleDB storage platforms for storing and maintaining records concerning installed applications and rewards. In some embodiments, thedatabase interface module 514 interfaces with databases and data storage devices to access a history of application actions undertaken by a client device. The history of application actions may reflect the status and progress of actions performed by aclient device 102. Thedatabase interface module 514 may receive database retrieval and storage commands from other modules in thereward system 508 and may translate these commands, if necessary, to appropriately interface with the storage platforms. - The
deep linking module 516 may interface with a protocol handler registered on theclient device 102 to insert code in theapplication 106, redirect users to the application from an offer wall (e.g., a user interface or web page containing referral offers), or redirect users to a specific event or action in the application. The code may facilitate the linking or redirection of users to specific events inside the application, thereby allowing the reward system to provide targeted incentives for certain pay-per-action events occurring in the application. For example, thedeep linking module 516 may insert code in theapplication 106 that rewards a user for watching a video or performing a game action in theapplication 106. Thedeep linking module 516 may use the registered protocol handler, in essence, to open up the application and allow the reward system to deposit code related to pay-per-action events. - The
fraud detection module 518 may detect and block fraudulent activity within the reward system. Fraudulent activity may be determined by monitoring certain identifiers, such as a client device IP address, a mobile device Udid, an AppID, an action ID, and a publisher identifier. In an example embodiment, fraud is detected by determining that the same IP address is installing the same application multiple times in an attempt to be rewarded for each installation of the same application. In another example embodiment, fraud may be detected by identifying the same publisher ID being passed during multiple installations for the same application. In each scenario, thefraud detection module 518 may block the offending users from the reward system or otherwise prevent the offending users from being unjustly rewarded. - The
communication module 520 may transmit and receive data to and from thereward system 508 to themobile device 102. Thecommunication module 520 may operate in conjunction with other modules of the reward system to transmit generated referral offers, receive a ping or pushed data from an application executed on theclient device 102, and transmit rewards to theclient device 102 upon a referral conversion. -
FIG. 6 is a flowchart illustrating an example method for tracking and incentivizing application installs. Atblock 602, thereward system 508 may provide aclient device 102 with a referral offer. The referral offer may be an offer to download an application from an app store in exchange for virtual currency or a virtual good. Thereward system 508 may determine prior to providing theclient device 102 with the referral offer whether the client device is eligible to perform the referral offer. For example, thereward system 508 may determine whether theclient device 102 has executed the application before determining whether to send the referral offer to download and execute the application to theclient device 102. - At
block 604, the reward system may monitor whether the user clicked on the referral. The reward system may track referral clicks using the Udid of theclient device 102. If the user did not click on the referral, the example method returns to block 602. - If the user did click on the referral offer, at
block 606, thereward system 508 may store the click with the client device's 102 Udid. The click may be stored in a table. If the referral offer redirects the user to an app store to download an application, the AppID of the application may be stored as well in the table. Together, the Udid and the AppID may serve as a key in the table, thereby enabling easy searching for the combination of the mobile device and application when the user runs the referred application. - At
block 608, thereward system 508 detects the execution of the application. Detection may be facilitated by the pushing of data from theclient device 102 to thereward system 508. The pushing of data may be caused by code inserted into theapplication 106 by thereward system 508 or an advertiser that transmits a ping to the server. - At
block 610, in response to detecting the execution of the referred application, therewards system 508 determines whether or not theclient device 102 has clicked to the app in the app store recently. If theclient device 102 is found to have clicked to the app within a predetermined amount of time, theclient device 102 will be adjudged to have recently downloaded the app. If theclient device 102 did not recently click to the app, the example method may return to block 608 for detection of additional application executions. - At
block 612, therewards system 508 determines whether or not theclient device 102 has previously installed the referred application. Determination of this query may involve searching the stored click table using theclient device 102 Udid and the AppID of the referredapplication 106. If the stored click table does not contain a record of the referredapplication 106 being previously installed, then inblock 614, therewards system 508 may be updated. If the stored click table does contain a record of the referred application being previously installed, then the example method returns to block 608 to detect additional application executions. - At
block 614, therewards system 508 may be updated to reflect that a referral conversion occurred. The updating may include updating the stored click table to indicate that the referred application has been installed. Further, therewards system 508 may be updated to reflect that a reward (e.g., virtual currency, virtual good) is to be awarded to theclient device 102. - At
block 616, therewards system 508 may transmit the reward to the user, for example, by transmitting the reward to theclient device 102 or an account associated with the user. Atblock 618, financial transaction data relating to the referral conversion may be recorded and stored. In an example embodiment, transaction data relating to the referral conversion may be inserted into a MoneyTransactions table. In one example embodiment, the MoneyTransactions table may be a Microsoft SQL database. Atblock 620, an advertiser account is debited to reflect that a user installed a referred application. Atblock 622, a credit is given to a publisher account. -
FIG. 7 is a flowchart illustrating an example method for delivering and monitoring targeted pay-per-action events occurring within an application. Atblock 702, therewards system 508, or one of its components, may access an application via an exposed registered protocol handler. The protocol handler may be registered by a publisher of the application. - At
block 704, therewards system 508 may insert code into the application using the registered protocol handler. The code may operate to redirect a user executing the application to a particular application event. For example, the user may be redirected to a particular video or survey and may be prompted to watch the video or take the survey. In some embodiments, the code may provide a callback mechanism by which the application pings or transmits data to thereward system 508 when the user performs an action or event associated with the portion of the application where the code is inserted. In some embodiments, no code is inserted by therewards system 508 using the registered protocol handler. Rather, code may be generated by therewards system 508 and provided to the application developer for integration with the application. Redirection of the user may occur in response to the user selecting an offer from an offer wall (in the form of a user interface or web page with selectable referral offers). The offer wall may call a web view of the wall that triggers the protocol handler to redirect the user to the referred application or event in the application identified by the code inserted by the application developer. - At
block 706, therewards system 508 may monitor user interaction with the application event. The user's interaction with the targeted pay-per-action event may be recorded inblock 708. A reward or incentive offered in exchange for the user interacting with the pay-per-action application event may be logged and transmitted to the user. -
FIG. 8 is a flowchart illustrating an example method for registering and mapping actions occurring within an application to a pay-per-action model, according to some embodiments. Atblock 802, thereferral module 510 of thereward system 508 receives registration of an application action to be incentivized or referred. Registration of the application action may entail an application developer or publisher submitting a title of the action, one or more steps needed to perform the action, and a bid amount indicating an amount of currency the application developer or publisher is willing to pay for the user to perform the action. In some embodiments, the title of the action submitted to therewards system 508 is shown to the users on an offer wall or when the user views the incentivized action. The steps submitted by the application developer or publisher are required to be performed in order for the incentive associated with the application action to be awarded to the user. The bid amount may be actual currency (e.g., U.S. currency) that the application developer is willing to pay thereward system 508. All or a portion of the actual currency may be converted into virtual currency to be awarded to the user. The virtual currency may be redeemable or applicable to the application in which the action is being performed or may apply to a different application. A remaining amount of the actual currency may be retained by thereward system 508 as a fee for providing the referral offer. - At
block 904, thereferral module 510 of thereward system 508 may generate an action ID and action code associated with the incentivized application action. The action ID identifies the action with the application. In some embodiments, the action ID may be a unique, random, or pseudo-random number. In some embodiments, the action code generated by thereferral module 510 of thereward system 508 operates as a callback mechanism to thereward system 508 upon performance of the action. For example, the action code may prompt a ping and a transmission of identifying information (if the identifying information is not included in the ping itself) to thereward system 508. The identifying information may include user identifying information, such as an account identifier (e.g., telephone number, user name), the action ID, and the app ID. - At
block 906, thereferral module 510 of thereward system 508 may map the action ID to the application action. The mapping may be stored in a table, database, or other data structure. The mapping may enable a fast look up of the action being performed by a user when action identifying information (e.g., action ID, App ID) is received by thereward system 508. - At
block 908, thereward system 508 may transmit the action ID and action code to the application developer. In some embodiments, thereward system 508 may use thedeep linking module 516 described in the example embodiment ofFIG. 5 to insert the action code in the application viaprotocol handler module 506. In some embodiments, the action code is transmitted to the application developer who incorporates the code into the application. -
FIG. 9 is a flowchart illustrating an example method for tracking and incentivizing the performance of actions within an application, according to some embodiments. Atblock 902, a referral offer to perform an action in an application is generated. In some embodiments, thereward system 508 generates the referral offer in response to the registration of the action by an application developer or publisher. The offer may include a title of the action, one or more steps needed to be performed to complete the offer, and an incentive offered for performing the offer. The offer is caused to be displayed on aclient device 102 to the user, for example, on an offer wall contained in a web page or user interface. - At
block 904, a user's selection of an offer to perform an action is received. Atblock 906, in some embodiments, selection of the referral offer may redirect a user to the application containing the incentivized action. If the application is not installed, in some embodiments, selection of the referral offer may redirect the user to an app store to download and install the application. - At
block 908, thereward system 508 may receive an indication that the user has initiated the action within the application. The indication may take the form of a ping and may include information identifying the application, the action being undertaken, and the user or client device performing the action. In some embodiments, the action code generated for the incentivized offer may prompt or cause the application or theclient device 102 to transmit the indication of the action initiation to thereward system 508. The indication (and accompanying identification information) may be recorded and stored in a table, database, or other data structure. - At
decision block 910, thereward system 508 may wait for the completion of the action by the user of theclient device 102. Completion of the action may be detected by the receipt of an additional indication, for example, in the form of a ping, representing a completion of the action. The identifying information may further identify the step of the action being performed such that thereward system 508 may be able to track the status of the performance of the action. If the completion of the action is not detected, the example method proceeds to decision block 912, where thereward system 508 determines whether the amount of time elapsed since the user selected the referral offer exceeds an expiration time for performing the referral offer. The expiration time may be set by thereward system 508 or the application developer. - If the referral offer has expired prior to performance of the action, the
reward system 508 may notify the user and redirect the user to block 906 of the example method to restart the action in the application. In some embodiments, if the offer has not been completed, thereward system 508 may not display the offer again to the user. - If the referral offer has not expired yet, the example method is redirected to decision block 910, where the
reward system 508 may continue monitoring and waiting for performed action data to arrive. - Referring back to decision block 910, if the completion of the action is detected and determined by the
reward system 508, the method proceeds to block 914, where thereward system 508 may transmit the offered incentive to the user. In some embodiments, thereward system 508 will record the completion of the action in a table, database, or other data structure, along with other identifying information, such as the user identity (e.g., Udid, account identifier), the issuance of the incentive, the date and time of action performance, and so forth. In some embodiments, thereward system 508 may transmit the incentive to theclient device 102 of the user or to a user account associated with the user. In some embodiments, a notification of the incentive may be transmitted to the user. The notification may inform the user that an incentive has been awarded and may be claimed at a location (e.g., a web site, a page identified by a hyperlink) specified in the notification. - Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. A component or a module is a non-transitory and tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more components of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a component that operates to perform certain operations as described herein.
- In various embodiments, a component or a module may be implemented mechanically or electronically. For example, a component or a module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor) to perform certain operations. A component or a module also may comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a component or a module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- Accordingly, the term “component” or “module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which components or modules are temporarily configured (e.g., programmed), each of the components or modules need not be configured or instantiated at any one instance in time. For example, where the components or modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different components or modules at different times. Software may accordingly configure a processor, for example, to constitute a particular component or module at one instance of time and to constitute a different component or module at a different instance of time.
- Components or modules can provide information to, and receive information from, other components or modules. Accordingly, the described components or modules may be regarded as being communicatively coupled. Where multiple of such components or modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the components or modules. In embodiments in which multiple components or modules are configured or instantiated at different times, communications between such components or modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple components or modules have access. For example, one component or module may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled. A further component or module may then, at a later time, access the memory device to retrieve and process the stored output. Components or module may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. In an example embodiment, the machine-readable medium may be a non-transitory machine- or computer-readable storage medium.
- A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- In example embodiments, operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
- The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In embodiments deploying a programmable computing system, it will be appreciated that that both hardware and software architectures require consideration. Specifically, it will be appreciated that the choice of whether to implement certain functionality in permanently configured hardware (e.g., an ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or a combination permanently and temporarily configured hardware may be a design choice. Below are set out hardware (e.g., machine) and software architectures that may be deployed, in various example embodiments.
-
FIG. 10 is a block diagram of machine in the example form of acomputer system 1000 within which instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or aclient device - The
example computer system 1000 includes at least one processor 1002 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), amain memory 1004 and astatic memory 1006, which communicate with each other via abus 1008. Thecomputer system 1000 may further include a video display unit 1010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). Thecomputer system 1000 also includes an alphanumeric input device 1012 (e.g., a keyboard), a user interface (UI) navigation device 1014 (e.g., a mouse), adisk drive unit 1016, a signal generation device 1018 (e.g., a speaker) and anetwork interface device 1020. - The
disk drive unit 1016 includes a machine-readable medium 1022 on which is stored one or more sets of instructions and data structures (e.g., software 1024) embodying or utilized by any one or more of the methodologies or functions described herein. Thesoftware 1024 may also reside, completely or at least partially, within themain memory 1004 and/or within theprocessor 1002 during execution thereof by thecomputer system 1000, themain memory 1004 and theprocessor 1002 also constituting machine-readable media. - While the machine-
readable medium 1022 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions or data structures. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. - The
software 1024 may further be transmitted or received over acommunications network 1026 using a transmission medium. Thesoftware 1024 may be transmitted using thenetwork interface device 1020 and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software. - In some embodiments, the described methods may be implemented using one a distributed or non-distributed software application designed under a three-tier architecture paradigm. Under this paradigm, various parts of computer code (or software) that instantiate or configure components or modules may be categorized as belonging to one or more of these three tiers. Some embodiments may include a first tier as an interface (e.g., an interface tier). Further, a second tier may be a logic (or application) tier that performs application processing of data inputted through the interface level. The logic tier may communicate the results of such processing to the interface tier, and/or to a backend, or storage tier. The processing performed by the logic tier may relate to certain rules, or processes that govern the software as a whole. A third, storage tier, may be a persistent storage medium, or a non-persistent storage medium. In some cases, one or more of these tiers may be collapsed into another, resulting in a two-tier architecture, or even a one-tier architecture. For example, the interface and logic tiers may be consolidated, or the logic and storage tiers may be consolidated, as in the case of a software application with an embedded database. The three-tier architecture may be implemented using one technology, or, a variety of technologies. The example three-tier architecture, and the technologies through which it is implemented, may be realized on one or more computer systems operating, for example, as a standalone system, or organized in a server-client, peer-to-peer, distributed or so some other suitable configuration. Further, these three tiers may be distributed between more than one computer systems as various components.
- Example embodiments may include the above described tiers, and processes or operations about constituting these tiers may be implemented as components. Common to many of these components is the ability to generate, use, and manipulate data. The components, and the functionality associated with each, may form part of standalone, client, server, or peer computer systems. The various components may be implemented by a computer system on an as-needed basis. These components may include software written in an object-oriented computer language such that a component oriented, or object-oriented programming technique can be implemented using a Visual Component Library (VCL), Component Library for Cross Platform (CLX), Java Beans (JB), Java Enterprise Beans (EJB), Component Object Model (COM), Distributed Component Object Model (DCOM), or other suitable technique.
- Software for these components may further enable communicative coupling to other components (e.g., via various Application Programming interfaces (APIs)), and may be compiled into one complete server, client, and/or peer software application. Further, these APIs may be able to communicate through various distributed programming protocols as distributed computing components.
- Some example embodiments may include remote procedure calls being used to implement one or more of the above described components across a distributed programming environment as distributed computing components. For example, an interface component (e.g., an interface tier) may form part of a first computer system that is remotely located from a second computer system containing a logic component (e.g., a logic tier). These first and second computer systems may be configured in a standalone, server-client, peer-to-peer, or some other suitable configuration. Software for the components may be written using the above described object-oriented programming techniques, and can be written in the same programming language, or a different programming language. Various protocols may be implemented to enable these various components to communicate regardless of the programming language used to write these components. For example, a component written in C++ may be able to communicate with another component written in the Java programming language through utilizing a distributed computing protocol such as a Common Object Request Broker Architecture (CORBA), a Simple Object Access Protocol (SOAP), or some other suitable protocol. Some embodiments may include the use of one or more of these protocols with the various protocols outlined in the Open Systems Interconnection (OSI) model, or Transmission Control Protocol/Internet Protocol (TCP/IP) protocol stack model for defining the protocols used by a network to transmit data.
- Example embodiments may use the OSI model or TCP/IP protocol stack model for defining the protocols used by a network to transmit data. In applying these models, a system of data transmission between a server and client, or between peer computer systems may for example include five layers comprising: an application layer, a transport layer, a network layer, a data link layer, and a physical layer. In the case of software, for instantiating or configuring components, having a three-tier architecture, the various tiers (e.g., the interface, logic, and storage tiers) reside on the application layer of the TCP/IP protocol stack. In an example implementation using the TCP/IP protocol stack model, data from an application residing at the application layer is loaded into the data load field of a TCP segment residing at the transport layer. This TCP segment also contains port information for a recipient software application residing remotely. This TCP segment is loaded into the data load field of an IP datagram residing at the network layer. Next, this IP datagram is loaded into a frame residing at the data link layer. This frame is then encoded at the physical layer, and the data transmitted over a network such as an internet, Local Area Network (LAN), Wide Area Network (WAN), or some other suitable network. In some cases, internet refers to a network of networks. These networks may use a variety of protocols for the exchange of data, including the aforementioned TCP/IP, and additionally ATM, SNA, SDI, or some other suitable protocol. These networks may be organized within a variety of topologies (e.g., a star topology), or structures.
- Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
- Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
- The preceding technical disclosure is intended to be illustrative, and not restrictive. For example, the above-described embodiments (or one or more aspects thereof) may be used in combination with each other. Other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the claims should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.” Also, in the following claims, the terms “including” and “comprising” are open-ended, that is, a system, device, article, or process that includes elements in addition to those listed after such a term in a claim are still deemed to fall within the scope of that claim. Moreover, in the following claims, the terms “first,” “second,” and “third,” etc. are used merely as labels, and are not intended to impose numerical requirements on their objects.
- In this document, the terms “a” or “an” are used, as is common in patent documents, to include one or more than one. In this document, the term “or” is used to refer to a nonexclusive or, such that “A or B” includes “A but not B,” “B but not A,” and “A and B,” unless otherwise indicated. Furthermore, all publications, patents, and patent documents referred to in this document are incorporated by reference herein in their entirety, as though individually incorporated by reference. In the event of inconsistent usages between this document and those documents so incorporated by reference, the usage in the incorporated reference(s) should be considered supplementary to that of this document; for irreconcilable inconsistencies, the usage in this document controls.
- The Abstract is provided to comply with 37 C.F.R. §1.72(b), which requires that it allow the reader to quickly ascertain the nature of the technical disclosure. The abstract is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Also, in the above Detailed Description, various features may be grouped together to streamline the disclosure. This should not be interpreted as intending that an unclaimed disclosed feature is essential to any claim. Rather, inventive subject matter may lie in less than all features of a particular disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
Claims (25)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/198,809 US20120036003A1 (en) | 2010-08-06 | 2011-08-05 | System and method for rewarding application actions |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37150010P | 2010-08-06 | 2010-08-06 | |
US13/198,809 US20120036003A1 (en) | 2010-08-06 | 2011-08-05 | System and method for rewarding application actions |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120036003A1 true US20120036003A1 (en) | 2012-02-09 |
Family
ID=45556811
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/106,051 Active 2031-08-25 US9189801B2 (en) | 2010-08-06 | 2011-05-12 | System and method for rewarding application installs |
US13/198,809 Abandoned US20120036003A1 (en) | 2010-08-06 | 2011-08-05 | System and method for rewarding application actions |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/106,051 Active 2031-08-25 US9189801B2 (en) | 2010-08-06 | 2011-05-12 | System and method for rewarding application installs |
Country Status (5)
Country | Link |
---|---|
US (2) | US9189801B2 (en) |
EP (2) | EP2601629A4 (en) |
CN (2) | CN103270527B (en) |
CA (2) | CA2807473C (en) |
WO (2) | WO2012018423A1 (en) |
Cited By (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120035990A1 (en) * | 2010-08-06 | 2012-02-09 | Tapjoy, Inc. | System and method for rewarding application installs |
US20120265603A1 (en) * | 2011-04-14 | 2012-10-18 | Fiksu, Inc. | Mobile digital media download tracking management utilizing statistical user fingerprinting techniques through correlation of web-based download user actions with mobile application download user actions |
US20130111328A1 (en) * | 2011-11-01 | 2013-05-02 | Amit Khanna | Launching applications from webpages |
US20130144696A1 (en) * | 2011-12-01 | 2013-06-06 | Netanel Raisch | Methods and Devices for Determining the Price of a Product |
US20130179273A1 (en) * | 2012-01-11 | 2013-07-11 | Connection Portal, Inc. | Communication system, apparatus and method thereof |
US20130304551A1 (en) * | 2012-05-11 | 2013-11-14 | Verizon Patent And Licensing Inc. | Bounty tracking for referral |
WO2014025129A1 (en) * | 2012-08-10 | 2014-02-13 | 네이버 주식회사 | Application installation system, apparatus, method, and computer-readable recording medium in mobile terminal using user terminal |
GB2505999A (en) * | 2012-07-18 | 2014-03-19 | Suzanne Crofts Shelton | Method of Encouraging Rebate Redemption by Offering Action Plan on Survey Completion |
WO2014058621A1 (en) * | 2012-10-08 | 2014-04-17 | Facebook, Inc | On-line advertising with social pay |
US20140304054A1 (en) * | 2013-04-03 | 2014-10-09 | Salesforce.Com, Inc. | System and method for handling gamification fraud |
US20140351041A1 (en) * | 2013-05-24 | 2014-11-27 | HasOffers, Inc. | Methods of tracking downloads and usage of software applications |
US20140358651A1 (en) * | 2013-05-31 | 2014-12-04 | Kabam, Inc. | Presenting offers for in-game virtual rewards |
US20150066636A1 (en) * | 2013-08-29 | 2015-03-05 | Tune, Inc. | Systems and methods of attributing and compensating acquisition of influential users in a software application |
CN104487995A (en) * | 2012-07-13 | 2015-04-01 | 世嘉股份有限公司 | Server device, server program, and game program |
WO2015048128A1 (en) * | 2013-09-30 | 2015-04-02 | Analog Analytics, Inc. | System and method for improved app distribution |
US20150186944A1 (en) * | 2013-12-30 | 2015-07-02 | Ten Farms, Inc. | Motion and gesture-based mobile advertising activation |
WO2015020894A3 (en) * | 2013-08-03 | 2015-07-02 | Google Inc. | Identifying media store users eligible for promotions |
US20150227954A1 (en) * | 2014-02-07 | 2015-08-13 | Nhn Entertainment Corporation | Push system for mobile game promotion and the method of push service |
US20150310485A1 (en) * | 2014-03-13 | 2015-10-29 | Tune, Inc. | Systems and methods for attribution of actions without utilizing persistent client-side storage or cross-process communication |
EP2954940A1 (en) * | 2014-06-12 | 2015-12-16 | Bee7000 Limited | Communication of reward data between applications |
WO2015189257A1 (en) * | 2014-06-12 | 2015-12-17 | Bee7000 Limited | Communication of reward data between applications |
US9323514B2 (en) | 2013-05-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Resource package indexing |
WO2016094634A1 (en) * | 2014-12-10 | 2016-06-16 | Button Inc. | Switching to second application to perform action |
US20160292746A1 (en) * | 2015-04-02 | 2016-10-06 | Vungle, Inc. | Systems and methods for autonomous bids of advertisement inventory |
CN107135550A (en) * | 2016-02-29 | 2017-09-05 | 卡西欧计算机株式会社 | Communicator and web access control method |
US20170278352A1 (en) * | 2016-03-19 | 2017-09-28 | Circle Eight Games Inc. | Systems and methods for promotion of electronic games |
US9785974B1 (en) * | 2014-04-18 | 2017-10-10 | Rocket Fuel Inc. | Identifying mobile application installations |
WO2017205802A1 (en) * | 2016-05-27 | 2017-11-30 | App Annie Inc. | Advertisement data metric determination within mobile applications |
US9940669B2 (en) * | 2013-03-08 | 2018-04-10 | Mx Technologies, Inc. | Flexible open origination |
US9940645B1 (en) * | 2013-11-13 | 2018-04-10 | Google Llc | Application installation using in-video programming |
US9983687B1 (en) | 2017-01-06 | 2018-05-29 | Adtile Technologies Inc. | Gesture-controlled augmented reality experience using a mobile communications device |
US9996848B2 (en) | 2014-06-12 | 2018-06-12 | Outfit7 Limited | Communication of reward data between applications |
US10032182B1 (en) * | 2013-06-28 | 2018-07-24 | Groupon, Inc. | Systems and methods for providing promotion sharing among consumers |
US10055754B2 (en) | 2014-03-13 | 2018-08-21 | Tune, Inc. | Systems and methods for tracking application installs that distinguish new users from existing users without directly accessing user account records |
US10068431B1 (en) * | 2015-12-10 | 2018-09-04 | Kabam, Inc. | Facilitating event implementation in an online game |
US10193999B1 (en) | 2015-12-10 | 2019-01-29 | Kabam, Inc. | Dynamic online game implementation on a client device |
US10188946B1 (en) | 2013-10-24 | 2019-01-29 | Kabam, Inc. | System and method for dynamically altering an in-game experience based on a user's connection to the game |
US20190102545A1 (en) * | 2017-09-29 | 2019-04-04 | Cognant Llc | System and method for detecting fraudulent software installation activity |
US10257342B2 (en) | 2016-03-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Validating stateful dynamic links in mobile applications |
US10286298B1 (en) * | 2013-06-18 | 2019-05-14 | Electronic Arts Inc. | Dynamically adjusting virtual rewards presented in offers |
US10305998B2 (en) * | 2013-09-02 | 2019-05-28 | Tencent Technology (Shenzhen) Company Limited | Methods and systems for managing a task based on geographical locations |
US10332142B2 (en) * | 2013-03-14 | 2019-06-25 | Datascape, Inc. | System and method for incentivizing wireless device users to interact with sponsor offers and advertising |
US10402180B2 (en) * | 2016-06-29 | 2019-09-03 | Google Llc | Latency reduction in feedback-based system performance determination |
US10413818B2 (en) | 2014-10-01 | 2019-09-17 | Outfit7 Limited | Monitoring an application on a processing device |
US10437463B2 (en) | 2015-10-16 | 2019-10-08 | Lumini Corporation | Motion-based graphical input system |
US10607245B2 (en) | 2012-01-15 | 2020-03-31 | Tapjoy, Inc. | Recommending virtual reward offers and awarding virtual rewards |
US10643239B2 (en) | 2014-10-01 | 2020-05-05 | Outfit7 Limited | Monitoring an application on a processing device and generating rewards |
US10902509B1 (en) * | 2014-06-27 | 2021-01-26 | Amazon Technologies, Inc. | Providing digital representations based on physical items |
US20210058451A1 (en) * | 2013-07-31 | 2021-02-25 | Adenda Media Inc. | Systems and Methods for Displaying Ads on a Mobile Device Outside of a Mobile App |
US11030659B1 (en) * | 2014-06-11 | 2021-06-08 | Google Llc | Methods, systems, and media for presenting an advertisement that facilitates the purchase of content associated with an application |
US11068530B1 (en) * | 2018-11-02 | 2021-07-20 | Shutterstock, Inc. | Context-based image selection for electronic media |
US11360875B2 (en) | 2017-08-15 | 2022-06-14 | Cognant Llc | System and method for detecting fraudulent activity on client devices |
US20230394514A1 (en) * | 2020-10-16 | 2023-12-07 | Catalina Marketing Corporation | Enabling digital advertising identifier consent conversion for tracking across different applications |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275195A1 (en) * | 2011-04-14 | 2013-10-17 | Fiksu, Inc. | Fraud protection in an incentivized computer system |
US20130198011A1 (en) * | 2011-04-14 | 2013-08-01 | Fiksu, Inc. | Real-time bidding optimization through utilization of mobile characteristics |
US10354293B2 (en) * | 2011-10-12 | 2019-07-16 | AppsFlyer Ltd. | Events tracking technology |
JP5313372B2 (en) * | 2012-02-06 | 2013-10-09 | 株式会社コナミデジタルエンタテインメント | Application system, application installation method, application server, program |
KR101437502B1 (en) * | 2012-06-04 | 2014-09-05 | (주)네오위즈게임즈 | Method, apparatus, and recording medium implementing mobile application marketing |
US8554836B1 (en) * | 2012-06-04 | 2013-10-08 | Google Inc. | Sharing software applications |
JP5753133B2 (en) * | 2012-07-18 | 2015-07-22 | 株式会社Caリワード | Reward grant device, reward grant method, and reward grant program |
CN103581878B (en) * | 2012-07-20 | 2018-07-06 | 百度在线网络技术(北京)有限公司 | A kind of method and apparatus for acquisition target resource in a mobile device |
US9477483B2 (en) | 2013-01-03 | 2016-10-25 | Tapjoy, Inc. | Tracking mobile app installations |
US9690759B2 (en) * | 2013-01-03 | 2017-06-27 | Cable Television Laboratories, Inc. | Content linking |
US10134018B2 (en) | 2013-03-08 | 2018-11-20 | Mx Technologies, Inc. | Flexible open origination |
US9348572B2 (en) * | 2013-03-15 | 2016-05-24 | Tapjoy, Inc. | Rewarding mobile app installations without a software development kit in the mobile app |
KR101782512B1 (en) * | 2013-03-28 | 2017-09-28 | 가부시키가이샤 코나미 데지타루 엔타테인멘토 | Management device, management method, terminal device, control method, and program |
US20140357375A1 (en) * | 2013-05-31 | 2014-12-04 | Sudhir Kumar Rama Rao | Modifying online game functionality based on mobile user acquisition |
WO2014205506A1 (en) * | 2013-06-25 | 2014-12-31 | Partridge Tony | A method, an ad server, and computer readable storage medium for recording user advert interaction data |
CN103500410A (en) * | 2013-10-11 | 2014-01-08 | 张磊 | Intelligent mass extension agent system based on APP (application) |
JP5895287B2 (en) * | 2013-10-15 | 2016-03-30 | カイト株式会社 | Advertisement distribution system, apparatus, method, and computer program |
US10395221B1 (en) * | 2014-06-26 | 2019-08-27 | Amazon Technologies, Inc. | Providing rewards to encourage device care |
EP4375911A3 (en) * | 2014-07-11 | 2024-09-04 | Loyyal Holdings Incorporated | Distributed ledger protocol to incentivize transactional and non-transactional commerc |
CN104333599B (en) * | 2014-11-06 | 2017-10-13 | 北京奇虎科技有限公司 | Share the method and system and application service platform of application |
CN105592446B (en) * | 2014-11-17 | 2021-04-27 | 深圳市腾讯计算机系统有限公司 | Information interaction method and platform |
KR20160088629A (en) * | 2015-01-16 | 2016-07-26 | 삼성전자주식회사 | System and device for performing function of application based on advertisement and method thereof |
CN104902019B (en) * | 2015-05-20 | 2016-11-16 | 腾讯科技(深圳)有限公司 | A kind of application method, server and terminal |
CN105187399A (en) * | 2015-08-12 | 2015-12-23 | 南京钱宝信息传媒有限公司 | Resource processing method and device |
CN105160556A (en) * | 2015-09-08 | 2015-12-16 | 曾庆义 | Content promotion performance acquisition method and system |
JP6337401B2 (en) * | 2015-12-24 | 2018-06-06 | カイト株式会社 | Management server for advertisement distribution system, advertisement distribution method, and computer program |
CN107451838A (en) * | 2016-05-31 | 2017-12-08 | 柳文凭 | The processing method, apparatus and system that entity is exchanged under line are rewarded on a kind of line |
US10785327B2 (en) * | 2016-06-02 | 2020-09-22 | Google Llc | Client device application interaction monitoring |
CN105931034A (en) * | 2016-06-29 | 2016-09-07 | 北京零用钱科技有限公司 | Electronic virtual currency obtaining method and mobile terminal thereof |
CN109478297A (en) * | 2016-07-18 | 2019-03-15 | 刘明相 | Utilize the service system and providing method of self-service machine |
CN106550044B (en) * | 2016-11-24 | 2020-03-03 | 腾讯科技(深圳)有限公司 | Application downloading method, downloading server, downloading client and application downloading system |
US10406442B2 (en) * | 2017-01-24 | 2019-09-10 | Cognant Llc | System and method for managing dynamic opt-in experiences in a virtual environment |
CN107016572A (en) * | 2017-03-31 | 2017-08-04 | 北京猎豹移动科技有限公司 | Promotion method, device and the server of application program |
CN106960367A (en) * | 2017-03-31 | 2017-07-18 | 北京猎豹移动科技有限公司 | Promotion method, device and the server of application program |
CN107172216A (en) * | 2017-07-19 | 2017-09-15 | 北京六行君通信息科技股份有限公司 | Task processing method, apparatus and system based on user terminal |
CN107491332B (en) * | 2017-08-15 | 2021-05-07 | 深圳市乐易网络股份有限公司 | Method and device for identifying false installation of application program and server |
CN107609910A (en) * | 2017-08-18 | 2018-01-19 | 广州今也社教育科技有限公司 | Data processing method based on trustship, registration recommendation method and relevant device |
CN108038522A (en) * | 2017-12-11 | 2018-05-15 | 武汉卓讯互动信息科技有限公司 | A kind of easily information introduction method and device |
CN108111887A (en) * | 2017-12-29 | 2018-06-01 | 天脉聚源(北京)科技有限公司 | The method and apparatus that interaction redirects |
CN108269126A (en) * | 2018-01-16 | 2018-07-10 | 精硕科技(北京)股份有限公司 | Assess the method and device of advertisement exposure effect |
US10990683B2 (en) | 2018-05-25 | 2021-04-27 | At&T Intellectual Property I, L.P. | Virtual reality for security augmentation in home and office environments |
CN111105301B (en) * | 2018-10-25 | 2023-10-17 | 重庆小雨点小额贷款有限公司 | Information processing method, terminal, server and storage medium |
CN110490658B (en) * | 2019-08-21 | 2022-11-15 | 北京字节跳动网络技术有限公司 | User motivation method and device of application program, electronic equipment and readable medium |
CN111178937B (en) * | 2019-12-02 | 2023-09-12 | 百度在线网络技术(北京)有限公司 | User rewarding method and device for application, electronic equipment and readable storage medium |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020128984A1 (en) * | 2001-02-26 | 2002-09-12 | 4Thpass Inc. | Method and system for transmission-based billing of applications |
US20030084439A1 (en) * | 2001-10-04 | 2003-05-01 | Ross Perkins | Incentive system for distributing software over a computer network |
US20040254836A1 (en) * | 2003-01-28 | 2004-12-16 | Emoke Barabas Jutka T. | Method & system for distribution & management of electronic vouchers via carrier applications |
US20050055398A1 (en) * | 2001-03-27 | 2005-03-10 | Microsoft Corporation | Protocol agnostic request response pattern |
US20060259361A1 (en) * | 2005-05-11 | 2006-11-16 | Barhydt William J | System and method for mobile loyalty program |
US20070005428A1 (en) * | 1999-12-08 | 2007-01-04 | Jacobs Paul E | Method for distributing advertisements to client devices having e-mail software installed including multiple advertisement operational modes |
US20070255576A1 (en) * | 2006-04-26 | 2007-11-01 | Macrovision Corporation | Service providing an electronic market for the distribution of promotional material using software installation packages |
US20080275786A1 (en) * | 2007-05-03 | 2008-11-06 | Digital Interactive Systems Corporation | System and method for increasing purchase conversion rates |
US20090182589A1 (en) * | 2007-11-05 | 2009-07-16 | Kendall Timothy A | Communicating Information in a Social Networking Website About Activities from Another Domain |
US20100318611A1 (en) * | 2009-06-10 | 2010-12-16 | Silverpop Systems, Inc. | Methods and systems for tracking shared content |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5823879A (en) | 1996-01-19 | 1998-10-20 | Sheldon F. Goldberg | Network gaming system |
US20020002488A1 (en) * | 1997-09-11 | 2002-01-03 | Muyres Matthew R. | Locally driven advertising system |
US7899710B1 (en) | 1998-05-27 | 2011-03-01 | Walker Digital, Llc | Determination and presentation of package pricing offers in response to customer interest in a product |
US6799277B2 (en) * | 1998-06-04 | 2004-09-28 | Z4 Technologies, Inc. | System and method for monitoring software |
US20030032476A1 (en) * | 1998-12-23 | 2003-02-13 | Walker Jay S. | Methods and apparatus for facilitating the provision of a benefit to a player of a gaming Web site |
US6594691B1 (en) | 1999-10-28 | 2003-07-15 | Surfnet Media Group, Inc. | Method and system for adding function to a web page |
US20020004742A1 (en) * | 2000-07-10 | 2002-01-10 | Willcocks Neil A. | Time variable incentive for purchasing goods and services |
AU7593601A (en) * | 2000-07-14 | 2002-01-30 | Atabok Inc | Controlling and managing digital assets |
US7827059B2 (en) * | 2000-12-23 | 2010-11-02 | International Business Machines Corporation | System and method for rewarding a user's interaction behavior with a computer system |
US7343317B2 (en) | 2001-01-18 | 2008-03-11 | Nokia Corporation | Real-time wireless e-coupon (promotion) definition based on available segment |
US7415426B2 (en) * | 2001-04-06 | 2008-08-19 | Catalina Marketing Corporation | Method and system for providing promotions to a customer based on the status of previous promotions |
WO2002083255A1 (en) | 2001-04-11 | 2002-10-24 | Walker Digital, Llc | Methods and systems for facilitating game play at a gaming device by means of third party offers |
US20020194064A1 (en) * | 2001-06-01 | 2002-12-19 | Parry Travis J. | Methods and apparatus for promoting use of consumable goods in imaging devices |
JP2003006509A (en) | 2001-06-20 | 2003-01-10 | Hitachi Ltd | Communication equipment, communication system and advertisement rate calculation method |
KR100400833B1 (en) * | 2002-03-13 | 2003-10-08 | Neowiz Co Ltd | Method and system for go- stop game service using internet |
US8216071B2 (en) * | 2002-03-20 | 2012-07-10 | Intel Corporation | Method and apparatus for software delivery and management |
DE10308011B4 (en) * | 2003-02-25 | 2005-04-28 | Siemens Ag | A method for reward-based recommending content objects downloadable to a mobile station |
US7649838B2 (en) * | 2003-03-31 | 2010-01-19 | Adknowledge, Inc. | System and method for ranking the quality of internet traffic directed from one web site to another |
WO2005098702A2 (en) * | 2004-03-26 | 2005-10-20 | Citicorp Credit Services, Inc. | Methods and systems for integration of multiple rewards programs |
AU2005258080A1 (en) * | 2004-06-18 | 2006-01-05 | Pictothink Corporation | Network content organization tool |
KR20070022397A (en) | 2004-06-28 | 2007-02-26 | 퀄컴 인코포레이티드 | Virtual marketplace for wireless device applications and services with integrated multi-party settlement |
US20050289047A1 (en) | 2004-06-28 | 2005-12-29 | Oliver Mitchell B | Virtual marketplace for wireless device applications and services with integrated multi-party settlement |
US20070174115A1 (en) | 2004-09-01 | 2007-07-26 | International Business Machines Corporation | In-store consumer-based personalized offer presentation system and method |
CN100555221C (en) * | 2005-05-31 | 2009-10-28 | 微软公司 | Be used for the fractionation download system that electronic software is downloaded |
US20080070690A1 (en) | 2005-10-14 | 2008-03-20 | Leviathan Entertainment, Llc | Credit Cards in a Virtual Environment |
US8226472B2 (en) * | 2010-06-08 | 2012-07-24 | Leviathan Entertainment, Llc | Video game capable of providing offers to players |
US7698171B2 (en) | 2006-07-28 | 2010-04-13 | Trialpay, Inc. | Methods and system for facilitating bids for placement of offers in an alternative payment platform |
US20080077506A1 (en) | 2006-07-28 | 2008-03-27 | Alastair Rampell | Methods and systems for providing a user interface for an alternative payment platform |
US20080091528A1 (en) | 2006-07-28 | 2008-04-17 | Alastair Rampell | Methods and systems for an alternative payment platform |
US20090292599A1 (en) | 2006-07-28 | 2009-11-26 | Alastair Rampell | Transactional advertising |
US20080082419A1 (en) * | 2006-10-03 | 2008-04-03 | Webgne.Com, Llc | Internet Search and Action Incentivization System and Associated Methods |
CA2672294A1 (en) | 2007-01-18 | 2008-07-24 | Coupons, Inc. | System and method for controlling distribution of electronic coupons |
US20080249937A1 (en) | 2007-04-06 | 2008-10-09 | Walls Robert K | Payment card based remittance system with delivery of anti-money laundering information to receiving financial institution |
CN101136938B (en) * | 2007-09-10 | 2011-04-27 | 北京易路联动技术有限公司 | Centralized management method and platform system for mobile internet application |
US7908262B2 (en) * | 2008-02-19 | 2011-03-15 | Surfjar, Inc. | System and method for providing search engine-based rewards |
US8145537B2 (en) | 2008-02-21 | 2012-03-27 | Digital River, Inc. | Integrated software network agent |
US20090248519A1 (en) * | 2008-03-27 | 2009-10-01 | Yoram Mikael Ghassabian | Rewarding internet service, advertisement, and usage method |
WO2009126316A1 (en) * | 2008-04-10 | 2009-10-15 | Cerbini Anthony P | Reward system for players of video and computer games |
WO2009150439A1 (en) | 2008-06-13 | 2009-12-17 | Christopher Simon Gorman | Content system |
US20100106569A1 (en) * | 2008-10-24 | 2010-04-29 | Cardlytics, Inc. | System and Methods for Offer Realization and Redemption in a Targeted Marketing Offer Delivery System |
JP5156838B2 (en) | 2008-10-27 | 2013-03-06 | 株式会社日立製作所 | Resource management method and embedded device |
US8745153B2 (en) | 2009-02-09 | 2014-06-03 | Apple Inc. | Intelligent download of application programs |
US8688517B2 (en) * | 2009-02-13 | 2014-04-01 | Cfph, Llc | Method and apparatus for advertising on a mobile gaming device |
US20100262506A1 (en) | 2009-04-08 | 2010-10-14 | Microsoft Corporation | Mobile content delivery on a mobile network |
US20100324983A1 (en) * | 2009-06-22 | 2010-12-23 | Etchegoyen Craig S | System and Method for Media Distribution |
US8176198B2 (en) * | 2009-08-27 | 2012-05-08 | Clearwire Ip Holdings Llc | Configurable download timing and reward system in a data network |
US20110161150A1 (en) | 2009-12-29 | 2011-06-30 | Marc Steffens | Methods and systems providing a multi-merchant rewards platform |
US20110217681A1 (en) * | 2010-03-03 | 2011-09-08 | Brian Krejcarek | Sensor network for incentivizing behavioral actions |
US8396759B2 (en) | 2010-06-18 | 2013-03-12 | Google Inc. | Context-influenced application recommendations |
WO2012018423A1 (en) * | 2010-08-06 | 2012-02-09 | Tapjoy, Inc. | System and method for rewarding application installs |
US20120209668A1 (en) | 2011-02-15 | 2012-08-16 | Terry Angelos | Dynamically serving content to social network members |
US20120209908A1 (en) | 2011-02-15 | 2012-08-16 | Terry Angelos | Dynamically serving content to social network members |
US20120265603A1 (en) | 2011-04-14 | 2012-10-18 | Fiksu, Inc. | Mobile digital media download tracking management utilizing statistical user fingerprinting techniques through correlation of web-based download user actions with mobile application download user actions |
US8650070B2 (en) | 2011-08-02 | 2014-02-11 | Google Inc. | System and method for sharing content on third-party mobile applications |
US20130185133A1 (en) | 2012-01-15 | 2013-07-18 | Linda Tong | Recommending virtual reward offers and awarding virtual rewards |
-
2011
- 2011-05-12 WO PCT/US2011/036209 patent/WO2012018423A1/en active Application Filing
- 2011-05-12 US US13/106,051 patent/US9189801B2/en active Active
- 2011-05-12 CA CA2807473A patent/CA2807473C/en active Active
- 2011-05-12 EP EP11814933.5A patent/EP2601629A4/en not_active Ceased
- 2011-05-12 CN CN201180043488.0A patent/CN103270527B/en active Active
- 2011-08-05 US US13/198,809 patent/US20120036003A1/en not_active Abandoned
- 2011-08-05 WO PCT/US2011/046696 patent/WO2012019072A1/en active Application Filing
- 2011-08-05 EP EP11815356.8A patent/EP2601630A4/en not_active Ceased
- 2011-08-05 CA CA2807481A patent/CA2807481A1/en not_active Abandoned
- 2011-08-05 CN CN201180044117.4A patent/CN103262111B/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005428A1 (en) * | 1999-12-08 | 2007-01-04 | Jacobs Paul E | Method for distributing advertisements to client devices having e-mail software installed including multiple advertisement operational modes |
US20020128984A1 (en) * | 2001-02-26 | 2002-09-12 | 4Thpass Inc. | Method and system for transmission-based billing of applications |
US20050055398A1 (en) * | 2001-03-27 | 2005-03-10 | Microsoft Corporation | Protocol agnostic request response pattern |
US20030084439A1 (en) * | 2001-10-04 | 2003-05-01 | Ross Perkins | Incentive system for distributing software over a computer network |
US20040254836A1 (en) * | 2003-01-28 | 2004-12-16 | Emoke Barabas Jutka T. | Method & system for distribution & management of electronic vouchers via carrier applications |
US20060259361A1 (en) * | 2005-05-11 | 2006-11-16 | Barhydt William J | System and method for mobile loyalty program |
US20070255576A1 (en) * | 2006-04-26 | 2007-11-01 | Macrovision Corporation | Service providing an electronic market for the distribution of promotional material using software installation packages |
US20080275786A1 (en) * | 2007-05-03 | 2008-11-06 | Digital Interactive Systems Corporation | System and method for increasing purchase conversion rates |
US20090182589A1 (en) * | 2007-11-05 | 2009-07-16 | Kendall Timothy A | Communicating Information in a Social Networking Website About Activities from Another Domain |
US20100318611A1 (en) * | 2009-06-10 | 2010-12-16 | Silverpop Systems, Inc. | Methods and systems for tracking shared content |
Cited By (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9189801B2 (en) * | 2010-08-06 | 2015-11-17 | Tapjoy, Inc. | System and method for rewarding application installs |
US20120035990A1 (en) * | 2010-08-06 | 2012-02-09 | Tapjoy, Inc. | System and method for rewarding application installs |
US20120265603A1 (en) * | 2011-04-14 | 2012-10-18 | Fiksu, Inc. | Mobile digital media download tracking management utilizing statistical user fingerprinting techniques through correlation of web-based download user actions with mobile application download user actions |
US20120265602A1 (en) * | 2011-04-14 | 2012-10-18 | Fiksu, Inc. | Mobile digital media download incentive management through tracking of id stored in native facilities of the mobile device |
US20130111328A1 (en) * | 2011-11-01 | 2013-05-02 | Amit Khanna | Launching applications from webpages |
US9355186B2 (en) * | 2011-11-01 | 2016-05-31 | Google Inc. | Launching applications from webpages |
US20130144696A1 (en) * | 2011-12-01 | 2013-06-06 | Netanel Raisch | Methods and Devices for Determining the Price of a Product |
US20130179273A1 (en) * | 2012-01-11 | 2013-07-11 | Connection Portal, Inc. | Communication system, apparatus and method thereof |
US10607245B2 (en) | 2012-01-15 | 2020-03-31 | Tapjoy, Inc. | Recommending virtual reward offers and awarding virtual rewards |
US10832258B2 (en) * | 2012-05-11 | 2020-11-10 | Verizon Patent And Licensing Inc. | Bounty tracking for referral |
US20130304551A1 (en) * | 2012-05-11 | 2013-11-14 | Verizon Patent And Licensing Inc. | Bounty tracking for referral |
CN104487995A (en) * | 2012-07-13 | 2015-04-01 | 世嘉股份有限公司 | Server device, server program, and game program |
GB2505999A (en) * | 2012-07-18 | 2014-03-19 | Suzanne Crofts Shelton | Method of Encouraging Rebate Redemption by Offering Action Plan on Survey Completion |
WO2014025129A1 (en) * | 2012-08-10 | 2014-02-13 | 네이버 주식회사 | Application installation system, apparatus, method, and computer-readable recording medium in mobile terminal using user terminal |
US10621625B2 (en) | 2012-10-08 | 2020-04-14 | Facebook, Inc. | On-line advertising with social pay |
WO2014058621A1 (en) * | 2012-10-08 | 2014-04-17 | Facebook, Inc | On-line advertising with social pay |
US9626692B2 (en) | 2012-10-08 | 2017-04-18 | Facebook, Inc. | On-line advertising with social pay |
JP2015536007A (en) * | 2012-10-08 | 2015-12-17 | フェイスブック,インク. | Online advertising with social pay |
US9940669B2 (en) * | 2013-03-08 | 2018-04-10 | Mx Technologies, Inc. | Flexible open origination |
US10853834B2 (en) | 2013-03-14 | 2020-12-01 | Xerox Corporation | System and method for incentivizing wireless device users to interact with sponsor offers and advertising |
US10332142B2 (en) * | 2013-03-14 | 2019-06-25 | Datascape, Inc. | System and method for incentivizing wireless device users to interact with sponsor offers and advertising |
US20140304054A1 (en) * | 2013-04-03 | 2014-10-09 | Salesforce.Com, Inc. | System and method for handling gamification fraud |
US9659303B2 (en) * | 2013-04-03 | 2017-05-23 | Salesforce.Com, Inc. | System and method for handling gamification fraud |
US20140351041A1 (en) * | 2013-05-24 | 2014-11-27 | HasOffers, Inc. | Methods of tracking downloads and usage of software applications |
US9323514B2 (en) | 2013-05-30 | 2016-04-26 | Microsoft Technology Licensing, Llc | Resource package indexing |
US20140358651A1 (en) * | 2013-05-31 | 2014-12-04 | Kabam, Inc. | Presenting offers for in-game virtual rewards |
CN105611974A (en) * | 2013-05-31 | 2016-05-25 | Kabam公司 | Presenting offers for in-game virtual rewards |
US10286298B1 (en) * | 2013-06-18 | 2019-05-14 | Electronic Arts Inc. | Dynamically adjusting virtual rewards presented in offers |
US10546314B2 (en) * | 2013-06-28 | 2020-01-28 | Groupon, Inc. | Systems and methods for providing promotion sharing among consumers |
US11710146B2 (en) | 2013-06-28 | 2023-07-25 | Groupon, Inc. | Systems and methods for providing promotion sharing among consumers |
US10032182B1 (en) * | 2013-06-28 | 2018-07-24 | Groupon, Inc. | Systems and methods for providing promotion sharing among consumers |
US10943245B2 (en) | 2013-06-28 | 2021-03-09 | Groupon, Inc. | Systems and methods for providing promotion sharing among consumers |
US20210058451A1 (en) * | 2013-07-31 | 2021-02-25 | Adenda Media Inc. | Systems and Methods for Displaying Ads on a Mobile Device Outside of a Mobile App |
US11652869B2 (en) * | 2013-07-31 | 2023-05-16 | Adenda Media Inc. | Systems and methods for displaying ads on a mobile device outside of a mobile app |
WO2015020894A3 (en) * | 2013-08-03 | 2015-07-02 | Google Inc. | Identifying media store users eligible for promotions |
CN105493123A (en) * | 2013-08-03 | 2016-04-13 | 谷歌公司 | Identifying media store users eligible for promotions |
US20150066636A1 (en) * | 2013-08-29 | 2015-03-05 | Tune, Inc. | Systems and methods of attributing and compensating acquisition of influential users in a software application |
US10305998B2 (en) * | 2013-09-02 | 2019-05-28 | Tencent Technology (Shenzhen) Company Limited | Methods and systems for managing a task based on geographical locations |
WO2015048128A1 (en) * | 2013-09-30 | 2015-04-02 | Analog Analytics, Inc. | System and method for improved app distribution |
US11413524B2 (en) | 2013-10-24 | 2022-08-16 | Kabam, Inc. | System and method for dynamically altering an in-game experience based on a user's connection to the game |
US10188946B1 (en) | 2013-10-24 | 2019-01-29 | Kabam, Inc. | System and method for dynamically altering an in-game experience based on a user's connection to the game |
US10709977B2 (en) | 2013-10-24 | 2020-07-14 | Kabam, Inc. | System and method for dynamically altering an in-game experience based on a user's connection to the game |
US9940645B1 (en) * | 2013-11-13 | 2018-04-10 | Google Llc | Application installation using in-video programming |
US20150186944A1 (en) * | 2013-12-30 | 2015-07-02 | Ten Farms, Inc. | Motion and gesture-based mobile advertising activation |
US9799054B2 (en) | 2013-12-30 | 2017-10-24 | Adtile Technologies Inc. | Motion and gesture-based mobile advertising activation |
US9607319B2 (en) * | 2013-12-30 | 2017-03-28 | Adtile Technologies, Inc. | Motion and gesture-based mobile advertising activation |
US20150227954A1 (en) * | 2014-02-07 | 2015-08-13 | Nhn Entertainment Corporation | Push system for mobile game promotion and the method of push service |
US20150310485A1 (en) * | 2014-03-13 | 2015-10-29 | Tune, Inc. | Systems and methods for attribution of actions without utilizing persistent client-side storage or cross-process communication |
US10055754B2 (en) | 2014-03-13 | 2018-08-21 | Tune, Inc. | Systems and methods for tracking application installs that distinguish new users from existing users without directly accessing user account records |
US9785974B1 (en) * | 2014-04-18 | 2017-10-10 | Rocket Fuel Inc. | Identifying mobile application installations |
US11710157B2 (en) * | 2014-06-11 | 2023-07-25 | Google Llc | Methods, systems, and media for presenting an advertisement that facilitates the purchase of content associated with an application |
US11030659B1 (en) * | 2014-06-11 | 2021-06-08 | Google Llc | Methods, systems, and media for presenting an advertisement that facilitates the purchase of content associated with an application |
US20210295393A1 (en) * | 2014-06-11 | 2021-09-23 | Google Llc | Methods, systems, and media for presenting an advertisement that facilitates the purchase of content associated with an application |
US9996848B2 (en) | 2014-06-12 | 2018-06-12 | Outfit7 Limited | Communication of reward data between applications |
EP2954940A1 (en) * | 2014-06-12 | 2015-12-16 | Bee7000 Limited | Communication of reward data between applications |
WO2015189257A1 (en) * | 2014-06-12 | 2015-12-17 | Bee7000 Limited | Communication of reward data between applications |
CN105187477A (en) * | 2014-06-12 | 2015-12-23 | 必翼7000有限公司 | Communication Of Reward Data Between Applications |
US10825039B2 (en) * | 2014-06-12 | 2020-11-03 | Outfit7 Limited | Communication of reward data between applications |
US10902509B1 (en) * | 2014-06-27 | 2021-01-26 | Amazon Technologies, Inc. | Providing digital representations based on physical items |
US10413818B2 (en) | 2014-10-01 | 2019-09-17 | Outfit7 Limited | Monitoring an application on a processing device |
US10643239B2 (en) | 2014-10-01 | 2020-05-05 | Outfit7 Limited | Monitoring an application on a processing device and generating rewards |
EP3230888A4 (en) * | 2014-12-10 | 2018-07-04 | Button Inc. | Switching to second application to perform action |
WO2016094634A1 (en) * | 2014-12-10 | 2016-06-16 | Button Inc. | Switching to second application to perform action |
US20160170731A1 (en) * | 2014-12-10 | 2016-06-16 | Button Inc. | Use-case-based application installation and switching to a second application to perform an action |
US10055211B2 (en) * | 2014-12-10 | 2018-08-21 | Button Inc. | Use-case-based application installation and switching to a second application to perform an action |
US9792630B2 (en) * | 2015-04-02 | 2017-10-17 | Vungle, Inc. | Systems and methods for autonomous bids of advertisement inventory |
US20180040033A1 (en) * | 2015-04-02 | 2018-02-08 | Vungle, Inc. | Systems and methods for autonomous bids of advertisement inventory |
US20160292746A1 (en) * | 2015-04-02 | 2016-10-06 | Vungle, Inc. | Systems and methods for autonomous bids of advertisement inventory |
US10692117B2 (en) * | 2015-04-02 | 2020-06-23 | Vungle, Inc. | Systems and methods for autonomous bids of advertisement inventory |
US10437463B2 (en) | 2015-10-16 | 2019-10-08 | Lumini Corporation | Motion-based graphical input system |
US20180365935A1 (en) * | 2015-12-10 | 2018-12-20 | Kabam, Inc. | Facilitating event implementation in an online game |
US12010181B2 (en) | 2015-12-10 | 2024-06-11 | Kabam, Inc. | Dynamic online game implementation on a client device |
US10702780B2 (en) * | 2015-12-10 | 2020-07-07 | Kabam, Inc. | Facilitating event implementation in an online game |
US11779848B2 (en) * | 2015-12-10 | 2023-10-10 | Kabam, Inc. | Facilitating event implementation in an online game |
US11303730B2 (en) | 2015-12-10 | 2022-04-12 | Kabam, Inc. | Dynamic online game implementation on a client device |
US10193999B1 (en) | 2015-12-10 | 2019-01-29 | Kabam, Inc. | Dynamic online game implementation on a client device |
US11331582B2 (en) * | 2015-12-10 | 2022-05-17 | Kabam, Inc. | Facilitating event implementation in an online game |
US10938959B2 (en) | 2015-12-10 | 2021-03-02 | Kabam, Inc. | Dynamic online game implementation on a client device |
US20220219088A1 (en) * | 2015-12-10 | 2022-07-14 | Kabam, Inc. | Facilitating event implementation in an online game |
US10498860B2 (en) | 2015-12-10 | 2019-12-03 | Kabam, Inc. | Dynamic online game implementation on a client device |
US11652887B2 (en) | 2015-12-10 | 2023-05-16 | Kabam, Inc. | Dynamic online game implementation on a client device |
US10068431B1 (en) * | 2015-12-10 | 2018-09-04 | Kabam, Inc. | Facilitating event implementation in an online game |
CN107135550A (en) * | 2016-02-29 | 2017-09-05 | 卡西欧计算机株式会社 | Communicator and web access control method |
US20170278352A1 (en) * | 2016-03-19 | 2017-09-28 | Circle Eight Games Inc. | Systems and methods for promotion of electronic games |
US10257342B2 (en) | 2016-03-31 | 2019-04-09 | Microsoft Technology Licensing, Llc | Validating stateful dynamic links in mobile applications |
WO2017205802A1 (en) * | 2016-05-27 | 2017-11-30 | App Annie Inc. | Advertisement data metric determination within mobile applications |
US10402180B2 (en) * | 2016-06-29 | 2019-09-03 | Google Llc | Latency reduction in feedback-based system performance determination |
US10318011B2 (en) | 2017-01-06 | 2019-06-11 | Lumini Corporation | Gesture-controlled augmented reality experience using a mobile communications device |
US9983687B1 (en) | 2017-01-06 | 2018-05-29 | Adtile Technologies Inc. | Gesture-controlled augmented reality experience using a mobile communications device |
US11360875B2 (en) | 2017-08-15 | 2022-06-14 | Cognant Llc | System and method for detecting fraudulent activity on client devices |
US20190102545A1 (en) * | 2017-09-29 | 2019-04-04 | Cognant Llc | System and method for detecting fraudulent software installation activity |
US10789357B2 (en) * | 2017-09-29 | 2020-09-29 | Cognant Llc | System and method for detecting fraudulent software installation activity |
US11068530B1 (en) * | 2018-11-02 | 2021-07-20 | Shutterstock, Inc. | Context-based image selection for electronic media |
US20230394514A1 (en) * | 2020-10-16 | 2023-12-07 | Catalina Marketing Corporation | Enabling digital advertising identifier consent conversion for tracking across different applications |
Also Published As
Publication number | Publication date |
---|---|
US9189801B2 (en) | 2015-11-17 |
EP2601630A4 (en) | 2014-04-09 |
CN103270527B (en) | 2017-05-10 |
CN103262111B (en) | 2016-10-12 |
WO2012019072A1 (en) | 2012-02-09 |
US20120035990A1 (en) | 2012-02-09 |
WO2012018423A1 (en) | 2012-02-09 |
CN103262111A (en) | 2013-08-21 |
EP2601630A1 (en) | 2013-06-12 |
CA2807473C (en) | 2016-08-23 |
EP2601629A4 (en) | 2014-04-09 |
CA2807481A1 (en) | 2012-02-09 |
EP2601629A1 (en) | 2013-06-12 |
CN103270527A (en) | 2013-08-28 |
CA2807473A1 (en) | 2012-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189801B2 (en) | System and method for rewarding application installs | |
CN113835777B (en) | Mobile application activity detector | |
US10296403B2 (en) | Software development kit platform | |
KR102408476B1 (en) | Method for predicing purchase probability based on behavior sequence of user and apparatus therefor | |
US20230209304A1 (en) | Systems and methods for providing mobile proving ground | |
US20150134452A1 (en) | Mechanism for facilitating dynamic and targeted advertisements for computing systems | |
US20140351041A1 (en) | Methods of tracking downloads and usage of software applications | |
CN101496054A (en) | Advertising middleware | |
US20150310483A1 (en) | Determining application conversions | |
US9811595B2 (en) | Missed media system and method | |
WO2010146329A1 (en) | Method and apparatus for interacting with a user over a network | |
US20230017558A1 (en) | Systems and methods for detecting data leakage of online content | |
US20130218669A1 (en) | Method and system for quantifying interactions with digital content | |
US20160283996A1 (en) | System for management of online content affiliate program for offline retail business | |
US20190236636A1 (en) | Targeted content and rewards | |
US20080065487A1 (en) | Contextual content rendering | |
US20090313082A1 (en) | Method and Apparatus for Collecting Information About Targeted Behavior on the Internet | |
US20180018691A1 (en) | System, method, and device for managing events |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TAPJOY, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TONG, LINDA;MANJI, AMIR;JOHNS, RYAN;AND OTHERS;REEL/FRAME:026784/0754 Effective date: 20110805 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:TAPJOY, INC.;REEL/FRAME:038766/0662 Effective date: 20160531 |
|
AS | Assignment |
Owner name: ORIX VENTURES, LLC, TEXAS Free format text: SECURITY INTEREST;ASSIGNOR:TAPJOY, INC.;REEL/FRAME:038841/0861 Effective date: 20160531 |
|
AS | Assignment |
Owner name: TAPJOY, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:ORIX VENTURES, LLC;REEL/FRAME:045962/0506 Effective date: 20180523 |
|
STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |
|
AS | Assignment |
Owner name: TAPJOY, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:059486/0071 Effective date: 20220106 |