Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
HANDLING DIGITAL ADVERTISEMENTS IN A COMMUNICATION NETWORK
Document Type and Number:
WIPO Patent Application WO/2015/041578
Kind Code:
A1
Abstract:
There is provided a computer-implemented logic unit (100), also referred to as ad-handling logic, configured to handle advertisements when a web page is downloaded from a web site (300) or a web portal in a communication network. The computer-implemented logic unit comprises processing circuitry and associated memory. The processing circuitry is configured to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The processing circuitry is further configured to insert an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement. As an example, the computer-implemented logic unit (100) may be configured for connection to or implementation with a proxy server (400)in the network.

Inventors:
MIHÁLY ATTILA (HU)
WESTBERG LARS (SE)
MOLNÁR GÁBOR (HU)
Application Number:
PCT/SE2013/051092
Publication Date:
March 26, 2015
Filing Date:
September 18, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ERICSSON TELEFON AB L M (SE)
International Classes:
G06F17/30; G06Q30/02; G06Q30/0241
Foreign References:
US20130179767A12013-07-11
US20020103830A12002-08-01
Attorney, Agent or Firm:
AYOUB, Nabil et al. (Patent Unit Kista RAN2, Stockholm, SE)
Download PDF:
Claims:
CLAIMS

1. A method for handling advertisements when downloading a requested web page from a web site or a web portal in a communication network, wherein said method comprises the steps of:

identifying (S1 ) an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to said web page; and

inserting (S2) an advertisement-delaying script-based executable patch in relation to said ad script to enable a delay of the download of objects related to said advertisement.

2. The method of claim 1 , wherein said advertisement-delaying script- based executable patch is inserted in the main markup language file corresponding to said web page or inserted in said ad script.

3. The method of claim 1 or 2, wherein said advertisement-delaying script-based executable patch is configured to enable a delay of the download of objects related to said advertisement until after at least part of the other content of the requested web page has been downloaded.

4. The method of claim 3, wherein said advertisement-delaying script- based executable patch is configured to enable a delay of the download of objects related to said advertisement until after at least part of content considered useful from a user viewing perspective has been downloaded.

5. The method of any of the claims 1 to 4, wherein said advertisement- delaying script-based executable patch is configured to enable a delay of the download of objects related to said advertisement until after a specific event has occurred.

6. The method of claim 5, wherein said specific event is a 'load' event, or a customized event that is triggered when at least part of content considered useful from a user viewing perspective has been downloaded.

5 7. The method of any of the claims 1 to 6, wherein said advertisement- delaying script-based executable patch comprises a patching part that provides replacement functions for original built-in web-browser functions to enable said delay of the download of objects and an unpatching part that restores the original built-in web-browser functions.

10

8. The method of claim 7, wherein said patching part including definitions of said replacement functions is inserted at the beginning of said ad script, and said unpatching part is inserted at the end of said ad script.

15 9. The method of any of the claims 1 to 8, wherein said advertisement- delaying script-based executable patch is configured to modify an event subscription of said ad script.

10. The method of claim 9, wherein said advertisement-delaying script- 20 based executable patch is configured to modify the event subscription of at least one function, also referred to as event handler, of said ad script to a specific event, wherein said at least one function is associated with the download of an object related to said advertisement.

25 1 1. The method of claim 9 or 10, wherein said advertisement-delaying script-based executable patch is configured to change the event subscription from a 'DOMContentLoaded' event to an event after said 'DOMContentLoaded' event.

30 12. The method of any of the claims 1 to 1 1 , wherein said advertisement- delaying script-based executable patch is configured to enable a delay of the download of objects related to said advertisement by temporarily removing at least one Uniform Resource Locator (URL) in said ad script that would result in download of an object related to said advertisement, and restoring said at least one URL after a specific event.

13. The method of any of the claims 1 to 12, wherein said method for handling advertisements is performed in connection with a proxy server in said communication network. 14. The method of any of the claims 1 to 13, wherein said method for handling advertisements is performed in connection with a web browser of a client in said communication network.

15. The method of any of the claims 1 to 14, wherein said ad script and said advertisement-delaying script-based executable patch are based on

JavaScript.

16. A computer-implemented logic unit (100) configured to handle advertisements when a web page is downloaded from a web site or a web portal (300) in a communication network, wherein said computer-implemented logic unit (100) comprises processing circuitry (1 10) and associated memory (120),

wherein said processing circuitry (1 10) is configured to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to said web page; and

wherein said processing circuitry (1 10) is configured to insert an advertisement-delaying script-based executable patch in relation to said ad script to enable a delay of the download of objects related to said advertisement.

17. The computer-implemented logic unit of claim 16, wherein said processing circuitry (1 10) is configured to insert said advertisement-delaying script-based executable patch in the main markup language file corresponding to said web page or in said ad script.

