US20210360051A1 - Methods and systems for evergreen link generation and processing - Google Patents
Methods and systems for evergreen link generation and processing Download PDFInfo
- Publication number
- US20210360051A1 US20210360051A1 US17/038,794 US202017038794A US2021360051A1 US 20210360051 A1 US20210360051 A1 US 20210360051A1 US 202017038794 A US202017038794 A US 202017038794A US 2021360051 A1 US2021360051 A1 US 2021360051A1
- Authority
- US
- United States
- Prior art keywords
- target
- link
- evergreen
- electronic processor
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H04L67/2804—
-
- H04L67/2852—
-
- H04L67/32—
-
- H04L67/42—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Definitions
- Embodiments relate to evergreen link generation and processing.
- Website servers host one or more websites that provide information and offerings to client devices (for example, smart phones, laptop computers, tablets, desktop computers, or other computing devices).
- client devices for example, smart phones, laptop computers, tablets, desktop computers, or other computing devices.
- a client device executes a web browser or other dedicated software application that accesses and communicates with the website server over one or more wired and wireless communication networks (for example, the Internet, a local area network, a wide area network, a cellular network, or the like) to provide input to the website server, make requests for data to the website server, obtain data from the website server, and the like.
- the web browser may obtain webpages and related data that make up a website and display the website on the client device (via a display device of the client device). Some webpages include links that direct the web browser to another target.
- a target may include, for example, another website, server, software application, file, webpage, or the like.
- the web browser may be directed to the target associated with the selected link.
- the web browser may be directed to download a file (as the target).
- the web browser may be directed to visit (or display) a website (as the target).
- Some websites include a link to a product, good, or service offered for sale by another website (a vendor website).
- a vendor operating the vendor website will, in some cases, offer a commission to an affiliate operating the affiliate website for sales of products stemming from referrals (or consumers) that followed the link on the affiliate website.
- Intermediary systems have been developed that assist in generating links for affiliates to include on affiliate websites and for vendors to track referral purchases for the purpose of, for example, providing commissions.
- a target or target offering associated with a link on an affiliate website may cease to exist or may change such that the original target is no longer available.
- the target is a product
- the vendor may cease to offer the product or the product may be out of stock.
- the link associated with that target becomes “broken.” Broken links lead to website errors, inefficiencies and frustrations for clients, vendors, and affiliates, lost revenue by vendors and affiliates, and the like.
- multiple parties may be involved in a link on an affiliate website (e.g., client, vendor, affiliate, and intermediary systems)
- simple replacement by a client device of broken link with a new link to another offering is not sufficient to ensure that the relevant parties may be identified and tracked as desired in the system.
- the embodiments described herein provide, among other things, systems and methods for generating evergreen links and processing evergreen link requests on an intermediary system to avoid broken links by providing relevant replacement data.
- the intermediary system includes an intermediary platform server that receives a request, from a publisher device, for an evergreen link for a first target. The server, in response, generates an evergreen link for the first target and provides the evergreen link to the publisher device. Then, the server receives a request from a client device in response to selection of the evergreen link, wherein the evergreen link was received by the client device from the publisher device. The server determines whether the first target is valid.
- the server determines a replacement target.
- the server then provides the replacement target to the client device in reply to the request.
- the server provides the first target to the client device in reply to the request.
- one embodiment provides a system for evergreen link generation and processing.
- the system includes an electronic processor configured to receive, from a publisher device, a first request for an evergreen link associated with a first target.
- the electronic processor is also configured to generate the evergreen link for the first target and enable access to the evergreen link by the publisher device.
- the electronic processor is also configured to receive, from a client device, a second request in response to a selection of the evergreen link, wherein the evergreen link was received by the client device from the publisher device.
- the electronic processor is also configured to determine whether the first target is valid.
- the electronic processor is also configured to, when the first target is not valid, determine a replacement target and provide, to the client device, the replacement target in reply to the second request.
- the electronic processor is also configured to, when the first target is valid, provide, to the client device, the first target in reply to the second request.
- the method includes receiving, from a publisher device with an electronic processor, a first request for an evergreen link associated with a first target.
- the method also includes generating, with the electronic processor, the evergreen link for the first target.
- the method also includes enabling, with the electronic processor, access to the evergreen link by the publisher device.
- the method also includes receiving, from a client device with the electronic processor, a second request in response to a selection of the evergreen link, wherein the evergreen link was received by the client device from the publisher device.
- the method also includes determining, with the electronic processor, whether the first target is valid.
- the method also includes, when the first target is not valid, determining, with the electronic processor, a replacement target, and providing, to the client device with the electronic processor, the replacement target in reply to the second request.
- the method also includes, when the first target is valid, providing, to the client device with the electronic processor, the first target in reply to the second request.
- Yet another embodiment provides a non-transitory, computer-readable medium storing instructions that, when executed by an electronic processor, perform a set of functions.
- the set of functions includes receiving, from a publisher device, a first request for an evergreen link associated with a first target.
- the set of functions also includes generating the evergreen link for the first target.
- the set of functions also includes enabling access to the evergreen link by the publisher device.
- the set of functions also includes receiving, from a client device, a second request in response to a selection of the evergreen link, wherein the evergreen link was received by the client device from the publisher device.
- the set of functions also includes determining whether the first target is valid.
- the set of functions also includes, when the first target is not valid, determining a replacement target, and providing, to the client device, the replacement target in reply to the second request.
- the set of functions also includes when the first target is valid, providing, to the client device, the first target in reply to the second request.
- FIG. 1 schematically illustrates a system for evergreen link generation and processing according to some embodiments.
- FIG. 2 schematically illustrates a server included in the system of FIG. 1 according to some embodiments.
- FIG. 3 schematically illustrates an evergreen link service according to some embodiments.
- FIG. 4 schematically illustrates a flow diagram for the system of FIG. 1 according to some embodiments.
- FIG. 5 is a flowchart illustrating a method for evergreen link generation and processing performed by the system of FIG. 1 in accordance with some embodiments.
- embodiments may include hardware, software, and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware.
- electronic based aspects of the disclosed embodiments may be implemented in software (for example, stored on non-transitory computer-readable medium) executable by one or more processors.
- FIG. 1 illustrates a system 100 for evergreen link generation and processing according to some embodiments.
- the system 100 includes a server 105 , a publisher device 110 , a client device 115 , and a vendor device 120 .
- the system 100 includes fewer, additional, or different components than illustrated in FIG. 1 in various configurations.
- the system 100 may include multiple servers 105 , publisher devices 110 , client devices 115 , vendor devices 120 , or a combination thereof.
- one or more components of the system 100 may be distributed among multiple devices, servers, or databases, combined into a single device, server, or database, or a combination thereof.
- Portions of the communication networks 130 may be implemented using a wide area network, such as the Internet, a local area network, such as a BluetoothTM network or Wi-Fi, and combinations or derivatives thereof Alternatively or in addition, in some embodiments, components of the system 100 communicate directly as compared to through the communication network 130 . Also, in some embodiments, the components of the system 100 communicate through one or more intermediary devices not illustrated in FIG. 1 .
- the server 105 includes a computing device, such as a server, a database, or the like. As illustrated in FIG. 2 , the server 105 includes an electronic processor 200 , a memory 205 , and a communication interface 210 . The electronic processor 200 , the memory 205 , and the communication interface 210 communicate wirelessly, over one or more communication lines or buses, or a combination thereof.
- the server 105 may include additional components than those illustrated in FIG. 2 in various configurations.
- the server 110 may also include one or more human machine interfaces, such as a keyboard, keypad, mouse, joystick, touchscreen, display device, printer, speaker, and the like, that receive input from a user, provide output to a user, or a combination thereof.
- the communication interface 210 may include a transceiver that communicates with one or more components of the system 100 over the communication network 130 and, optionally, one or more other communication networks or connections.
- the electronic processor 200 includes a microprocessor, an application-specific integrated circuit (“ASIC”), or another suitable electronic device for processing data
- the memory 205 includes a non-transitory, computer-readable storage medium.
- the electronic processor 200 is configured to retrieve instructions and data from the memory 205 and execute the instructions.
- the memory 205 includes an evergreen link application 220 .
- the evergreen link application 220 is a software application executable by the electronic processor 200 . As described in more detail below, the electronic processor 200 executes the evergreen link application 220 to generate evergreen links and process evergreen link requests.
- the memory 205 may also store offer curation and management software 230 .
- the offer curation and management software 230 is a software application executable by the electronic processor 200 .
- the electronic processor 200 executes the offer curation and management software 230 to manage and provide offer data.
- Offer data may include a target (or target offering) and related target data.
- a target may include a product, good, or service offered for sale on, for example, a vendor website.
- Related target data may include, for example, a product category, a commission yield for an affiliate (for example, a percentage of sale, a flat rate, a cost per click or impression, and the like), a date (for example, a created data, an updated date, or the like), a description of the target (for example, target details, target features, and the like), an identifier (for example, a SKU, a UPC, an ISBN, an EAN, a GTIN, and the like), an image, a manufacturer, a maturity level (for example, adults, general audiences, children, or the like), a merchant or advertiser brand, a popularity (for example, reviewer ratings, number of purchases, and the like), a price (for example, a list price, a sale price, a subscription cost, a shipping cost, and the like), a title, a URL, a variation (for example, a size, a color, or the like), a vendor (for example, an affiliate network, an origin of the target, or the like),
- FIG. 3 illustrates an evergreen link service 300 according to some embodiments.
- the evergreen link service 300 may be broken up into independent services that work together to make up the services or functionality of, for example, the server 105 .
- the evergreen link service 300 may include one or more load balancers 305 , an application service API 310 , static content 315 , application data storage 320 , and offer data storage 320 .
- Each component of the evergreen link service 300 may be provided by one or more servers, databases, or devices.
- the offer data storage 320 may include a plurality of databases (as a database system) for storing offer data.
- the application data storage 320 may store the evergreen link application 220 , the offer curation and management software 230 , or a combination thereof
- the evergreen link service 300 may implement one or more development environments, sandbox environments, or a combination thereof.
- the one or more load balancers 305 are exposed directly to the Internet (for example, the communication network 130 ) while the remaining components are isolated on an internal network, such as a local area network.
- the publisher device 110 , the client device 115 , the vendor device 120 , or a combination thereof may be computing devices, such as a desktop computer, a laptop computer, a tablet computer, a terminal, a smart telephone, a smart television, a smart wearable, or another suitable computing device that interfaces with a user.
- a desktop computer such as a desktop computer, a laptop computer, a tablet computer, a terminal, a smart telephone, a smart television, a smart wearable, or another suitable computing device that interfaces with a user.
- the publisher device 110 , the client device 115 , the vendor device 120 , or a combination thereof may include similar components as the server 105 , such as an electronic processor (for example, a microprocessor, an ASIC, or another suitable electronic device), a memory (for example, a non-transitory, computer-readable storage medium), a communication interface, such as a transceiver, for communicating over the communication network 130 and, optionally, one or more additional communication networks or connections, and one or more human machine interfaces.
- the publisher device 110 , the client device 115 , the vendor device 120 , or a combination thereof may store a browser application or a dedicated software application executable by an electronic processor.
- the system 100 is described herein as providing an evergreen link generation and processing service through the server 105 .
- the functionality described herein as being performed by the server 105 may be locally performed by the publisher device 110 , the client device 115 , the vendor device 120 , or a combination thereof.
- the publisher device 110 , the client device 115 , the vendor device 120 , or a combination thereof may store the evergreen link application 220 , the offer curation and management software 230 , or a combination thereof.
- the vendor device 120 may be used by a vendor (or merchant) for managing and hosting a vendor web site.
- a vendor web site may include, for example, a list of products, goods, or services offered by the vendor, additional information associated with the offered products, goods, or services, or the like.
- a vendor may be a kayak vendor.
- the kayak vendor may interact with the vendor device 120 to manage and host a website selling kayaks, kayaking accessories, and other kayak related merchandise or equipment.
- the functionality described as being performed by the vendor device 120 may be distributed among multiple devices, servers, or databases.
- the vendor device 120 may be part of a vendor network including additional components (for example, additional computing devices, servers, or databases) for managing and hosting the vendor website and related data.
- the publisher device 110 may be used by a publisher or affiliate for generating and publishing content related to or associated with a product, good, or service.
- Content may include, for example, an article, an electronic communication (for example, a marketing e-mail), a blog posting, a webpage, a digital video or post, a podcast or other audio media, print media, or the like.
- the content includes one or more links (for example, a hyperlink or a uniform resource identifier (“URI”)) for a product, good, or service (for example, a product, good, or service offered for sale on a vendor website).
- the one or more links are evergreen links generated and processed by the server 105 (for example, the evergreen link application 22 ).
- an affiliate may use the publisher device 110 to generate an article listing the top ten kayaks (as the content).
- the article may be published or hosted on the affiliate's website.
- the article may include a link for each kayak included in the article.
- the functionality described as being performed by the publisher device 110 may be distributed among multiple devices, servers, or databases (such as part of a cloud service).
- the publisher device 110 may be part of a publisher network including additional components (for example, additional computing devices, servers, or databases) for managing and hosting the affiliate network.
- the client device 115 may be used by an end user or consumer (for example, a referral) for accessing and browsing vendor websites, affiliate websites, dedicated software applications of the vendor, and the like (for example, via a web browser of the client device 115 ).
- a consumer may use the client device 115 to access and interact with the affiliate website, and, more specifically, the article listing the top ten kayaks.
- the consumer may interact with the article by selecting a link for a kayak included in the article that is offered for sale on the kayak vendor's website.
- the client device 115 may be directed to the kayak vendor's website.
- the consumer via the web browser of the client device 115 , may ultimately purchase the kayak using the kayak vendor's website.
- the vendor device 120 may also determine from which publisher device 120 or website the client device 115 came based on information provided in the link (e.g., a unique identifier of the publisher device 120 or website). The vendor device 120 , in turn, may save this information and information about purchases that result from the visit at the kayak vendor's website (for example, a number of purchase, cost of the purchase, item purchased, and the like), and ultimately provide compensation to the publisher when the consumer purchases an offering provided by the kayak vendor.
- the link directs the client device 115 to a section or item within a dedicated software application (an “app”) executing on the client device 115 , rather than to a website via a web browser. Additionally, as explained below in further detail, in some instances, additional or different actions are taken in response to selection of the evergreen link, particularly, when an original target offering of the evergreen link is no longer available.
- FIG. 4 schematically illustrates an example flow diagram 400 for the system 100 according to some embodiments.
- the flow diagram 400 includes a brand and merchant portion 405 , a vendor portion 410 , an aggregator portion 415 , an application programming interface (“API”) portion 420 , and a publisher portion 425 .
- the brand and merchant portion 405 includes one or more brands or merchants 430 providing or manufacturing products or services.
- the vendor portion 410 includes one or more vendors 435 that offer products, goods, or services for sale to end users or consumers.
- a vendor 435 may include, for example, an e-commerce marketplace platform, such as Amazon.com, Rakuten.com, ShareASale.com, or the like.
- a Brand-A may manufacture Brand-A shoes, where a Vendor-A offers Brand-A shoes for sale to consumers via Vendor-A's website.
- an entity may be both a brand or merchant 430 and a vendor 435 .
- Amazon may offer Amazon-branded products for sale on Amazon.com.
- the entities included in the brand and merchant portion 405 , the vendor portion 410 , or a combination thereof may use one or more vendor devices or networks (for example, the vendor device 120 ) for managing and hosting vendor websites.
- the aggregator portion 415 aggregates product offers from the brands and merchants 430 and the vendors 435 as offer data.
- the offer data may be stored and managed by an offer curation and management system 437 (for example, the offer curation and management software 230 ).
- the API portion 420 includes one or more APIs implemented by the server 105 as part of generating and processing evergreen links.
- the API portion 420 may include a shortcodes API 440 , a commission API 445 , and a widget API 450 .
- the components of the API portion 420 may be included within the application service APIs 310 of the evergreen link service 300 of FIG. 3 .
- the aggregator portion 415 and the API portion 420 relates to functionality performed by the server 105 (or the evergreen link service 300 of FIG. 3 ).
- the publisher portion 425 relates to functionality provided to or made accessible to an affiliate via the publisher device 110 , such as a SmartServe Widget, one or more evergreen links, or the like, as described in greater detail below.
- FIG. 5 is a flowchart illustrating a method 500 for evergreen link generation and processing performed by the system 100 according to some embodiments.
- the method 500 is described as being performed by the server 105 and, in particular, the evergreen link application 220 as executed by the electronic processor 200 .
- some or all of the functionality described with respect to the method 500 may be performed by other devices, such as the publisher device 110 , the client device 115 , the vendor device 120 , or a combination thereof, or distributed among a plurality of devices, such as a plurality of servers included in a cloud service.
- the method 500 includes receiving, from the publisher device 110 with the electronic processor 200 , a first request for an evergreen link associated with a first target (at block 505 ).
- the publisher device 110 may generate and transmit the first request to the electronic processor 200 in response to a user interaction at the publisher device 110 .
- the user interaction may include an affiliate selecting a target offering for inclusion on the affiliate's website.
- the affiliate may browse a listing or catalog of offer data (using the SmartServe Widget illustrated in FIG. 4 ), including available target offerings and related target data (as described above), which may be managed by the server 105 (the offer curation and management software 230 ).
- the electronic processor 200 then generates the evergreen link for the first target (at block 510 ).
- An evergreen link is a link, such as a uniform resource identifier (“URI”) or a uniform resource locator (“URL”), that, when selected, directs a web browser to a target associated with the link.
- URI uniform resource identifier
- URL uniform resource locator
- a target or a target offering
- the generated evergreen link may be a full link (for example, a URI that directs a web browser directly to the target) or a shortened version of the full link (for example, a URI that points a web browser to a resource to obtain the full link), as described in further detail below.
- the evergreen link includes embedded within it vendor specific parameters to identify a publisher, such as a publisher identifier (uniquely identifying the publisher device 110 ) and website identifier (uniquely identifying a website hosted by or associated with the publisher device 110 and on which the evergreen link will be included). These vendor specific parameters allow a vendor (for example, the vendor device 120 ) to track the publisher of the evergreen link when the client device 115 ultimately uses the link. Accordingly, an evergreen link is associated with or linked to a target (or target offering) and a publisher.
- the electronic processor 200 After generating the evergreen link (at block 510 ), the electronic processor 200 enables access to the evergreen link by the publisher device 110 (at block 515 ). In some embodiments, the electronic processor 200 enables access to the evergreen link by transmitting or providing the evergreen link to the publisher device 110 over the communication network 130 . Alternatively or in addition, the electronic processor 200 may store the evergreen link in the memory 205 , a remote storage device or database, or a combination thereof. In such embodiments, the publisher device 110 may access the evergreen link by interacting with the memory 205 , the remote storage device or database, or a combination thereof.
- the publisher device 110 may publish the evergreen link on an affiliate website hosted by the publisher device 110 (or a publisher network including the publisher device 110 ).
- an affiliate may post or publish content including the evergreen link on the affiliate's website such that a consumer (via, for example, the client device 115 ) may access and interact with the evergreen link on the affiliate's website via a web browser of the client device 115 .
- the method 500 also includes receiving a second request in response to a selection of the evergreen link (at block 520 ).
- the electronic processor 200 receives the second request from the client device 115 over the communication network 130 .
- the second request may be generated in response to a user of the client device 115 interacting with or selecting the evergreen link on an affiliate website.
- a web browser of the client device 115 may navigate to an affiliate website in response to input on the client device 115 by the user (or, consumer).
- the web browser may interact with an evergreen link included on the affiliate's website (for example, the web browser may receive a selection of the evergreen link based on user input (for example, a mouse click) at the client device 115 ). Accordingly, in some embodiments, the evergreen link was received by the client device 115 from the publisher device 110 . In response to this user interaction, the client device 115 (an electronic processor of the client device 115 ) may generate and transmit the second request.
- a link shortening service is implemented by the system 100 .
- the evergreen link produced in block 510 and selected by a user of the client device 115 in block 520 is a shortened evergreen link.
- a shortened evergreen link is a URI intended to be low in character count and, when accessed, instructs the client device 115 to request the original evergreen link URI.
- An HTML example of a shortened evergreen link may include the following:
- Such a request may be, for example, the following HTTP request example:
- the electronic processor 200 In response to receiving this request, the electronic processor 200 provides a response including the original evergreen link URI.
- a response may be, for example, the following HTTP response example:
- the response instructs the client device 115 to request the given EVERGREEN_LINK_URI (for example, as the second request).
- a request for the EVERGREEN_LINK_URI may include, for example, the following HTTP request:
- an EVERGREEN_LINK_URI may be:
- the OFFER_ID is a unique identifier of the offer selected by the publisher (via the publisher device 110 ) and the CLICK_ID is a unique click identifier generated by the link shortening service.
- the electronic processor 200 determines whether to reject the second request. In such embodiments, the electronic processor 200 evaluates the second request to determine whether the second request is of malicious intent, not issued by a human actor, is fraudulent, illegitimate, or the like. In some embodiments, the electronic processor 200 determines whether to reject the second request based one or more considerations. Such considerations may include, for example, a client request header (for example, USER_AGENT, REFERRER, or the like), a source transmission control protocol (“TCP”) or internet protocol (“IP”) address, a time of day, a number of link accesses, and the like.
- a client request header for example, USER_AGENT, REFERRER, or the like
- TCP source transmission control protocol
- IP internet protocol
- the electronic processor 200 when the electronic processor 200 receives ten-thousand second requests within a ten-minute period, the second requests are likely of malicious intent.
- the particular thresholds in terms of quantity of requests and time period for requests vary, in some embodiments.
- the electronic processor 200 may identify the second requests as fraudulent and reject the second requests.
- the method 500 ends.
- the electronic processor 200 determines whether the first target is valid (at block 525 ). In some embodiments, the electronic processor 200 determines whether the first target is valid by performing a look up of the target offering associated with the second request. In some embodiments, the electronic processor 200 may look up an identifier of the target offering (for example, the OFFER_ID) as referenced in the EVERGREEN_LINK_URI. As one example, the electronic processor 200 may look up the identifier (OFFER_ID) from the offer curation and management system 437 (for example, the identifier included in the offer data).
- the electronic processor 200 may look up an identifier of the target offering (for example, the OFFER_ID) as referenced in the EVERGREEN_LINK_URI. As one example, the electronic processor 200 may look up the identifier (OFFER_ID) from the offer curation and management system 437 (for example, the identifier included in the offer data).
- the electronic processor 200 determines that the first target is valid (Yes at block 525 ) when the identifier (OFFER_ID) is found.
- an identifier of the first target may be found when the product associated with the first target is available for sale on a vendor website.
- the electronic processor 200 determines that the first target is not valid (No at block 525 ) when the offer is not found.
- an identifier of the first target may not be found when the product associated with the first target is no longer available for sale on a vendor website (for example, is no longer being sold or is out of stock).
- the electronic processor 200 may not find the identifier due to an invalid identifier, a target offering being removed by the publisher, or the like.
- the electronic processor 200 determines a replacement target (at block 530 ).
- the electronic processor 200 may use one or more attributes of the original offer to search for similar offers (for example, included in the offer data).
- the offer data is stored and managed by the offer curation and management software 230 .
- Offer data may include a target (or target offering) and related target data.
- a target may include a product, good, or service offered for sale on, for example, a vendor web site.
- Related target data may include, for example, a product category, a commission yield for an affiliate (for example, a percentage of sale, a flat rate, a cost per click or impression, and the like), a date (for example, a created data, an updated date, or the like), a description of the target (for example, target details, target features, and the like), an identifier (for example, a SKU, a UPC, an ISBN, an EAN, a GTIN, and the like), an image, a manufacturer, a maturity level (for example, adults, general audiences, children, or the like), a merchant or advertiser brand, a popularity (for example, reviewer ratings, number of purchases, and the like), a price (for example, a list price, a sale price, a subscription cost, a shipping cost, and the like), a title, a URL, a variation (for example, a size, a color, or the like), a vendor (for example, an affiliate network, an origin of the target, or the like),
- the electronic processor 200 compares the attributes of the original target offering to other target offerings included in the offer data.
- the original target offering is may include the following attributes: a commission yield of 0.01% commission per sale; Brand-A as the manufacturer; a maturity level of adults; a color of black; and a description of being a backpack.
- the electronic processor 200 may search the offer data for other target offerings that share one or more attributes of the original target offering (as replacement targets or target offerings). The electronic processor 200 may select a replacement target based on the number of attributes shared with the original target. Accordingly, the replacement target may be a best match.
- the replacement target may be the best match when the replacement target shares all the same attributes as the original target (for example, a commission yield of 0.01% commission per sale; Brand-A as the manufacturer, a maturity level of adults, a color of black, and a description of being a backpack).
- the electronic processor 200 may select the replacement target based on a matching score (e.g., calculated based on a weighted algorithm that sums values resulting from comparing attributes of the original target and the potential replacement target), a relevance to the original target, a matching threshold, another selection parameter, or a combination thereof.
- the electronic processor 200 may select a target offering as a replacement target when that target offering shares at least five attributes (as a matching threshold) with the original target offering.
- the electronic processor 200 analyzes all or a subset of targets of the offer curation and management system 437 as potential replacement targets, providing a ranking or score for all or the subset of targets based on a comparison of attributes of the original target and of the potential replacement targets. For example, the electronic processor 200 conducts a search of the target offerings of the offer curation and management system 437 for replacement targets using a search query including the values for each or a subset of the attributes of the original target. These values may be previously stored in the memory system 437 and associated with the target.
- the search query may return a list of potential replacement targets, with each potential replacement target having a search score based on the number of matches between the attributes in the search query and the attributes of the criteria of the replacement targets. The higher the search score, the more relevance that the potential replacement target has to the original target that is unavailable.
- the replacement target having the highest score is selected by the electronic processor 200 as the replacement target.
- one or more filters that limit or prioritize the replacement target selection may be provided by a curator of the server 105 or publisher (for example, associated with the publisher device 110 ) and stored in the system 437 (for example, at the point of requesting the evergreen link).
- a filter may restrict replacement targets to a particular vendor or merchant, or may rank by a combination of search score and highest commission yield (for example, a replacement target with a high commission yield may be selected even though it has a lower search score than another potential replacement target).
- a graphical user interface provided by the publisher device 110 may enable a publisher to input the filter selections (for example, using a dropdown list, check list, modifiable ordered list, or other input). Accordingly, a publisher may customize the manner in which the electronic processor 200 identifies replacement targets in the event an original target is unavailable.
- the offer may not be found due to an invalid identifier, a removal of the offer by the publisher (causing the offer to be deleted from the system or to remain, but be tagged as invalid), or a combination thereof.
- the replacement target may be a URI to another source configured by the affiliate (for example, https://okanjo.com).
- the electronic processor 200 may modify the selected offer URI path and parameters to include the proper attribution (or commission) for the affiliate. Alternatively or in addition, the electronic processor 200 may add parameters to the replacement target for analytics and reporting.
- An example VENDOR_OFFER_URI may be the following:
- PUBLISHER_ID is an identifier of the publisher's account with the vendor
- WEBSITE_ID is an identifier of the publisher's website with the vendor
- PRODUCT_ID is an identifier of the product offer with the vendor
- CLICK_ID is an identifier generated by a link shortening service or the evergreen link service 300 for commission attribution.
- the electronic processor 200 After determining the replacement target (at block 530 ), the electronic processor 200 provides the replacement target to the client device 115 in reply to the second request (at block 535 ).
- the replacement target may be a URI and may have embedded within it the same vendor parameters enabling the vendor device 120 to still track the publisher of the evergreen link, even though the target has changed.
- the electronic processor 200 provides the replacement target to the client device 115 via the communication network 130 .
- the electronic processor 200 may generate and transmit the following example HTTP response to the client device 115 :
- the electronic processor 200 When the first target is valid (Yes at block 525 ), the electronic processor 200 provides the first target to the client device 115 in reply to the second request (at block 540 ). As noted above, the electronic processor 200 determines that the first target is valid (Yes at block 525 ) when the first target is found (for example, when the first target is an available target offering or when a product associated with the first target is available for sale on a vendor website). Accordingly, when the first target is found (is valid), the electronic processor 200 may provide the first target to the client device 115 via the communication network 130 , where the first target may include the vendor offer link URI (for example, VENDOR_OFFER_URI) associated with the first target.
- the vendor offer link URI for example, VENDOR_OFFER_URI
- the client device 115 In response to receiving the VENDOR OFFER URI (for example, either the first target or the replacement target), the client device 115 will generate and transmit a request for the VENDOR_OFFER_URI.
- An example HTTP request for the VENDOR_OFFER_URI may be the following:
- VENDOR_OFFER_URI is the final offer URI that the client device 115 will visit (for example, with a web browser)
- USER_AGENT is a client user agent identifier
- PUBLISHER_PAGE_URI is a source page URI which served as a shortened evergreen link.
- the vendor device 120 In response to receiving the request for the VENDOR_OFFER_URI from the client device 115 , the vendor device 120 will issue a response to the client device 115 .
- the URI may point to another link tracking system (managed by a vendor) before ultimately returning the URI of the target offering.
- the response generated and provided to the client device 115 by the vendor device 120 may be the final target offer URI.
- the client device 115 is directed to the target received. For example, returning to the kayak example, the client device 115 may be directed to a particular kayak offering at the kayak vendor's website. The consumer, via the client device 115 , may ultimately purchase the kayak using the kayak vendor's website. The vendor device 120 may also determine from which publisher device 120 or website the client device 115 came based on information provided in the link (e.g., a unique identifier of the publisher device 120 or website).
- the vendor device 120 may save this information and information about purchases that result from the visit at the kayak vendor's web site (for example, a number of purchase, cost of the purchase, item purchased, and the like), and ultimately provide compensation to the publisher when the consumer purchases an offering provided by the kayak vendor.
- the evergreen link may be described herein with respect to an example including web browser on the client device accessing an evergreen link and target offering on a vendor website, these aspects similarly apply to a dedicated software application that is executing on the client device 115 and that is in communication with the vendor device 120 (for example, to enabling browsing, reviewing, and purchasing of offerings by the associated vendor).
- the embodiments provide, among other things, methods and systems for evergreen link generation and processing.
- Various features and advantages of certain embodiments are set forth in the following claims.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application claims priority to U.S. Provisional Patent Application No. 63/024,792, filed May 14, 2020, the entire contents of which are incorporated herein by reference.
- Embodiments relate to evergreen link generation and processing.
- Website servers host one or more websites that provide information and offerings to client devices (for example, smart phones, laptop computers, tablets, desktop computers, or other computing devices). Generally, a client device executes a web browser or other dedicated software application that accesses and communicates with the website server over one or more wired and wireless communication networks (for example, the Internet, a local area network, a wide area network, a cellular network, or the like) to provide input to the website server, make requests for data to the website server, obtain data from the website server, and the like. For example, the web browser may obtain webpages and related data that make up a website and display the website on the client device (via a display device of the client device). Some webpages include links that direct the web browser to another target. A target may include, for example, another website, server, software application, file, webpage, or the like. When the web browser receives or detects a user selection of a link on a webpage, the web browser may be directed to the target associated with the selected link. As one example, the web browser may be directed to download a file (as the target). As another example, the web browser may be directed to visit (or display) a website (as the target).
- Some websites (affiliate websites) include a link to a product, good, or service offered for sale by another website (a vendor website). A vendor operating the vendor website will, in some cases, offer a commission to an affiliate operating the affiliate website for sales of products stemming from referrals (or consumers) that followed the link on the affiliate website. Intermediary systems have been developed that assist in generating links for affiliates to include on affiliate websites and for vendors to track referral purchases for the purpose of, for example, providing commissions.
- However, over time, a target or target offering associated with a link on an affiliate website may cease to exist or may change such that the original target is no longer available. As one example, where the target is a product, the vendor may cease to offer the product or the product may be out of stock. When a target is no longer available, the link associated with that target becomes “broken.” Broken links lead to website errors, inefficiencies and frustrations for clients, vendors, and affiliates, lost revenue by vendors and affiliates, and the like. Additionally, because multiple parties may be involved in a link on an affiliate website (e.g., client, vendor, affiliate, and intermediary systems), simple replacement by a client device of broken link with a new link to another offering is not sufficient to ensure that the relevant parties may be identified and tracked as desired in the system.
- To solve these and other problems, the embodiments described herein provide, among other things, systems and methods for generating evergreen links and processing evergreen link requests on an intermediary system to avoid broken links by providing relevant replacement data. In some embodiments, the intermediary system includes an intermediary platform server that receives a request, from a publisher device, for an evergreen link for a first target. The server, in response, generates an evergreen link for the first target and provides the evergreen link to the publisher device. Then, the server receives a request from a client device in response to selection of the evergreen link, wherein the evergreen link was received by the client device from the publisher device. The server determines whether the first target is valid. In response to the server determining that the first target is no longer valid, the server determines a replacement target. The server then provides the replacement target to the client device in reply to the request. In response to the server determining that the first target is valid, the server provides the first target to the client device in reply to the request. Accordingly, the systems and methods result in fewer broken links and their associated website errors, inefficiencies, and lost revenue.
- For example, one embodiment provides a system for evergreen link generation and processing. The system includes an electronic processor configured to receive, from a publisher device, a first request for an evergreen link associated with a first target. The electronic processor is also configured to generate the evergreen link for the first target and enable access to the evergreen link by the publisher device. The electronic processor is also configured to receive, from a client device, a second request in response to a selection of the evergreen link, wherein the evergreen link was received by the client device from the publisher device. The electronic processor is also configured to determine whether the first target is valid. The electronic processor is also configured to, when the first target is not valid, determine a replacement target and provide, to the client device, the replacement target in reply to the second request. The electronic processor is also configured to, when the first target is valid, provide, to the client device, the first target in reply to the second request.
- Another embodiment provides a method for evergreen link generation and processing. The method includes receiving, from a publisher device with an electronic processor, a first request for an evergreen link associated with a first target. The method also includes generating, with the electronic processor, the evergreen link for the first target. The method also includes enabling, with the electronic processor, access to the evergreen link by the publisher device. The method also includes receiving, from a client device with the electronic processor, a second request in response to a selection of the evergreen link, wherein the evergreen link was received by the client device from the publisher device. The method also includes determining, with the electronic processor, whether the first target is valid. The method also includes, when the first target is not valid, determining, with the electronic processor, a replacement target, and providing, to the client device with the electronic processor, the replacement target in reply to the second request. The method also includes, when the first target is valid, providing, to the client device with the electronic processor, the first target in reply to the second request.
- Yet another embodiment provides a non-transitory, computer-readable medium storing instructions that, when executed by an electronic processor, perform a set of functions. The set of functions includes receiving, from a publisher device, a first request for an evergreen link associated with a first target. The set of functions also includes generating the evergreen link for the first target. The set of functions also includes enabling access to the evergreen link by the publisher device. The set of functions also includes receiving, from a client device, a second request in response to a selection of the evergreen link, wherein the evergreen link was received by the client device from the publisher device. The set of functions also includes determining whether the first target is valid. The set of functions also includes, when the first target is not valid, determining a replacement target, and providing, to the client device, the replacement target in reply to the second request. The set of functions also includes when the first target is valid, providing, to the client device, the first target in reply to the second request.
- Other aspects and embodiments will become apparent by consideration of the detailed description and accompanying drawings.
-
FIG. 1 schematically illustrates a system for evergreen link generation and processing according to some embodiments. -
FIG. 2 schematically illustrates a server included in the system ofFIG. 1 according to some embodiments. -
FIG. 3 . schematically illustrates an evergreen link service according to some embodiments. -
FIG. 4 schematically illustrates a flow diagram for the system ofFIG. 1 according to some embodiments. -
FIG. 5 is a flowchart illustrating a method for evergreen link generation and processing performed by the system ofFIG. 1 in accordance with some embodiments. - Before any embodiments are explained in detail, it is to be understood that the embodiments are not limited in their application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. Other embodiments are possible and embodiments described and/or illustrated here are capable of being practiced or of being carried out in various ways.
- It should also be noted that a plurality of hardware and software-based devices, as well as a plurality of different structural components may be used to implement the embodiments described herein. In addition, embodiments may include hardware, software, and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware. However, one of ordinary skill in the art, and based on a reading of this detailed description, would recognize that, in at least one embodiment, the electronic based aspects of the disclosed embodiments may be implemented in software (for example, stored on non-transitory computer-readable medium) executable by one or more processors. As such, it should be noted that a plurality of hardware and software-based devices, as well as a plurality of different structural components may be utilized to implement various embodiments. It should also be understood that although certain drawings illustrate hardware and software located within particular devices, these depictions are for illustrative purposes only. In some embodiments, the illustrated components may be combined or divided into separate software, firmware and/or hardware. For example, instead of being located within and performed by a single electronic processor, logic and processing may be distributed among multiple electronic processors. Regardless of how they are combined or divided, hardware and software components may be located on the same computing device or may be distributed among different computing devices connected by one or more networks or other suitable communication links.
-
FIG. 1 illustrates asystem 100 for evergreen link generation and processing according to some embodiments. In the illustrated example, thesystem 100 includes aserver 105, a publisher device 110, aclient device 115, and avendor device 120. In some embodiments, thesystem 100 includes fewer, additional, or different components than illustrated inFIG. 1 in various configurations. For example, thesystem 100 may includemultiple servers 105, publisher devices 110,client devices 115,vendor devices 120, or a combination thereof. Additionally, in some embodiments, one or more components of thesystem 100 may be distributed among multiple devices, servers, or databases, combined into a single device, server, or database, or a combination thereof. - The
server 105, the publisher device 110, theclient device 115, and thevendor device 120 communicate over one or more wired orwireless communication networks 130. Portions of thecommunication networks 130 may be implemented using a wide area network, such as the Internet, a local area network, such as a Bluetooth™ network or Wi-Fi, and combinations or derivatives thereof Alternatively or in addition, in some embodiments, components of thesystem 100 communicate directly as compared to through thecommunication network 130. Also, in some embodiments, the components of thesystem 100 communicate through one or more intermediary devices not illustrated inFIG. 1 . - The
server 105 includes a computing device, such as a server, a database, or the like. As illustrated inFIG. 2 , theserver 105 includes anelectronic processor 200, amemory 205, and acommunication interface 210. Theelectronic processor 200, thememory 205, and thecommunication interface 210 communicate wirelessly, over one or more communication lines or buses, or a combination thereof. Theserver 105 may include additional components than those illustrated inFIG. 2 in various configurations. For example, the server 110 may also include one or more human machine interfaces, such as a keyboard, keypad, mouse, joystick, touchscreen, display device, printer, speaker, and the like, that receive input from a user, provide output to a user, or a combination thereof. - The
communication interface 210 may include a transceiver that communicates with one or more components of thesystem 100 over thecommunication network 130 and, optionally, one or more other communication networks or connections. Theelectronic processor 200 includes a microprocessor, an application-specific integrated circuit (“ASIC”), or another suitable electronic device for processing data, and thememory 205 includes a non-transitory, computer-readable storage medium. Theelectronic processor 200 is configured to retrieve instructions and data from thememory 205 and execute the instructions. As illustrated inFIG. 2 , thememory 205 includes anevergreen link application 220. Theevergreen link application 220 is a software application executable by theelectronic processor 200. As described in more detail below, theelectronic processor 200 executes theevergreen link application 220 to generate evergreen links and process evergreen link requests. - As seen in
FIG. 2 , thememory 205 may also store offer curation andmanagement software 230. In some embodiments, the offer curation andmanagement software 230 is a software application executable by theelectronic processor 200. Theelectronic processor 200 executes the offer curation andmanagement software 230 to manage and provide offer data. Offer data may include a target (or target offering) and related target data. As noted above, a target may include a product, good, or service offered for sale on, for example, a vendor website. Related target data may include, for example, a product category, a commission yield for an affiliate (for example, a percentage of sale, a flat rate, a cost per click or impression, and the like), a date (for example, a created data, an updated date, or the like), a description of the target (for example, target details, target features, and the like), an identifier (for example, a SKU, a UPC, an ISBN, an EAN, a GTIN, and the like), an image, a manufacturer, a maturity level (for example, adults, general audiences, children, or the like), a merchant or advertiser brand, a popularity (for example, reviewer ratings, number of purchases, and the like), a price (for example, a list price, a sale price, a subscription cost, a shipping cost, and the like), a title, a URL, a variation (for example, a size, a color, or the like), a vendor (for example, an affiliate network, an origin of the target, or the like), another parameter associated with the parameter, or a combination thereof. - The
server 105 may also perform additional functionality other than the functionality described herein. Also, the functionality described herein as being performed by theserver 105 may be distributed among multiple servers or devices (for example, as part of a cloud service or cloud-computing environment). As one example,FIG. 3 illustrates anevergreen link service 300 according to some embodiments. Theevergreen link service 300 may be broken up into independent services that work together to make up the services or functionality of, for example, theserver 105. As seen inFIG. 3 , theevergreen link service 300 may include one ormore load balancers 305, anapplication service API 310,static content 315,application data storage 320, and offerdata storage 320. Each component of theevergreen link service 300 may be provided by one or more servers, databases, or devices. As one example, theoffer data storage 320 may include a plurality of databases (as a database system) for storing offer data. As another example, theapplication data storage 320 may store theevergreen link application 220, the offer curation andmanagement software 230, or a combination thereof Although not illustrated, theevergreen link service 300 may implement one or more development environments, sandbox environments, or a combination thereof. As seen inFIG. 3 , in some embodiments, the one ormore load balancers 305 are exposed directly to the Internet (for example, the communication network 130) while the remaining components are isolated on an internal network, such as a local area network. - The publisher device 110, the
client device 115, thevendor device 120, or a combination thereof may be computing devices, such as a desktop computer, a laptop computer, a tablet computer, a terminal, a smart telephone, a smart television, a smart wearable, or another suitable computing device that interfaces with a user. Although not illustrated inFIG. 1 , the publisher device 110, theclient device 115, thevendor device 120, or a combination thereof may include similar components as theserver 105, such as an electronic processor (for example, a microprocessor, an ASIC, or another suitable electronic device), a memory (for example, a non-transitory, computer-readable storage medium), a communication interface, such as a transceiver, for communicating over thecommunication network 130 and, optionally, one or more additional communication networks or connections, and one or more human machine interfaces. For example, to communicate with other components of thesystem 100, the publisher device 110, theclient device 115, thevendor device 120, or a combination thereof may store a browser application or a dedicated software application executable by an electronic processor. Thesystem 100 is described herein as providing an evergreen link generation and processing service through theserver 105. However, in other embodiments, the functionality described herein as being performed by the server 105 (or a portion thereof) may be locally performed by the publisher device 110, theclient device 115, thevendor device 120, or a combination thereof. For example, in some embodiments, the publisher device 110, theclient device 115, thevendor device 120, or a combination thereof may store theevergreen link application 220, the offer curation andmanagement software 230, or a combination thereof. - The
vendor device 120 may be used by a vendor (or merchant) for managing and hosting a vendor web site. A vendor web site may include, for example, a list of products, goods, or services offered by the vendor, additional information associated with the offered products, goods, or services, or the like. As one example, a vendor may be a kayak vendor. According to this example, the kayak vendor may interact with thevendor device 120 to manage and host a website selling kayaks, kayaking accessories, and other kayak related merchandise or equipment. In some embodiments, the functionality described as being performed by thevendor device 120 may be distributed among multiple devices, servers, or databases. As one example, thevendor device 120 may be part of a vendor network including additional components (for example, additional computing devices, servers, or databases) for managing and hosting the vendor website and related data. - The publisher device 110 may be used by a publisher or affiliate for generating and publishing content related to or associated with a product, good, or service. Content may include, for example, an article, an electronic communication (for example, a marketing e-mail), a blog posting, a webpage, a digital video or post, a podcast or other audio media, print media, or the like. In some embodiments, the content includes one or more links (for example, a hyperlink or a uniform resource identifier (“URI”)) for a product, good, or service (for example, a product, good, or service offered for sale on a vendor website). In some embodiments, the one or more links are evergreen links generated and processed by the server 105 (for example, the evergreen link application 22). As one example, an affiliate may use the publisher device 110 to generate an article listing the top ten kayaks (as the content). The article may be published or hosted on the affiliate's website. The article may include a link for each kayak included in the article. In some embodiments, the functionality described as being performed by the publisher device 110 may be distributed among multiple devices, servers, or databases (such as part of a cloud service). As one example, the publisher device 110 may be part of a publisher network including additional components (for example, additional computing devices, servers, or databases) for managing and hosting the affiliate network.
- The
client device 115 may be used by an end user or consumer (for example, a referral) for accessing and browsing vendor websites, affiliate websites, dedicated software applications of the vendor, and the like (for example, via a web browser of the client device 115). Following the above example, a consumer may use theclient device 115 to access and interact with the affiliate website, and, more specifically, the article listing the top ten kayaks. The consumer may interact with the article by selecting a link for a kayak included in the article that is offered for sale on the kayak vendor's website. In response to selecting the link, as an example, theclient device 115 may be directed to the kayak vendor's website. The consumer, via the web browser of theclient device 115, may ultimately purchase the kayak using the kayak vendor's website. Thevendor device 120 may also determine from whichpublisher device 120 or website theclient device 115 came based on information provided in the link (e.g., a unique identifier of thepublisher device 120 or website). Thevendor device 120, in turn, may save this information and information about purchases that result from the visit at the kayak vendor's website (for example, a number of purchase, cost of the purchase, item purchased, and the like), and ultimately provide compensation to the publisher when the consumer purchases an offering provided by the kayak vendor. In some embodiments, the link directs theclient device 115 to a section or item within a dedicated software application (an “app”) executing on theclient device 115, rather than to a website via a web browser. Additionally, as explained below in further detail, in some instances, additional or different actions are taken in response to selection of the evergreen link, particularly, when an original target offering of the evergreen link is no longer available. -
FIG. 4 schematically illustrates an example flow diagram 400 for thesystem 100 according to some embodiments. As seen inFIG. 4 , the flow diagram 400 includes a brand andmerchant portion 405, avendor portion 410, anaggregator portion 415, an application programming interface (“API”)portion 420, and apublisher portion 425. The brand andmerchant portion 405 includes one or more brands ormerchants 430 providing or manufacturing products or services. Thevendor portion 410 includes one ormore vendors 435 that offer products, goods, or services for sale to end users or consumers. Avendor 435 may include, for example, an e-commerce marketplace platform, such as Amazon.com, Rakuten.com, ShareASale.com, or the like. As one example, a Brand-A may manufacture Brand-A shoes, where a Vendor-A offers Brand-A shoes for sale to consumers via Vendor-A's website. As seen inFIG. 4 , in some embodiments, an entity may be both a brand ormerchant 430 and avendor 435. As one example, Amazon may offer Amazon-branded products for sale on Amazon.com. The entities included in the brand andmerchant portion 405, thevendor portion 410, or a combination thereof may use one or more vendor devices or networks (for example, the vendor device 120) for managing and hosting vendor websites. Theaggregator portion 415 aggregates product offers from the brands andmerchants 430 and thevendors 435 as offer data. In some embodiments, the offer data may be stored and managed by an offer curation and management system 437 (for example, the offer curation and management software 230). TheAPI portion 420 includes one or more APIs implemented by theserver 105 as part of generating and processing evergreen links. For example, theAPI portion 420 may include ashortcodes API 440, acommission API 445, and awidget API 450. In some embodiments, the components of theAPI portion 420 may be included within theapplication service APIs 310 of theevergreen link service 300 ofFIG. 3 . Accordingly, in some embodiments, theaggregator portion 415 and theAPI portion 420 relates to functionality performed by the server 105 (or theevergreen link service 300 ofFIG. 3 ). Thepublisher portion 425 relates to functionality provided to or made accessible to an affiliate via the publisher device 110, such as a SmartServe Widget, one or more evergreen links, or the like, as described in greater detail below. -
FIG. 5 is a flowchart illustrating amethod 500 for evergreen link generation and processing performed by thesystem 100 according to some embodiments. Themethod 500 is described as being performed by theserver 105 and, in particular, theevergreen link application 220 as executed by theelectronic processor 200. However, as noted above, some or all of the functionality described with respect to themethod 500 may be performed by other devices, such as the publisher device 110, theclient device 115, thevendor device 120, or a combination thereof, or distributed among a plurality of devices, such as a plurality of servers included in a cloud service. - As illustrated in
FIG. 5 , themethod 500 includes receiving, from the publisher device 110 with theelectronic processor 200, a first request for an evergreen link associated with a first target (at block 505). The publisher device 110 may generate and transmit the first request to theelectronic processor 200 in response to a user interaction at the publisher device 110. As one example, the user interaction may include an affiliate selecting a target offering for inclusion on the affiliate's website. In some embodiments, the affiliate may browse a listing or catalog of offer data (using the SmartServe Widget illustrated inFIG. 4 ), including available target offerings and related target data (as described above), which may be managed by the server 105 (the offer curation and management software 230). - The
electronic processor 200 then generates the evergreen link for the first target (at block 510). An evergreen link is a link, such as a uniform resource identifier (“URI”) or a uniform resource locator (“URL”), that, when selected, directs a web browser to a target associated with the link. As noted above, a target (or a target offering) may be related to a product, good, or service offered for sale by a vendor (via a vendor website). The generated evergreen link may be a full link (for example, a URI that directs a web browser directly to the target) or a shortened version of the full link (for example, a URI that points a web browser to a resource to obtain the full link), as described in further detail below. In some embodiments, the evergreen link includes embedded within it vendor specific parameters to identify a publisher, such as a publisher identifier (uniquely identifying the publisher device 110) and website identifier (uniquely identifying a website hosted by or associated with the publisher device 110 and on which the evergreen link will be included). These vendor specific parameters allow a vendor (for example, the vendor device 120) to track the publisher of the evergreen link when theclient device 115 ultimately uses the link. Accordingly, an evergreen link is associated with or linked to a target (or target offering) and a publisher. - After generating the evergreen link (at block 510), the
electronic processor 200 enables access to the evergreen link by the publisher device 110 (at block 515). In some embodiments, theelectronic processor 200 enables access to the evergreen link by transmitting or providing the evergreen link to the publisher device 110 over thecommunication network 130. Alternatively or in addition, theelectronic processor 200 may store the evergreen link in thememory 205, a remote storage device or database, or a combination thereof. In such embodiments, the publisher device 110 may access the evergreen link by interacting with thememory 205, the remote storage device or database, or a combination thereof. In response to receiving the evergreen link, the publisher device 110 may publish the evergreen link on an affiliate website hosted by the publisher device 110 (or a publisher network including the publisher device 110). As one example, an affiliate may post or publish content including the evergreen link on the affiliate's website such that a consumer (via, for example, the client device 115) may access and interact with the evergreen link on the affiliate's website via a web browser of theclient device 115. - As seen in
FIG. 5 , themethod 500 also includes receiving a second request in response to a selection of the evergreen link (at block 520). In some embodiments, theelectronic processor 200 receives the second request from theclient device 115 over thecommunication network 130. The second request may be generated in response to a user of theclient device 115 interacting with or selecting the evergreen link on an affiliate website. As one example, a web browser of theclient device 115 may navigate to an affiliate website in response to input on theclient device 115 by the user (or, consumer). While browsing the affiliate website, the web browser may interact with an evergreen link included on the affiliate's website (for example, the web browser may receive a selection of the evergreen link based on user input (for example, a mouse click) at the client device 115). Accordingly, in some embodiments, the evergreen link was received by theclient device 115 from the publisher device 110. In response to this user interaction, the client device 115 (an electronic processor of the client device 115) may generate and transmit the second request. - In some embodiments, a link shortening service is implemented by the
system 100. In such embodiments, the evergreen link produced inblock 510 and selected by a user of theclient device 115 inblock 520 is a shortened evergreen link. A shortened evergreen link is a URI intended to be low in character count and, when accessed, instructs theclient device 115 to request the original evergreen link URI. An HTML example of a shortened evergreen link may include the following: - <a href=“https://okj.io/SHORT_CODE_ID”>Check out this amazing product!</a>
- As noted above, when a user selects a shortened evergreen link, the
client device 115 is instructed to request the original evergreen link URI. Such a request may be, for example, the following HTTP request example: -
GET /SHORTCODE_ID HTTP/1.1 Host: okj.io Accept: */* User-Agent: USER_AGENT Referrer: PUBLISHER_PAGE_URI
where the SHORTCODE_ID is a unique identifier of the shortened evergreen link, the USER-AGENT is a client user agent identifier, and the PUBLISHER_PAGE_URI is a source page URI which served as the shortened evergreen link. Accordingly, in such embodiments, theclient device 115 requests the original evergreen link URI from theelectronic processor 200 in response to a user selecting a shortened evergreen link. - In response to receiving this request, the
electronic processor 200 provides a response including the original evergreen link URI. Such a response may be, for example, the following HTTP response example: -
HTTP/1.1 302 Found Date: Wed, 26 Feb 2020 17:11:50 GMT Content-Type: text/html; charset=utf-8 Content-Length: 0 Connection: keep-alive Location: EVERGREEN_LINK_URI Cache-Control: private, no-cache, proxy-revalidate, max-age=0 Vary: origin Access-Control-Expose-Headers: WWW-Authenticate, Server-Authorization
where the EVERGREEN_LINK_URI is a URI that will return a vendor offer link. - Accordingly, in some embodiments, the response instructs the
client device 115 to request the given EVERGREEN_LINK_URI (for example, as the second request). A request for the EVERGREEN_LINK_URI may include, for example, the following HTTP request: -
GET /EVERGREEN_LINK_URI HTTP/1.1 Host: farm.okanjo.com Accept: */* User-Agent: USER_AGENT Referrer: PUBLISHER_PAGE_URI - As one example, an EVERGREEN_LINK_URI may be:
- https://farm.okanjo.com/api/INSTANCE_ID/links/OFFER_ID/follow?_okjo=CLICK_ID
- where the OFFER_ID is a unique identifier of the offer selected by the publisher (via the publisher device 110) and the CLICK_ID is a unique click identifier generated by the link shortening service.
- In some embodiments, the
electronic processor 200 determines whether to reject the second request. In such embodiments, theelectronic processor 200 evaluates the second request to determine whether the second request is of malicious intent, not issued by a human actor, is fraudulent, illegitimate, or the like. In some embodiments, theelectronic processor 200 determines whether to reject the second request based one or more considerations. Such considerations may include, for example, a client request header (for example, USER_AGENT, REFERRER, or the like), a source transmission control protocol (“TCP”) or internet protocol (“IP”) address, a time of day, a number of link accesses, and the like. As one example, when theelectronic processor 200 receives ten-thousand second requests within a ten-minute period, the second requests are likely of malicious intent. The particular thresholds in terms of quantity of requests and time period for requests vary, in some embodiments. According to this example, theelectronic processor 200 may identify the second requests as fraudulent and reject the second requests. In some embodiments, when theelectronic processor 200 determines that the second request should be rejected, themethod 500 ends. - In response to receiving the second request (at block 520), the
electronic processor 200 determines whether the first target is valid (at block 525). In some embodiments, theelectronic processor 200 determines whether the first target is valid by performing a look up of the target offering associated with the second request. In some embodiments, theelectronic processor 200 may look up an identifier of the target offering (for example, the OFFER_ID) as referenced in the EVERGREEN_LINK_URI. As one example, theelectronic processor 200 may look up the identifier (OFFER_ID) from the offer curation and management system 437 (for example, the identifier included in the offer data). - In some embodiments, the
electronic processor 200 determines that the first target is valid (Yes at block 525) when the identifier (OFFER_ID) is found. As one example, an identifier of the first target may be found when the product associated with the first target is available for sale on a vendor website. However, in some embodiments, theelectronic processor 200 determines that the first target is not valid (No at block 525) when the offer is not found. As one example, an identifier of the first target may not be found when the product associated with the first target is no longer available for sale on a vendor website (for example, is no longer being sold or is out of stock). Alternatively or in addition, in some embodiments, theelectronic processor 200 may not find the identifier due to an invalid identifier, a target offering being removed by the publisher, or the like. - When the first target is not valid (No at block 525), the
electronic processor 200 determines a replacement target (at block 530). When the offer is not found, theelectronic processor 200 may use one or more attributes of the original offer to search for similar offers (for example, included in the offer data). As noted above, in some embodiments, the offer data is stored and managed by the offer curation andmanagement software 230. Offer data may include a target (or target offering) and related target data. As noted above, a target may include a product, good, or service offered for sale on, for example, a vendor web site. Related target data may include, for example, a product category, a commission yield for an affiliate (for example, a percentage of sale, a flat rate, a cost per click or impression, and the like), a date (for example, a created data, an updated date, or the like), a description of the target (for example, target details, target features, and the like), an identifier (for example, a SKU, a UPC, an ISBN, an EAN, a GTIN, and the like), an image, a manufacturer, a maturity level (for example, adults, general audiences, children, or the like), a merchant or advertiser brand, a popularity (for example, reviewer ratings, number of purchases, and the like), a price (for example, a list price, a sale price, a subscription cost, a shipping cost, and the like), a title, a URL, a variation (for example, a size, a color, or the like), a vendor (for example, an affiliate network, an origin of the target, or the like), another parameter associated with the parameter, or a combination thereof. - Accordingly, in some embodiments, the
electronic processor 200 compares the attributes of the original target offering to other target offerings included in the offer data. As one example, the original target offering is may include the following attributes: a commission yield of 0.01% commission per sale; Brand-A as the manufacturer; a maturity level of adults; a color of black; and a description of being a backpack. According to this example, theelectronic processor 200 may search the offer data for other target offerings that share one or more attributes of the original target offering (as replacement targets or target offerings). Theelectronic processor 200 may select a replacement target based on the number of attributes shared with the original target. Accordingly, the replacement target may be a best match. Following the example above, the replacement target may be the best match when the replacement target shares all the same attributes as the original target (for example, a commission yield of 0.01% commission per sale; Brand-A as the manufacturer, a maturity level of adults, a color of black, and a description of being a backpack). Theelectronic processor 200 may select the replacement target based on a matching score (e.g., calculated based on a weighted algorithm that sums values resulting from comparing attributes of the original target and the potential replacement target), a relevance to the original target, a matching threshold, another selection parameter, or a combination thereof. As one example, theelectronic processor 200 may select a target offering as a replacement target when that target offering shares at least five attributes (as a matching threshold) with the original target offering. - In some embodiments, when the offer is not found, the
electronic processor 200 analyzes all or a subset of targets of the offer curation andmanagement system 437 as potential replacement targets, providing a ranking or score for all or the subset of targets based on a comparison of attributes of the original target and of the potential replacement targets. For example, theelectronic processor 200 conducts a search of the target offerings of the offer curation andmanagement system 437 for replacement targets using a search query including the values for each or a subset of the attributes of the original target. These values may be previously stored in thememory system 437 and associated with the target. The search query may return a list of potential replacement targets, with each potential replacement target having a search score based on the number of matches between the attributes in the search query and the attributes of the criteria of the replacement targets. The higher the search score, the more relevance that the potential replacement target has to the original target that is unavailable. In some embodiments, the replacement target having the highest score is selected by theelectronic processor 200 as the replacement target. - In some embodiments, one or more filters that limit or prioritize the replacement target selection may be provided by a curator of the
server 105 or publisher (for example, associated with the publisher device 110) and stored in the system 437 (for example, at the point of requesting the evergreen link). For example, a filter may restrict replacement targets to a particular vendor or merchant, or may rank by a combination of search score and highest commission yield (for example, a replacement target with a high commission yield may be selected even though it has a lower search score than another potential replacement target). A graphical user interface provided by the publisher device 110 may enable a publisher to input the filter selections (for example, using a dropdown list, check list, modifiable ordered list, or other input). Accordingly, a publisher may customize the manner in which theelectronic processor 200 identifies replacement targets in the event an original target is unavailable. - As noted above, the offer may not be found due to an invalid identifier, a removal of the offer by the publisher (causing the offer to be deleted from the system or to remain, but be tagged as invalid), or a combination thereof. In such embodiments, the replacement target may be a URI to another source configured by the affiliate (for example, https://okanjo.com). The
electronic processor 200 may modify the selected offer URI path and parameters to include the proper attribution (or commission) for the affiliate. Alternatively or in addition, theelectronic processor 200 may add parameters to the replacement target for analytics and reporting. An example VENDOR_OFFER_URI may be the following: -
https://classic.avantlink.com/click.php?p=PUBLISHER_ID&pw=PUBLISHER_ID&pt= 3&pri=PR0DUCT_ID&tt=df&ctc=CLICK_ID
where PUBLISHER_ID is an identifier of the publisher's account with the vendor, WEBSITE_ID is an identifier of the publisher's website with the vendor, PRODUCT_ID is an identifier of the product offer with the vendor, and CLICK_ID is an identifier generated by a link shortening service or theevergreen link service 300 for commission attribution. - After determining the replacement target (at block 530), the
electronic processor 200 provides the replacement target to theclient device 115 in reply to the second request (at block 535). Like the original evergreen link, the replacement target may be a URI and may have embedded within it the same vendor parameters enabling thevendor device 120 to still track the publisher of the evergreen link, even though the target has changed. In some embodiments, theelectronic processor 200 provides the replacement target to theclient device 115 via thecommunication network 130. As one example, theelectronic processor 200 may generate and transmit the following example HTTP response to the client device 115: -
HTTP/1.1 302 Found Date: Wed, 26 Feb 2020 17:36:10 GMT Content-Type: text/html; charset=utf-8 Content-Length: 0 Connection: keep-alive Location: VENDOR_OFFER_URI Cache-Control: private, no-cache, proxy-revalidate, max-age=0 Vary: origin Access-Control-Expose-Headers: WWW-Authenticate, Server-Authorization
where the VENDOR_OFFER_URI is the vendor offer link URI that theclient device 115 will visit. - When the first target is valid (Yes at block 525), the
electronic processor 200 provides the first target to theclient device 115 in reply to the second request (at block 540). As noted above, theelectronic processor 200 determines that the first target is valid (Yes at block 525) when the first target is found (for example, when the first target is an available target offering or when a product associated with the first target is available for sale on a vendor website). Accordingly, when the first target is found (is valid), theelectronic processor 200 may provide the first target to theclient device 115 via thecommunication network 130, where the first target may include the vendor offer link URI (for example, VENDOR_OFFER_URI) associated with the first target. - In response to receiving the VENDOR OFFER URI (for example, either the first target or the replacement target), the
client device 115 will generate and transmit a request for the VENDOR_OFFER_URI. An example HTTP request for the VENDOR_OFFER_URI may be the following: -
GET /VENDOR_OFFER_URI HTTP/1.1 Host: [hostname extracted from VENDOR_OFFER_URI] Accept: */* User-Agent: USER_AGENT Referrer: PUBLISHER_PAGE_URI
where VENDOR_OFFER_URI is the final offer URI that theclient device 115 will visit (for example, with a web browser), USER_AGENT is a client user agent identifier, and PUBLISHER_PAGE_URI is a source page URI which served as a shortened evergreen link. - In response to receiving the request for the VENDOR_OFFER_URI from the
client device 115, thevendor device 120 will issue a response to theclient device 115. In some embodiments, the URI may point to another link tracking system (managed by a vendor) before ultimately returning the URI of the target offering. However, in other embodiments, the response generated and provided to theclient device 115 by thevendor device 120 may be the final target offer URI. - As previously described, whether the original target or replacement target is received by the
client device 115, theclient device 115 is directed to the target received. For example, returning to the kayak example, theclient device 115 may be directed to a particular kayak offering at the kayak vendor's website. The consumer, via theclient device 115, may ultimately purchase the kayak using the kayak vendor's website. Thevendor device 120 may also determine from whichpublisher device 120 or website theclient device 115 came based on information provided in the link (e.g., a unique identifier of thepublisher device 120 or website). Thevendor device 120, in turn, may save this information and information about purchases that result from the visit at the kayak vendor's web site (for example, a number of purchase, cost of the purchase, item purchased, and the like), and ultimately provide compensation to the publisher when the consumer purchases an offering provided by the kayak vendor. Additionally, while aspects of the evergreen link may be described herein with respect to an example including web browser on the client device accessing an evergreen link and target offering on a vendor website, these aspects similarly apply to a dedicated software application that is executing on theclient device 115 and that is in communication with the vendor device 120 (for example, to enabling browsing, reviewing, and purchasing of offerings by the associated vendor). - Thus, the embodiments provide, among other things, methods and systems for evergreen link generation and processing. Various features and advantages of certain embodiments are set forth in the following claims.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/038,794 US11172015B1 (en) | 2020-05-14 | 2020-09-30 | Methods and systems for evergreen link generation and processing |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063024792P | 2020-05-14 | 2020-05-14 | |
US17/038,794 US11172015B1 (en) | 2020-05-14 | 2020-09-30 | Methods and systems for evergreen link generation and processing |
Publications (2)
Publication Number | Publication Date |
---|---|
US11172015B1 US11172015B1 (en) | 2021-11-09 |
US20210360051A1 true US20210360051A1 (en) | 2021-11-18 |
Family
ID=78467644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/038,794 Active US11172015B1 (en) | 2020-05-14 | 2020-09-30 | Methods and systems for evergreen link generation and processing |
Country Status (3)
Country | Link |
---|---|
US (1) | US11172015B1 (en) |
EP (1) | EP4150470A1 (en) |
WO (1) | WO2021230904A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11076700B2 (en) | 2017-01-30 | 2021-08-03 | Burrow, Inc. | Modular sofa construction and methods for assembly |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030191816A1 (en) * | 2000-01-11 | 2003-10-09 | Spoovy, Llc | System and method for creating and delivering customized multimedia communications |
US7904520B2 (en) * | 2005-06-09 | 2011-03-08 | Trueffect, Inc. | First party advertisement serving |
EP2688029A1 (en) * | 2012-04-11 | 2014-01-22 | Taboola.com Ltd. | Click through rate estimation in varying display situations |
US20150025968A1 (en) * | 2013-02-22 | 2015-01-22 | Trueffect, Inc. | Data management process utilizing a first-party technique |
US10177967B2 (en) | 2013-03-15 | 2019-01-08 | Jesse Lakes | Redirection service resource locator mechanism |
US10437903B2 (en) * | 2013-09-20 | 2019-10-08 | Jesse Lakes | Redirection service profiling |
-
2020
- 2020-09-30 US US17/038,794 patent/US11172015B1/en active Active
- 2020-09-30 EP EP20936065.0A patent/EP4150470A1/en not_active Withdrawn
- 2020-09-30 WO PCT/US2020/053483 patent/WO2021230904A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US11172015B1 (en) | 2021-11-09 |
EP4150470A1 (en) | 2023-03-22 |
WO2021230904A1 (en) | 2021-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5945369B2 (en) | Method and system for recommending target article information | |
KR101234488B1 (en) | Contextual content publishing system and method | |
US8694363B2 (en) | Dynamically creating a context based advertisement | |
US8244578B2 (en) | Methods and systems to facilitate keyword bid arbitrage with multiple advertisement placement providers | |
US9852222B2 (en) | Personalizing search results | |
US20080228595A1 (en) | System for supporting electronic commerce in social networks | |
US9460212B2 (en) | System and method for personalized search | |
US20130117380A1 (en) | Dynamic content generation in email messages | |
JP2014519277A (en) | Determining information related to online video | |
JP2013506934A (en) | Associating web page browsing and transformation with external references | |
US20110313833A1 (en) | Reconstructing the online flow of recommendations | |
US11172015B1 (en) | Methods and systems for evergreen link generation and processing | |
US20120306894A1 (en) | Displaying listings based on listing activity | |
JP5385071B2 (en) | E-mail delivery system and e-mail delivery method in e-commerce | |
US11496605B1 (en) | Management of network resource transfers via network portals and physical portals | |
JP6494170B2 (en) | Distribution management system | |
AU2015200085B2 (en) | Contextual content publishing system and method | |
US11496411B1 (en) | Management of network resources accessible via multiple network portals | |
AU2016238973B2 (en) | Contextual content publishing system and method | |
KR20100000502A (en) | System and method for managing goods sale advertisement and recording medium | |
US20190005543A1 (en) | Embedded portals for networked matching and procurement | |
JP2006244303A (en) | On-line shopping system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: OKANJO PARTNERS, INC., WISCONSIN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FITZGERALD, KEVIN;REEL/FRAME:053936/0790 Effective date: 20200929 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
AS | Assignment |
Owner name: OKANJO PARTNERS, INC., WISCONSIN Free format text: CHANGE OF ASSIGNEE ADDRESS;ASSIGNOR:OKANJO PARTNERS, INC.;REEL/FRAME:054808/0626 Effective date: 20201021 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |