Abstract:
This invention relates to a method for transmitting information from a first information provider ( 100 ) to a second information provider ( 400 ) via an information intermediary ( 200 ), wherein the information intermediary ( 200 ): —at a first point in time, receives ( 203 ) first information from the first information provider ( 100 ); —generates ( 204 ) data regarding the first information; —generates ( 205 ) a unique identifier being uniquely associated with the data regarding the first information, the unique identifier being configured to be transmitted from the first information provider ( 100 ) to the second information provider ( 400 ); —transmits ( 206 ) the unique identifier to the first information provider ( 100 ); —at a second point in time, receives ( 210 ) the unique identifier from the second information provider ( 400 ); —transmits ( 213 ) the data regarding the first information associated with the unique identifier to the second information provider ( 400 ).

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    The present application is the U.S. National Stage of International Application No. PCT/US2010/054792 filed Oct. 29, 2010. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention essentially relates to information transmittal in the Internet. 
       BACKGROUND OF THE INVENTION 
       [0003]    Even though the invention is partly described in relation with banner advertisement, the invention is not limited to this field. Rather, the invention can help to improve and control information transmittal between different parties in various fields. E.g., members who contribute to providing their personal information on social networks also want to have control over the dissemination of that information which is required from third parties and need to be transmitted to those third parties. 
         [0004]    Conventional banner advertisement in the Internet uses so-called inline frames (iframes) as placeholders. The publisher (also referred to as first information provider below) who publishes content (also referred to as first information below) on a web page which is visited by Internet users defines advertising space on his web page using a (first) iframe. This (first) iframe is linked to an advertiser (also referred to as second information provider below), either directly or indirectly, e.g. by a so-called ad-server (also referred to as chooser below) or other advertising agents. If it is linked directly, the iframe source is the banner ad from the advertiser. If it is linked indirectly, the first iframe source is a second iframe hosted by the ad-server leading to so-called nested iframes. The ad-server is associated with a number of advertisers and other advertisement agents and usually loads the second iframe source with content containing a banner ad of one of these advertisers in real-time. There are various methods already known in the art of online ad serving as to how the ad-server chooses one of the associated advertisers. 
         [0005]    Thus, in both cases, the first information and the second information will, in the end, appear together for a visitor of the first information provider&#39;s web page. 
         [0006]    The technical reason for using placeholders is to insure that the loading speed of the first information provider&#39;s web page is not negatively affected by the loading speed of the second information. The content served within the placeholder is loaded at the time that the placeholder is rendered. It also allows that placeholder to be controlled, monitored and authenticated by the content provider who is controlling the placeholder. However, the usage of placeholders leads to the second information provider not knowing anything about the first information and/or the first information provider making it impossible to adapt the second information to the first information. As a result, often the second information is not compatible with or able to be affected by the first information. This is not desirable by either information provider. 
         [0007]    Thus, it is desirable to provide a method that allows for the second information provider to provide second information that is compatible with the first information. 
       SUMMARY OF THE INVENTION 
       [0008]    This object is achieved by methods described herein. Advantageous embodiments are also described herein. 
         [0009]    According to a first aspect of the invention, information is bypassed from the first information provider to the second information provider via an information intermediary. 
         [0010]    In an embodiment of the invention, the information intermediary:
       at a first point in time, receives first information from the first information provider;   generates data regarding the first information;   generates a unique identifier being uniquely associated with the data regarding the first information, the unique identifier being configured to be transmitted from the first information provider to the second information provider;   transmits the unique identifier to the first information provider;   at a second point in time, receives the unique identifier from the second information provider; and   transmits the data regarding the first information associated with the unique identifier to the second information provider.       
 
         [0017]    In another embodiment of the invention, the first information provider:
       transmits first information to the information intermediary;   receives a unique identifier from the information intermediary, the unique identifier being uniquely associated with data regarding the first information, the unique identifier being configured to be transmitted from the first information provider to the second information provider; and   transmits the unique identifier to the second information provider.       
 
         [0021]    According to a second aspect of the invention, a computer program is provided with programming code means for performing the steps of the methods summarized above when the computer program is run on a computer or a computer system. 
         [0022]    According to a third aspect of the invention, a computer program product is provided with programming code means stored on a computer readable data carrier for performing the steps of the methods summarized above when the computer program product is run on a computer or a computer system. 
       ADVANTAGES OF THE INVENTION 
       [0023]    The invention makes it possible that the second information provider receives data regarding the first information. Thus, the second information provider has the possibility to choose the second information that is compatible with and/or affected by the first information. 
         [0024]    The data regarding the first information can be the complete first information, one or more keywords, one or more categories, an extract of the first information, a summary of the first information, other meta data from the first information etc.). As mentioned, the choice of which second information (e.g., an advertisement) is to be placed on the first information provider&#39;s web page has to be made by the second information provider in real time. Once a visitor who is interested in the first information visits the first information provider&#39;s web page, the second information is loaded from the second information provider. Thus, at this point in time the second information provider has to choose the relevant compatible second information. However, due to limited bandwidth it is usually not possible to transmit the complete first information both to the interested visitors and to the second information provider(s) (especially if numerous second information providers are associated with a chooser). The invention results in that only few additional data, i.e. the unique identifier itself and/or a program code for appending the unique identifier to an URL, has to be transmitted by the first information provider essentially not increasing the bandwidth need and transmitting time. Thus, the first information provider can use the available bandwidth essentially to provide the first information to the interested visitors. 
         [0025]    Further advantages are achieved by the information intermediary transmitting the data to the second information. E.g., the second information provider needs not to rely on data that is transmitted by the first information provider itself. The information intermediary can generate the data regarding the first information by independently analyzing the first information, e.g. the publisher&#39;s web page. Thus, a neutral instance representing the analysis derivation is added, which acts as an information intermediary between the first and second information providers increasing e.g. the data reliability, relevancy, comprehensiveness or consistency. 
         [0026]    It is preferred, that the unique identifier consists of text or is textual encoded, especially base64 encoded or uuencoded, to be easily transmittable over the Internet. Textual encoding schemes are commonly used when there is a need to encode (e.g. binary) data that need to be stored and transferred over media that are designed to deal with textual data, like http requests. Textual encoding of the unique identifier also allows for easily transmitting encrypted identifiers, e.g. by an AES encryption. An encryption increases the data security to mask the actual content source (eg., page location) of the first information. 
         [0027]    If the unique identifier is encrypted with a key that is not known to the second information provider and/or that is only known to the information intermediary, this assures that the data regarding the first information received by the second information provider originate from the (e.g. trusted) information intermediary, increasing the data security and integrity. 
         [0028]    The transmittal of the unique identifier from the first information provider to the second information provider is preferably performed by the first information provider inserting program code into his web page, which program code is loaded and run by a visitor&#39;s browser. The program code, when being run, fetches and appends the unique identifier in textual form to a target URL of a placeholder for the second information in the browser memory. 
         [0029]    Advantageously, the invention also solves the problems mentioned above in connection with social networks. Here, the member is referred to as first information provider with the first information being personal data like name, age, nationality, sex, home, job, hobbies, interest categories, pages the user has visited, etc. The second information provider can be e.g. an advertiser which wants to provide compatible ads (so-called targeted ads) or an associate of the social network operator, which wants to provide information or adapt the behaviour of the associate system such that is relevant to the first information provider, e.g. information about his home, country, age group, job, hobbies etc. In this case, a neutral instance can act as an information intermediary between the first and second information providers transmitting only the data regarding the first information that is important to choose the second information. Thus, the size of data to be transmitted can be limited and the data privacy of the first information provider can be increased. 
         [0030]    This invention also solves problems with social networks as mentioned above in the additional situation where the associate of the social network operator, which wants to provide information or adapt the behaviour of the associate system, may be one or more levels removed from the social network. In this case, relevant information, associated with the first information provider, is protected and maintained with privacy, such that it can be only interpreted by the second information provider for whom the first information is required. 
         [0031]    The invention also can be advantageously be used in connection with mobile application providers (such as gaming applications). In this situation, the handset owner is referred to as first information provider with the first information being personal data like name, age, nationality, sex, home location, current location, hobbies, prior game purchases, play time, interest categories, immediate circle of friends in the game, etc. The second information provider can be e.g. an advertiser which wants to provide compatible ads (so-called targeted ads), or an associate of the mobile game software provider which wants to provide this information that is relevant to the first information provider, or an associate of the mobile network operator which wants to provide this information that is relevant to the first information provider, e.g. information about his home, his location, age group, gaming preferences, hobbies, work, etc. In this case as stated above, a neutral instance can act as an information intermediary between the first and second information providers, irrespective of whether the relationship is a direct or indirect one, transmitting only the data regarding the first information that is important to choose the second information or relevant action. Thus, the size of data to be transmitted is greatly limited and the data privacy surrounding the trusted first information provider can be increased. 
         [0032]    An inventive computer program comprising program code means is configured to perform all steps of one of the inventive methods, when the computer program is run on a computer or a corresponding processing unit, in particular on an inventive apparatus. 
         [0033]    An inventive computer program product comprising program code means stored on a computer readable data carrier is provided for performing the inventive methods, when the computer program is run on a computer or a corresponding processing unit, in particular on an inventive apparatus. 
         [0034]    Further advantages and embodiments of the invention will become apparent from the description and the appended figures. 
         [0035]    It should be noted that the previously mentioned features and the features to be further described in the following are usable not only in the respectively indicated combination, but also in further combinations or taken alone, without departing from the scope of the present invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWING VIEWS 
         [0036]    In the drawings: 
           [0037]      FIG. 1  is a simplified schematic diagram illustrating a preferred embodiment of different steps according to the invention. 
           [0038]      FIG. 2  is a simplified schematic diagram illustrating a preferred embodiment of the invention on a web page level. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0039]    The invention is described referring to  FIGS. 1 and 2 . In  FIG. 1 , different steps according to one or more inventive methods are illustrated schematically. The steps referred to as  100  are performed by a content publisher as a first information provider. The steps referred to as  200  are performed by an analyzer as an information intermediary. The steps referred to as  300  are performed by an ad-server as a chooser. The steps referred to as  400  are performed by an advertiser as a second information provider. In  FIG. 2 , a preferred embodiment of the invention is illustrated schematically on a web page level. 
         [0040]    Beginning with step  101 , the publisher  100  offers content as first information on his web page  500 . The publisher  100  defines ad space using an iframe  501  as a placeholder. The source of the iframe  501  is set to a URL  600  belonging to the chooser. 
         [0041]    In step  102 , the publisher  100  transmits the URL of the web page  500  to the analyzer  200 . Preferably, the analyzer  200  provides a database where URLs that are expected to be analyzed are placed, especially in arbitrary groups (e.g., all URLs of one group belong to the same web site). 
         [0042]    In step  103 , the publisher  100  transmits the content of the web page  500  as first information to the analyzer  200 . 
         [0043]    Simultaneously, the analyzer  200  receives the content of the web page  500  as first information, preferably by loading the web page, in step  203 . This could be done regularly. 
         [0044]    In step  204 , the analyzer  200  analyzes the first information to generate data regarding the first information. Then, the data regarding the first information together with a primary key are preferably stored into a database of the analyzer  200 . This also could be done regularly. 
         [0045]    In step  205 , an encrypted token is generated for each URL as unique identifier. Preferably, the encrypted token can be stored in a JSON file together with the URL, easing the transfer  206  of the encrypted token to the first information provider. To reduce the number of files, one JSON file could be generated for each group in the database. Then, each JSON file is an array of objects where each object contains the URL and its generated token. 
         [0046]    Preferably, the database is maintained through a controlled time interval (e.g., every hour) in which encrypted tokens for each URL are re-generated according to step  205 . Re-analyzing the URLs according to steps  203  and  204  is done regularly, but independently from step  205 . Especially, each group in the database can be used to generate one JSON file. Preferably, each of these JSON files has a unique name so that upon generation it will overwrite an existing JSON file with the same name. 
         [0047]    A suitable encrypted token is generated by encrypting (using e.g. AES 128 bit symmetric encryption) a “token string” (i.e. text) comprising one or more of the following data:
       version   type   pageId   timestamp   signature       
 
         [0053]    version: this is referred to as the token string&#39;s version indicator type: character representation of an integer indicating the type of data regarding the first information to return (complete information, summary, extract, etc.) 
         [0054]    pageId: character representation of an index of the database where a URL resides (i.e., its primary key), it uniquely identifies the associated URL 
         [0055]    timestamp: character representation of the time the token string is created 
         [0056]    signature: this is a binary number, e.g. a SHA1 signature, and it is calculated on all the data before it (i.e., version to timestamp) 
         [0057]    The AES 128 bit key used to encrypt the above “token string” is generated using a standard AES 128 bit key generation library. After the encryption the resulting binary data is preferably encoded in URL-safe base64 encoding. Be it noted that on each fixed interval the generated encrypted tokens will be different for the same URL. This is because the timestamp and signature will be different each time. The timestamp is included in the encrypted token so that the encrypted token can expire (i.e., no longer be valid) after a fixed time period. 
         [0058]    In steps  206  and  106 , the encrypted token, preferably by transmitting the generated JSON file, is transmitted to and received by the publisher. 
         [0059]    In step  107 , the publisher  100  inserts a specific program code and the encrypted token, preferably inside the generated JSON file, into his web page  500 . The program code is configured to modify the iframe  501 , when the web page is rendered in the visitor&#39;s browser. This could be done e.g. by a java script. The program code is preferably provided by the information intermediary  200 . 
         [0060]    When a visitor visits the web page  500 , the web page is rendered in the visitor&#39;s browser. The program code adds the encrypted token to the placeholder by appending the encrypted token  502  to the source URL  600  of the iframe  501 . When the web page  500  that contains the java script is rendered by a visitor&#39;s browser, the java script looks for a matching URL in a JSON file that is also included in the web page. The URL searched for in the JSON file is the URL of the web page. If a match is found, then the java script takes the encrypted token that is associated with the matching URL and appends it to the iframe source  600 . It can be intended that step  107  can only be executed, if the chooser  300  and the advertiser  400  both have allowed code originating from the analyzer  200  to append its code. This can be achieved, e.g., through the cross-domain controls. 
         [0061]    When the visitor opens the web page, the encrypted token  502  is transmitted to the chooser  300  as part of the URL  600 . Thus, in step  108  the encrypted token is transmitted from the publisher to the chooser via the visitor. In step  308 , the encrypted token is received by the chooser simultaneously. 
         [0062]    The URL  600  of the chooser in turn comprises an iframe, which source  503  is set to an advertiser&#39;s  400  banner ad  700  as second information. 
         [0063]    In steps  309  and  409 , the encrypted token is transmitted from the ad-server and received by the advertiser, e.g. also as appendix to the source URL of the iframe  600 . 
         [0064]    In steps  410  and  210 , the encrypted token is transmitted from the advertiser and received by the analyzer, preferably as a server to server query. 
         [0065]    In step  211 , the analyzer validates the encrypted token. This validation proceeds as follows: 
         [0066]    Firstly, the encrypted token is decrypted using the same AES 128 bit key used to encrypt it, resulting in the token string. Secondly, the signature is recalculated and it is verified that it matches the value in the token string, verifying that the decryption was done successfully. 
         [0067]    Thirdly, it is checked, whether the version indicator in the token string is a supported number and whether the token string has not yet expired by verifying that the timestamp is not older than some configured, acceptable time interval. If any of the verification steps above fails, then the encrypted token is not validated and the procedure ends. 
         [0068]    If the token string is valid, then in step  212  the pageId is used to obtain its associated URL by looking it up in the database. 
         [0069]    The token string&#39;s type field and associated URL are used to return the data relating to the first information to the advertiser in steps  213  and  413 . Thus, the advertiser receives targeting data associated with that URL to which he is entitled to have access to and which allows to make the secondary information compatible with the first information. In the field of advertisement, this could be contextual targeting data such as categories or keywords related to the page or site, data about the other ad units on the page, data about the flags of unwanted content on the page etc. 
         [0070]    While the invention has been described with reference to certain illustrative embodiments, the description of the methods described is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments as well as other advantages and embodiments of the invention will be apparent to visitors skilled in the art upon reference to the description and claims.