18. The computer-implemented logic unit of claim 16 or 17, wherein said processing circuitry (1 10) is configured to insert said advertisement-delaying script-based executable patch to enable a delay of the download of objects related to said advertisement until after at least part of the other content of the requested web page has been downloaded or until after a specific event has occurred.

19. The computer-implemented logic unit of any of the claims 16 to 18, wherein said processing circuitry (1 10) is configured to insert said advertisement-delaying script-based executable patch in the form of a patching part that provides replacement functions for original built-in web- browser functions to enable said delay of the download of objects and an unpatching part that restores the original built-in web-browser functions, and configured to insert said patching part including definitions of said replacement functions at the beginning of said ad script, and configured to insert said unpatching part at the end of said ad script.

20. The computer-implemented logic unit of any of the claims 16 to 19, wherein said processing circuitry (1 10) is configured to insert said advertisement-delaying script-based executable patch to modify an event subscription of said ad script.

21. The computer-implemented logic unit of any of the claims 16 to 20, wherein said computer-implemented logic unit (100) is configured for connection to or implementation with a web-browser of a client (200) in said communication network.

22. The computer-implemented logic unit of any of the claims 16 to 21 , wherein said computer-implemented logic unit (100) is configured for connection to or implementation with a proxy server (400) in said communication network.

5

23. The computer-implemented logic unit of any of the claims 16 to 22, wherein said processing circuitry (1 10) comprises a processor, and said memory (120) comprises instructions executable by said processor. io 24. A user equipment (200) configured to handle advertisements when downloading a requested web page from a web site or a web portal (300) in a communication network, wherein said user equipment (200) comprises processing circuitry (210) and associated memory (220),

wherein said processing circuitry (210) is configured to identify an 15 executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to said web page;

wherein said processing circuitry (210) is configured to insert an advertisement-delaying script-based executable patch in relation to said ad script to enable a delay of the download of objects related to said 20 advertisement; and

wherein said processing circuitry (210) is configured to delay, when said patch is executed, said download of said objects related to said advertisement.

25 25. The user equipment (200) of claim 24, wherein said processing circuitry (210) comprises a processor, and said memory (220) comprises instructions executable by said processor.

26. A proxy server (400) configured to handle advertisements when a web 30 page is downloaded from a web site or a web portal (300) in a communication network, wherein said proxy server (400) comprises processing circuitry (410) and associated memory (420),

wherein said processing circuitry (410) is configured to identify an executable script related to an advertisement, also referred to as an ad script, 5 in the web page code corresponding to said web page;

wherein said processing circuitry (410) is configured to insert an advertisement-delaying script-based executable patch in relation to said ad script to enable a delay of the download of objects related to said advertisement.

10

27. The proxy server (400) of claim 26, wherein said processing circuitry (410) comprises a processor, and said memory (420) comprises instructions executable by said processor.

15 28. An apparatus (500) for handling advertisements when a web page is downloaded from a web site or a web portal (300) in a communication network, wherein said apparatus (500) comprises:

an identifying module (532) for identifying an executable script related to an advertisement, also referred to as an ad script, in the web page code 20 corresponding to said web page; and

an inserting module (534) for inserting an advertisement-delaying script-based executable patch in relation to said ad script to enable a delay of the download of objects related to said advertisement.

25 29. A computer program (530) comprising:

program code (532) which, when executed by a computer, causes the computer to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to said web page; and

30 - program code (534) which, when executed by a computer, causes the computer to insert an advertisement-delaying script-based executable patch in relation to said ad script to enable a delay of the download of objects related to said advertisement.

30. The computer program of claim 29, wherein said computer program is realized as a computer program product stored on a computer-readable medium.

Description:
HANDLING DIGITAL ADVERTISEMENTS IN A COMMUNICATION

NETWORK

TECHNICAL FIELD

The proposed technology generally relates to a method for handling advertisements when downloading a requested web page from a web site or a web portal in a communication network, a corresponding computer- implemented logic unit, a user equipment, and a proxy server as well as a computer program.

BACKGROUND

There is an ever-increasing demand for faster and better communication services and especially a need for improved quality of experience when downloading web content in a communication network.

For example, mobile communication becomes ubiquitous and besides telephony, mobile Internet traffic is continuously growing due to the technology that provides broadband data rates such as High Speed Downlink Packet Access, HSDPA, Enhanced Data rates for GSM Evolution, EDGE, and Long Term Evolution, LTE, on one hand and the growing number of mobile devices like tablets or smart phones that enable the usage of a tremendous number of Internet applications through the mobile access. Web browsing has been and remains a significant portion (around 30-40%) of the total mobile internet traffic. A known fact is that the users experience Quality of Experience, QoE, problems due to slow web page download times for mobile networks. The two main reasons for slower download performance compared to fixed broadband networks is the lower access rates and longer access latency. Thus, a number of solutions/technologies have been designed that can improve the performance for end-users for mobile networks. Some of them are based on server-related optimization, but most of them assume an intelligent proxy in the network.

The web optimization solutions may be grouped in two main categories: intrusive or non-intrusive. The former solutions are those that make modifications in the initial page. Such modifications may include:

• Removing or correcting non-relevant or wrong data in the markup language.

• In-lining all referred JavaScript and Cascading Style Sheets, CSS, files.

• Replacing Uniform Resource Locators, URLs, to large objects with other smaller, compressed objects.

• Filtering out advertisements.

The non-intrusive solutions are those that do not make modifications in the actual page. Thus a non-intrusive solution does not degrade the page quality in any way. Examples for non-intrusive web optimization solutions are:

• Compress the content.

• Cache the content at a proxy server. · Pre-fetching some content to a local cache of a User Equipment, UE.

Advertisements seem to be representing one of the major problems for large web page downloads. This is partly because they cannot be cached; either because a server indication, or simply because they are not likely to be requested multiple times for the same user. Also, the structure of the advertisements is not optimized for short download times, containing a lot of local queries for client state and history, and actions based on those, resulting in large chains of request-reply patterns that cannot be parallelized. Reducing the time for ad downloads would generally result in a significant reduction of the overall web page downloads.

The simple non-intrusive methods like caching or content pre-fetching has turned out to have limited benefit due to the high share of dynamic content in the web pages. Advertisements, for example, are mostly dynamic and non- cacheable. The non-intrusive methods in general cannot solve the problem related to small access bandwidth.

The current intrusive methods are designed to decrease the data volume to be transferred and thus offer in principle a good solution for the bottleneck capacity problem. Filtering out ads at the proxy may be doable for example in the same way currently some browser plug-ins do it, i.e., based on some black-list that may be continuously updated based on observations. The proxy then would reply e.g., with a 'No content' reply to such requests. The impact on the downloaded page would be that some parts of the page would remain 'blank'. However, one problem with this ad filtering and other intrusive methods is the legacy impact. The subscribers will not get the same content as the one targeted by the portal owner which would jeopardize business expectations. Reference [1 ] relates to distribution and targeting of advertising for mobile devices. Advertisements are selected according to user profiles and selected advertisements may be downloaded offline to mobile devices and stored. Content may be separately provided to the mobile device. Each content may be associated with a content header containing requirements or restrictions regarding the advertisement that may be shown in association with the selected content. Reference [2] relates to on-the-fly manipulation of advertisements. The method involves analyzing the content of the traffic directed towards or away from a user, and manipulation of the advertisements displayed to the user. The manipulation includes removal of existing ads, addition of new ads, or replacing existing ads with new ads based on the analysis of the content of the traffic.

There is thus a general demand for an improved way of handling 'digital' advertisements in a communication network.

SUMMARY

It is an object to provide an improved method for handling advertisements when downloading a requested web page from a web site or a web portal in a communication network.

It is another object to provide a computer-implemented logic unit configured to handle advertisements. Yet another object is to provide a user equipment configured to handle advertisements.

Still another object is to provide a proxy server configured to handle advertisements.

It is also an object to provide a corresponding computer program.

These and other objects are met by embodiments of the proposed technology. According to a first aspect, there is provided a method for handling advertisements when downloading a requested web page from a web site or a web portal in a communication network. The method comprises the steps of identifying an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page, and inserting an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement.

According to a second aspect, there is provided a computer-implemented logic unit configured to handle advertisements when a web page is downloaded from a web site or a web portal in a communication network. The computer- implemented logic unit comprises processing circuitry and associated memory.

The processing circuitry is configured to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The processing circuitry is further configured to insert an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement. According to a third aspect, there is provided a user equipment configured to handle advertisements when downloading a requested web page from a web site or a web portal in a communication network. The user equipment comprises processing circuitry and associated memory. The processing circuitry is configured to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The processing circuitry is configured to insert an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement. The processing circuitry is further configured to delay, when the patch is executed, the download of the objects related to the advertisement. According to a fourth aspect, there is provided a proxy server configured to handle advertisements when a web page is downloaded from a web site or a web portal in a communication network. The proxy server comprises processing circuitry and associated memory. The processing circuitry is configured to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The processing circuitry is configured to insert an advertisement- delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement.

According to a fifth aspect, there is provided an apparatus for handling advertisements when a web page is downloaded from a web site or a web portal in a communication network. The apparatus comprises an identifying module for identifying an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The apparatus also comprises an inserting module for inserting an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement.

According to a sixth aspect, there is provided a computer program comprising program code which, when executed by a computer, causes the computer to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The computer program also comprises program code which, when executed by a computer, causes the computer to insert an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement. In this way, it is possible to more efficiently handle 'digital' advertisements in a communication network. In particular, this allows a significant reduction of the download times of the useful, non-ad related, content of the web page with little processing effort. This means that the web browsing experience of the users will be greatly improved.

Other advantages will be appreciated when reading the detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments, together with further objects and advantages thereof, may best be understood by making reference to the following description taken together with the accompanying drawings, in which: FIG. 1 is a schematic diagram illustrating examples of so-called ad-handling logic arranged on the client side according to an embodiment.

FIG. 2 is a schematic diagram illustrating examples of so-called ad-handling logic arranged on the proxy side according to an embodiment.

FIG. 3 is a schematic flow diagram illustrating an example of a method for handling advertisements when downloading a requested web page from a web site or a web portal in a communication network. FIG. 4 is a schematic flow diagram illustrating a particular example of a method in the ad-handling logic according to another embodiment.

FIG. 5 is a schematic block diagram illustrating an example of a computer- implemented logic unit according to an embodiment. FIG. 6 is a schematic block diagram illustrating an example of a user equipment according to an embodiment.

FIG. 7 is a schematic block diagram illustrating an example of a proxy server according to an embodiment.

FIG. 8 is a schematic block diagram illustrating an example of a computer- implementation including a computer program according to an embodiment. DETAILED DESCRIPTION

Throughout the drawings, the same reference numbers are used for similar or corresponding elements. It would be desirable to provide a light-weight method for increasing user Quality-of-Experience, QoE, when downloading web pages. The inventors have recognized the possibility to make some modifications in relation to the ad scripts such that the advertisements are downloaded only after the most important content of the page from the viewing perspective has been downloaded. This may be achieved by identifying the ad script and inserting a script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement.

A web page is a web document suitable for processing and rendering by a web browser. For example, the web browser displays the web page on a monitor. The web page is thus what is displayed or otherwise presented, but it also refers to the underlying web page code that defines the web page to be downloaded and viewed. When executed, the underlying web page code provides visible and/or audible content for presentation as a web page. The web page code is normally a main Hyper Text Markup Language, HTML, page, but can also refer to additional 'embedded' script files, which then are normally considered part of the overall web page code.

In other words, the web page code, also referred to as a web page code stream, is representative of the web page to be downloaded for rendering or 5 presentation by the web browser.

Depending on the context, the expressions 'web page' and 'web page code' may sometimes be used interchangeably.

10 A scripting language or script language is a programming language that supports the writing of scripts, i.e. programs written for a special runtime environment that can interpret and automate the execution of tasks. An example is JavaScript.

15 From an architectural point of view, there exist a plurality of potential realizations. For example, two different potential realizations of the proposed solution are shown in FIG. 1 and FIG. 2. A core component is a computer- implemented logic unit, referred to as the ad-handling logic 100. The ad- handling logic 100 is also referred to as a computer-implemented

20 advertisement handler, or simply an ad handler.

FIG. 1 is a schematic diagram illustrating examples of the so-called ad- handling logic arranged on the client side according to an embodiment. In this example, the ad-handling logic 100 is implemented in relation to the client/UE 25 200; either in connection with the client/UE or integrated with the client/UE.

When the client/UE is sending a request for downloading a requested web page from a web site 300 or a web portal in the communication network, the ad-handling logic 100 may inspect the received web page code corresponding 30 to the requested web page to identify the ad(s), and then make appropriate modifications in relation to the ad(s). The identification of the ad(s) may for example be based on access to a pre-configured domain blacklist 1 15.

As exemplified in FIG. 1 , the ad-handling logic 100 may be connected to the local web-browser 150 executed in the client/UE 200. The ad-handling logic 100 may for example be implemented as an executable extension to the web browser. Alternatively, the ad-handling logic 100 is connected to the client 200. FIG. 2 is a schematic diagram illustrating examples of so-called ad-handling logic arranged on the proxy side according to an embodiment. In this example, there is a transparent or non-transparent proxy server 400, also referred to as a web-proxy, in the network that may check the required pages. The ad- handling logic 100 is thus implemented in relation to the proxy server 400; either in connection with the proxy server or integrated with the proxy server. By way of example, the proxy server 400 may connect to the ad-handling logic 100 for identifying the advertisements and making the appropriate modifications to enable delayed ad delivery. FIG. 3 is a schematic flow diagram illustrating an example of a method for handling advertisements when downloading a requested web page from a web site or a web portal in a communication network. In this example, the method comprises identifying (step S1 ) an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page, and inserting (step S2) an advertisement- delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement.

This allows a significant reduction of the download times of the useful, non-ad related, content of the web page with little processing effort, thus improving the web browsing experience of the users. Typically, the advertisement-delaying script-based executable patch may be inserted in the main markup language file corresponding to the web page or inserted in the ad script. For example, the main markup language file, such as the main HTML page, may be modified by wrapping around the ad script with patch and unpatch logic of the script-based executable patch and inserting a script such as JavaScript defining the patch and unpatch logic in the main page. However, the main focus will primarily be on different embodiments that are based on inserting the script-based executable patch directly in the ad script.

The advertisement-delaying script-based executable patch is preferably configured to enable a delay of the download of objects related to the advertisement until after at least part of the other content of the requested web page has been downloaded.

By way of example, the advertisement-delaying script-based executable patch is typically configured to enable a delay of the download of objects related to the advertisement until after at least part of content considered useful from a user viewing perspective has been downloaded.

In a particular example, the advertisement-delaying script-based executable patch is configured to enable a delay of the download of objects related to the advertisement until after a specific event has occurred.

The specific event may for example be a 'load' event, or a customized event that is triggered when at least part of content considered useful from a user viewing perspective has been downloaded. As an example, the advertisement-delaying script-based executable patch comprises a patching part that provides replacement functions for original built-in web-browser functions to enable the delay of the download of objects and an unpatching part that restores the original built-in web-browser functions. Typically, the patching part includes definitions of the replacement functions and is inserted at the beginning of the ad script, and the unpatching part is inserted at the end of the ad script.

In a useful group of embodiments, the advertisement-delaying script-based executable patch is configured to modify an event subscription of the ad script.

For example, the advertisement-delaying script-based executable patch may be configured to modify the event subscription of at least one function, also referred to as event handler, of the ad script to a specific event. The function or functions is/are associated with the download of an object related to the advertisement.

In a specific example, the advertisement-delaying script-based executable patch is configured to change the event subscription from a 'DOMContentLoaded' event to an event after the 'DOMContentLoaded' event, as will be exemplified in detail later on.

It is also possible to configure the advertisement-delaying script-based executable patch to enable a delay of the download of objects related to the advertisement by temporarily removing at least one Uniform Resource Locator, URL, in the ad script that would result in download of an object related to the advertisement, and restoring this or these URL(s) after a specific event, as will be exemplified later on. As an example, the above method for handling advertisements may be performed in connection with a web browser of a client in the communication network, as schematically illustrated in FIG. 1. Alternatively, the above method for handling advertisements may be performed in connection with a proxy server in the communication network, as schematically illustrated in FIG. 2.

Initially, the client 200 or the intermediate proxy server 400 receives digital signals representing web page code corresponding to the requested web page for processing by the associated ad-handling logic unit 100. The web page code is at least temporarily stored or maintained in a memory that is accessible by the ad-handling logic unit 100 and the processing circuitry associated therewith.

The advertisement usually originates from a domain, here called an ad domain or an ad network, different than the web site or web portal 300 from which the web page is requested, whereas the useful, non-ad related content originates from the web site or web portal 300.

The method may be triggered on-demand, or applied for all web requests due to its light-weight nature. The proposed technology may be regarded as a generic method in that it may be applied for all browser and terminal types using the same process and parameters.

Another advantage is that, although being an intrusive solution, the method rather behaves as a non-intrusive solution since the proposed modification does not degrade the page quality in any way. In other words, experience of the user(s) regarding the received content quality is not degraded in any way. In addition, the solution does not pose any legal issues. Once the script-based patch is executed the required delaying will be performed. For example, this may be take place in the local web browser 150 of the considered client 200. However, the general method performs the ad identification and patch insertion to enable the required delaying.

By way of example, the identification of the ad(s) may be based on a pre- configured domain blacklist 1 15, where domain name(s) in the ad scripts are compared to ad domains in the blacklist.

In particular, the proposed technology may be applicable for improving the web browsing experience on access networks with a bottleneck capacity, e.g. mobile broadband networks with limited access rates or high load.

In the following, the proposed technology for handling digital advertisements in a communication network to improve the QoE of users will be described with reference to particular non-limiting examples. Although any script language can be used, it is envisaged that the ad script and the advertisement-delaying script-based executable patch are normally based on JavaScript.

JavaScript, which is currently a trademark of Oracle Corporation, has become one of the most popular programming languages on the web. JavaScript typically relies on a run-time environment to provide objects and methods by which scripts can interact with the Outside world'.

One of the most common uses of JavaScript is to write functions, which are embedded in Hyper Text Markup Language, HTML, pages and which interact with the Document Object Model, DOM.

JavaScript is primarily used as part a web browser, and enables programmatic access to computational objects within a host environment. Web browsers typically create 'host objects' to represent the DOM model in JavaScript. The web server is another common host environment. Today, JavaScript is a however considered to be a general purpose embedded language.

To insert a JavaScript into an HTML page, the <script> and </script> tags can be used. Often, it is desirable to execute the script code when an event occurs, like when a users clicks a button or similar. If the JavaScript code is defined in a function, the function can be called when the event occurs.

FIG. 4 is a schematic flow diagram illustrating a particular example of a method in the ad-handling logic according to another embodiment. This example, refers particularly to the case when the ad-handling logic is implemented in relation to a proxy server.

As previously mentioned, the method may be triggered on-demand, or applied for all web requests due to its light-weight nature. In the former case, the optional step S21 involves waiting for a trigger. A page modification trigger may come from the proxy server in the case the proxy server identifies that a certain page has to be modified. Reasons for modifications could be user policies, current network conditions, and a page that has not been modified recently; a recently modified page may be re-used for other user requests. The proxy server may also indicate which page should be modified. Note however, that due to the light-weight nature of the method, the ad-handling logic could in principle be applied or switched on for all web requests.

In step S22 the scripts that relate to the advertisements are identified. This may be performed, e.g. based on a blacklist of advertisement domains that may be continuously updated.

In step S23, if the domain is identified as an ad domain, then some modification is performed related to the corresponding script. A main observation related to the ad scripts is that the ad content (images, HTML code) is either inserted with 'document.write' when the advertisement script is loaded, or postponed to after the DOMContentLoaded event and is inserted using DOM manipulation techniques. The advantage of the former is simplicity in most cases. There are a number of reasons why the latter is also used:

• Flexibility: on a complete DOM model it becomes much easier to perform any modifications at any time.

• Stability: if a third party script would execute anything on an incomplete DOM model this could cause unwanted events

• Context-awareness: easy to align the ad with the environment.

In both cases the result is that the advertisements may delay the download and presentation of other, useful content. For example, the DOMContentLoaded event generally triggers also a large number of other scripts and downloads. As a result, the advertisement script execution and subsequent ad content downloads will compete on client and transport resources with other non-ad-related content that will be referred to as 'useful content'.

The delaying method to be used depends on whether the ad-related content is postponed to after the DOMContentLoaded event or inserted with document.write. Examples of two possible alternatives are outlined in the following.

• Postponing the ad-related content download may be achieved by re- subscribing the corresponding ad scripts to after the DOMContentLoaded event and thus all subsequent ad downloads will be performed after this event. The method proposed here is that, instead of the DOMContentLoaded event, replace the subscription of the ad scripts to after some other event. This may be for example the 'load' event, which ensures that all the useful content has been downloaded. Another possibility is to inline a script that creates an additional event. For example, the script would monitor when the main article or the useful content related to the currently visible part of the page has been downloaded and triggers an event afterwards. The advantage of the latter is that no specific knowledge of the web- page is required; similar mechanisms are implemented in some fashionable web pages like YouTube that download the content only when it would become visible when the user scrolls down on page.

Ad content downloaded with document.write can be found in ad- related scripts that are also inserted using document.write or with a regular <script> tag in the HTML code. Note that these ad-related script tags, e.g. in the form of document.write ('<script src="http://..."></script>') should not be delayed themselves, since the caller of the document.write function may assume that the injected script was downloaded and executed successfully after the document.write call returns. Thus, an example method proposed for ad content using document.write is that, in the case when URLs are found in document.write function calls that would result in injecting other objects (e.g. pictures or iframes), then first remove those URLs (e.g. inject an empty image of iframe), and restore the URLs after some event as described before. This is made possible by the fact that these objects are always downloaded later anyway, so the caller may not assume that these are already loaded when the document.write function call returns.

The ad-handling logic, also referred to as delay logic or an ad handler, and generally embodied as a computer-implemented logic unit, may for example implement one or both of the above two alternatives. The ad-handling logic can be implemented as group of small 'replacement functions' for certain built-in functions of the browser. These 'replacement functions' usually modify the arguments of the function calls before forwarding them to the original built-in functions and in some cases contain additional logic.

The process of installing the replacement functions will be referred to as patching and the restoration of the original functions as unpatching. Each advertisement script normally needs to be preceded by a patch operation and to be followed by an unpatch operation. An example of built-in methods that can be patched:

• document.write

• document. addEventListener

In general, when an event occurs on a target element, e.g. a button click, a form submit or the like, a handler function is executed. The addEventListener is a method that registers an event handler function (i.e. an event listener) for a specified event on the currently considered object.

An example of meta-level pseudo-code is shown below. function newAddEventListener ( event , event handler)

if event == ' DOMContentLoaded '

// Registering the event handler for the 'load' event // instead of the 'DOMContentLoaded' event

window . addEventListener (' load ' , event handler)

else

// Simply forwarding the subscription request

document . originalAddEventListener ( event , event handler) function newDocumentWrite ( string )

if (string matches '<img|iframe ...src="originalURL" ... >')

// Removing the url and then restoring after 'load' string = '<img|iframe ... id="delayed"

window . addEventListener (

' load' ,

document . getElementByld ( ' delayed ' ) . originalURL document . originalWrite (string ) function patch ( )

document . originalWrite = document . write

document . write = newDocumentWrite

document . originalAddEventListener = document . addEventListener document . addEventListener = newAddEventListener function unpatch ( )

document . write = document . originalWrite

document . addEventListener = document . originalAddEventListener

An example of pseudo-code for how to perform modifications to the identified ad-related JavaScript files is illustrated below. Both the function definitions and the patch are inserted at the beginning of the JavaScript file, while the unpatch code is inserted at the end. Note that, in this way, both alternatives of ad insertion may be handled by a common method.

// Defini ion of patch(), unpatch () , newAddE en Lis er ( ) and newDocumentWrite ( )

functionnewft.dd EventListener (event, event handler)

// Execution of the patch logic

patch ( )

// The original adver isement JavaScript code is here

// Execution of the unpatch logic

unpa ch ( ) It will be appreciated that the methods and devices described above can be combined and re-arranged in a variety of ways. For example, embodiments may be implemented in hardware, or in software for execution by suitable processing circuitry.

The steps, functions, procedures, modules and/or blocks described above may be implemented in hardware using any conventional technology, such as discrete circuit or integrated circuit technology, including both general-purpose electronic circuitry and application-specific circuitry.

Particular examples include one or more suitably configured digital signal processors and other known electronic circuits, e.g. discrete logic gates interconnected to perform a specialized function, or Application Specific Integrated Circuits, ASICs.

Alternatively, at least some of the steps, functions, procedures, modules and/or blocks described above may be implemented in software such as a computer program for execution by suitable processing circuitry including one or more processors.

The flow diagram or diagrams presented above may therefore be regarded as a computer flow diagram or diagrams, when performed by one or more processors. A corresponding apparatus is defined as a group of function modules, where each step performed by the processor corresponds to a function module, as will be exemplified later on.

Examples of processing circuitry includes, but is not limited to, one or more microprocessors, one or more Digital Signal Processors, DSPs, one or more Central Processing Units, CPUs, video acceleration hardware, and/or any suitable programmable logic circuitry such as one or more Field Programmable Gate Arrays, FPGAs, or one or more Programmable Logic Controllers, PLCs. It should also be understood that it may be possible to re-use the general processing capabilities of any conventional device or unit in which the proposed technology is implemented. It may also be possible to re-use existing software, e.g. by reprogramming of the existing software or by adding new software components.

The relevant network nodes, such as the UE and proxy server, may also include suitable communication circuitry for communication with one or more other nodes, including transmitting and/or receiving information. FIG. 5 is a schematic block diagram illustrating an example of a computer- implemented logic unit configured to handle advertisements when a web page is downloaded from a web site or a web portal in a communication network according to an embodiment. In this example, the computer-implemented logic unit 100, also referred to as a computer implemented ad handler, comprises processing circuitry 1 10 and associated memory 120. The processing circuitry 1 10 is configured to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The processing circuitry 1 10 is also configured to insert an advertisement-delaying script- based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement. As mentioned, the processing circuitry 1 10 may include one or more processors or equivalent processing unit(s). By way of example, the processing circuitry 1 10 may be configured to insert the advertisement-delaying script-based executable patch in the main markup language file corresponding to the web page or in the ad script. Typically, the processing circuitry 1 10 is capable of receiving/reading the web page code corresponding to the web page, make the necessary modifications and output modified web page code; in the main page and/or the relevant script file(s). The processing circuitry 1 10 may for example be configured to insert the advertisement-delaying script-based executable patch in the form of a patching part that provides replacement functions for original built-in web- browser functions to enable the delay of the download of objects and an unpatching part that restores the original built-in web-browser functions, and configured to insert the patching part including definitions of the replacement functions at the beginning of the ad script, and configured to insert the unpatching part at the end of the ad script.

In a particular example, the processing circuitry 1 10 is configured to insert the advertisement-delaying script-based executable patch to enable a delay of the download of objects related to the advertisement until after at least part of the other content of the requested web page has been downloaded or until after a specific event has occurred. The processing circuitry 1 10 may also be configured to insert the advertisement-delaying script-based executable patch to modify an event subscription of the ad script, for example as previously described.

As previously explained, the computer-implemented logic unit 100 may be configured for connection to or implementation with a web-browser of a client such as a UE in the communication network. Alternatively, the computer- implemented logic unit 100 may be configured for connection to or implementation with a proxy server in the communication network.

By way of example, the processing circuitry 1 10 comprises a processor, and the memory 120 comprises instructions executable by the processor.

The computer-implemented logic unit may be regarded as an apparatus, which is defined as a group of function modules, where each step performed by the processing circuitry 1 10 corresponds to a function module. In this example, the apparatus comprises an identification module for identifying an ad script in the web page code corresponding to the web page, and an insertion module for inserting an advertisement-delaying script-based executable patch in relation to the ad script to enable the desired delay. In this case, the function modules are implemented as a computer program running on the processor.

As used herein, the term UE should be interpreted as a non-limiting term, including a mobile phone, a cellular phone, a Personal Digital Assistant, PDA, equipped with radio communication capabilities, a smart phone, a laptop or Personal Computer, PC, equipped with an internal or external mobile broadband modem, a tablet PC with radio communication capabilities, a portable electronic radio communication device, a sensor device equipped with radio communication capabilities or the like. In particular, the term UE comprises at least devices equipped with radio circuitry for wireless communication according to any relevant communication standard.

FIG. 6 is a schematic block diagram illustrating an example of a user equipment according to an embodiment. In this example, the ad-handling logic is basically integrated into the user equipment, UE, so that the UE is configured to handle advertisements when downloading a requested web page from a web site or a web portal in a communication network. The UE 200 basically comprises processing circuitry 210 and associated memory 220, and optional communication circuitry 230.

The processing circuitry 210 is configured to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The processing circuitry 210 is also configured to insert an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement. For the UE case, the processing circuitry 210 is further configured to delay, when the patch is executed, the download of the objects related to the advertisement.

By way of example, the processing circuitry 210 comprises a processor, and the memory 220 comprises instructions executable by the processor.

As previously indicated, the UE may provide a suitable run-time environment, such as a web browser, and the ad-handling logic may be executed as an extension to the web browser. The communication circuitry 230 may include functions for wired and/or wireless communication with other devices and/or network nodes in the network.

FIG. 7 is a schematic block diagram illustrating an example of a proxy server according to an embodiment. In this example, the ad-handling logic is basically integrated into the proxy server 400 so that the proxy server is configured to handle advertisements when downloading a requested web page from a web site or a web portal in a communication network. The proxy server 400 basically comprises processing circuitry 410 and associated memory 420, and optional communication circuitry 430. The processing circuitry 410 is configured to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The processing circuitry 410 is also configured to insert an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement.

By way of example, the processing circuitry 410 comprises a processor, and the memory 420 comprises instructions executable by the processor.

The communication circuitry 430 may include functions for wired and/or wireless communication with other devices and/or network nodes in the network. The processing circuitry 410 of the proxy server is typically capable of receiving/reading the web page code corresponding to the web page, make the necessary modifications and output modified web page code; in the main page and/or the relevant script file(s). The modified web page code can then be communicated via the communication circuitry 410 to the client/UE for subsequent execution, e.g. in the client web browser.

FIG. 8 is a schematic block diagram illustrating an example of a computer- implementation including a computer program according to an embodiment. The computer 500 comprises processing circuitry 510 such as one or more processors and an associated memory 520. In this particular example, at least some of the steps, functions, procedures, modules and/or blocks described above are implemented in a computer program 530, which is loaded into the memory 520 for execution by the processing circuitry. The processing circuitry 510 and memory 520 are interconnected to each other to enable normal software execution. An optional input/output device (not shown) may also be interconnected to the processing circuitry 510 and/or the memory 520 to enable input and/or output of relevant information.

The term 'computer' should be interpreted in a general sense as any system or device capable of executing program code or computer program instructions to perform a particular processing, determining or computing task.

In a particular embodiment, the computer program 530 comprises program code 532 which, when executed by a computer, causes the computer to identify an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The program code 532 may be implemented as a module for identifying the ad script. The computer program 530 also comprises program code 534 which, when executed by a computer, causes the computer to insert an advertisement- delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement. The program code 534 may be implemented as a module for inserting the patch.

The program code may thus be organized as appropriate functional modules configured to perform, when executed by the processing circuit, at least part of the steps and/or tasks described above.

The computer 500 may therefore be regarded as an apparatus for handling advertisements when a web page is downloaded from a web site or a web portal in a communication network. The apparatus 500 comprises an identifying module 532 for identifying an executable script related to an advertisement, also referred to as an ad script, in the web page code corresponding to the web page. The apparatus 500 also comprises an inserting module 534 for inserting an advertisement-delaying script-based executable patch in relation to the ad script to enable a delay of the download of objects related to the advertisement. The software or computer program may be realized as a computer program product, which is normally carried or stored on a computer-readable medium. The computer-readable medium may include one or more removable or non- removable memory devices including, but not limited to a Read-Only Memory, ROM, a Random Access Memory, RAM, a Compact Disc, CD, a Digital Versatile Disc, DVD, a Universal Serial Bus, USB, memory, a Hard Disk Drive, HDD, storage device, a flash memory, or any other conventional memory device. The computer program may thus be loaded into the operating memory of a computer or equivalent processing device for execution by the processing circuitry thereof.

For example, the computer program stored in memory includes program instructions executable by the processing circuitry, whereby the processing circuitry is able or operative to execute the above-described steps, functions, procedure and/or blocks.

The computer or processing circuitry does not have to be dedicated to only execute the above-described steps, functions, procedure and/or blocks, but may also execute other tasks.

The embodiments described above are merely given as examples, and it should be understood that the proposed technology is not limited thereto. It will be understood by those skilled in the art that various modifications, combinations and changes may be made to the embodiments without departing from the present scope as defined by the appended claims. In particular, different part solutions in the different embodiments can be combined in other configurations, where technically possible. REFERENCES

[1 ] US Patent Application 2009/0198580.

[2] 'Method and System for Performing On-The-Fly Manipulation of

Advertisements Based on Analyzing Content of Internet Traffic', by

IP.com Journal, August 2010.