Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SELECTING ADVERTISEMENTS
Document Type and Number:
WIPO Patent Application WO/2015/048853
Kind Code:
A1
Abstract:
This disclosure relates to advertising on communication devices. A communication device receives multiple advertisements and multiple content items from one or more first mobile communication devices. The device stores the advertisements associated with an advertisement profile. The advertisement profile comprises a counter which records the number of times the advertisement has been sent. Next, the device receives a request from a second communication device for one of the content items and selects one of the stored advertisements based on the requested content item and based on the advertisement profile. The device updates the advertisement profile associated with the selected advertisement and sends the selected advertisement and the requested content item to the second communication device.

Inventors:
SENEVIRATNE ARUNA (AU)
MOHAPATRA PRASANT (AU)
KAAFAR DALI (AU)
CHAWLA SANJAY (AU)
Application Number:
PCT/AU2014/050262
Publication Date:
April 09, 2015
Filing Date:
October 01, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NAT ICT AUSTRALIA LTD (AU)
International Classes:
G06Q30/00
Foreign References:
US20100217660A12010-08-26
US7522634B22009-04-21
US20030056218A12003-03-20
US20130227283A12013-08-29
US8321568B22012-11-27
US20030046365A12003-03-06
US20120072950A12012-03-22
US20060265493A12006-11-23
Attorney, Agent or Firm:
FB RICE (44 Market StreetSydney, New South Wales 2000, AU)
Download PDF:
Claims:
CLAIMS:

. A method for sending advertisements to a communication device, the method comprising:

(a) receiving multiple advertisements and multiple content items from one or more first mobile communication devices;

(b) storing each of the multiple advertisements on a data store associated, with an advertisement profile, the advertisement profile comprising a counter which records the number of times the advertisement has been sent;

(c) receiving a request from, a second communication device for one of the multiple content items;

(d) selecting one of the stored advertisements based on the requested content item and. based on the advertisement profile;

(e) updating the advertisement profile associated with the selected advertisement; and

(f) sending the selected advertisement and the requested content item to the second communication device.

2. The method of claim 1 , wherein

step (a) comprises receiving a first content item from a first mobile communication device and receiving multiple advertisements associated with the first content item from one or more third mobile communication devices: and

step (b) comprises storing each of the multiple advertisements on the data store associated with the content item and with the advertisement profile, 3. The method of claim 1 or 2, wherein: step (b) comprises storing each of the multiple advertisements on the data store associated with one or more of the multiple content items,

4, The method of claim 3, wherein step (d) comprises selecting one of the stored advertisements that are associated with the requested content item.

5. The method of any one of the preceding claims, further comprising sending the advertisement profile to a cache controller. 6, The method of any one of the preceding claims, wherein each advertisement profile further comprises a value related to a user activity on the second communication device and the request comprises an indication of the user activity such that the advertisement profile is updated to indicate the number of times the associated advertisement has been sent to a communication device for display during the user activity.

7. The method of claim 6,. wherein selecting one of the stored advertisements is based on the value related t the user activity and the counter of the advertisement profile. 8. The method of any one of the preceding claims, further comprising receiving an advertising policy comprising multiple identifiers- of advertisements, wherein selecting the one of the stored advertisements is based on the advertising policy,

9. The method of claim 8, wherein the advertising policy comprises a policy weight associated with each of the multiple identifiers and selecting one of the stored advertisements is based on the policy weight

10. The method of claim 8 or 9, wherein the advertisement policy comprises an advertisement type associated with each of the multiple identifiers and selecting one of the stored, advertisements is based on the advertisement type.

11. The method of any one of claims 8 to 10, further comprising determining for each of the multiple advertisements a current weight based on the advertisement profile and the policy and selecting one of the stored advertisements is based on. the current weight.

12. The method of any one of the preceding claims, wherein receiving the multiple advertisements and multiple content items is via a wireless network that is the same wireles network as for receiving the request and sending the selected advertisement.

13. The method of an one of the preceding claims, wherein receiving the multiple advertisements and multiple content items, receiving the request, and sending: the selected advertisement is via a direct connection over the wireless network. 14, The- method of any one of the precedin claims, wherein the second communication device is a mobile communication device,

15. Software that when installed on a computer causes the computer to perform the method of any one or more of claims 1 to 14. .16. A computer system for sending advertisements to a communication device, the computer system comprising:

a data store to store each of multiple advertisements associated with an advertisement profile, the advertisement profile comprising a counter which records the number of times the advertisement has been sent;

an input port

to receive the multiple advertisements and multiple content items from, one or more first mobile communication devices, and

to receive a request from a second, communication device for one of the multiple content items:

a processor

to select one of the stored advertisements based on the requested content item and based on the advertisement profile; and

to update the advertisement profile associated with the selected advertisement; and

an output port to send the selected advertisement and the requested content item to the second communication device.

.17. A method for advertising on a communication device, the method comprising:

(a) sending multiple first advertisements and multiple first content items to a caching device;

(b) sending a request from the communication device for a second content, item to the caching device;

(c) receiving from the caching device a second advertisement and the second- content item; and

(d) displaying the second advertisement and the second content item.

18. The method of claim 17 further comprising determining whether a third content item is accessible from the caching device over a first wireless data network, the first wireless data network allowing the mobile communication device to connect with the caching device.

19. The method of claim 18, further comprising if it is detennined that the third content item is not accessible from the caching device,.

relieving the third content item with, a third advertisement over a second wireless data network different to the first wireless data network, the second wireless data network allowing the mobile communication device to connect with a data host, wherein

step (a) comprises sending the retrieved third content item and third advertisement to the caching device over the first wireless data network, 20. The method of any one of claims 17 to 19, wherein receiving the second advertisement from the caching device comprises updating an advertisement profile .associated with the second advertisement.

21. Tire method of claim 20, further comprising sending the advertisement profile, to a cache controller.

22. Software that when installed on. a computer causes the computer to perform the method of any one or more of claims 17 to 21. 23. A computer system for advertising on a communication device, the computer system comprising:

an output port

to send multiple first advertisements and. multiple first content items to a caching device, and

to send a request for a second content item to the caching device;

an input port to receive from the caching device a second, advertisement; and a display to display the second advertisement and the second content item.

24, A method for detecting fraud in advertising on a communication, device, the method comprising:

receiving a first advertisement profile from a caching device;

receiving a second advertisement profile from the communication device; and generating a fraud alarm if there is a mismatch between the first advertisement profile and the second advertisement profile above a pre-defined fraud threshold.

25. Software that when installed on a computer causes the computer to perform the method of claim 24.

26. A computer system for detecting fraud in advertising on a communication device, the computer system comprising:

an input port

to receive a first advertisement profile from a caching device, and to receive a second advertisement profile from the communication device; and

a processor to generate fraud alarm if there is a mismatch between the first advertisement profile and the second advertisement profile above a pre-defined fraud threshold.

27. A computer network comprising:

a caching device according to claim 16 in communication with.

a communication device according to claim 23.

28. The computer network of claim. 27, further comprising a cache controller according to claim 26-

Description:
"Selecting Advertisements"

Cross-Reference to Related Applications

The present application claims priority from Australian Provisional Patent Application No 201.3903806 tiled on 2 October 2013, the content of which is incorporated herein by reference.

Technical Field

This disclosure- relates to advertising on communication, devices. In particular, but not limited to, this disclosure relates to a method, computer system, and software for sending advertisements to a communication device, to a method, computer system and ■software for advertising on a communication device and to a method, computer system and software for detecting fraud in advertising on a communication device.

Background; Art

Advertising agencies provide advertisements, such as videos or images, to service providers, such as Google and Youtube. The service providers provide the service and place the advertisements within their services. The advertising agency remunerates the service provider for the delivery of the advertisements.

Since mobile communication devices are increasingly popular for accessing services over the Internet, the bandwidth for deli ering advertisements is increasingly limited. As a result, it is difficult to deliver the advertisements efficiently to the mobile cornmunic ati on de ice .

Any discussion of documents, acts, materials, devices, articles or the like which has been included in the present specification is not to be taken as an admission that any or all of these matters form part of the prior art base or were common general knowledge in the field relevant to the present disclosure as it existed before tile priority date of each claim of this application.

Throughout this specification the word "comprise", or variations such as "comprises" or "comprising", will be understood to imply the inclusion of a stated element, integer or step, or group of elements, integers or steps, but ot the exclusion of any other element, integer or step, or group of elements, integers or steps. Disclosure of Invention

A method for sending advertisements to a communication device comprises;

(a) receiving multiple advertisements and multiple content items from one or more first mobile communication, devices;

(b) storing each of the multiple advertisements on a data store associated with an advertisement profile,, the advertisement profile comprising a counter which records the number of times the advertisement has been sent;

(c) receiving a request from a second communication device for one of the multiple content items;

(d) selecting one of the stored advertisements; based on the requested content item and based on the advertisement profile;

(e) updating the advertisement profile associated with the selected advertisement; and

(if) sending the selected advertisement and the requested content item to the second communication device.

Selecting one of the stored advertisements based on the requested content item and the advertisement profile has the advantage that the advertisement that is provided with the content is dynamicall selected and it is not the same advertisement that is provided with a particular content item. This is important since the content and the advertisement are received together by the data store via the first mobile device and the advertisements are not provided directly from an advertisement agency. Simply storin the content and the advertisement as data i a data store without profiling would not lead to the advantage of dynamically selected advertisements.

It is a further advantage that selecting based on the advertisement profiles and updating the advertisement profiles allows monitoring of advertisement usage, which can be provided to an advertisement agency. Step (a) may comprise receiving a first content item from a first mobile communication device and receiving multiple advertisements associated with the first content item, from one or more third mobile communication devices. Step (b) may comprise storing each of the multiple advertisements on the data store associated with the content item, and with the advertisement profile. Step (b) may comprise storing each of the multiple advertisements on the data store associated with one or more of the multiple content items.

Step (d) ma comprise selecting one of the stored advertisements that are associated with the requested content item.

The method may further comprise sending the requested content item to the second communication device. The method may further comprise sending the advertisement profile to a cache controller.

Each adveitisement profile may further comprise a value related to a user activity on the second communication device and the request comprises an indication of the user activity such that the advertisement profile is updated to indicate the number of times the associated, advertisement has been sent to a communication device for display during the user activity.-

It is an advantage of the profile comprising a activity that the selection of the advertisement can be adjusted depending on the activity. For example, an advertisement can be sent to the mobile communication device such that it is displayed only during web browsing and not during displaying a video.

Selecting one of the stored advertisements may be based on the value related to the- user acti vity and the advertisement profile.

The method may further comprise receiving an advertising policy comprising multiple identifiers of advertisements, wherein selecting the one of the stored advertisements is based on the advertising policy,

The method can receive the advertising policy from an. advertisement agency which provides the advertising agency with control over the selection of the advertisements. This way the advertising agency can achieve a greater commercial success with the advertisement than when using ordinary caches which typically result in. a loss of control. The advertising policy may comprise a policy weight associated with each of the multiple identifiers and selecting one of the stored advertisements may be based on the policy weight. The advertisement policy may comprise an advertisement type associated with each of the multiple identifiers and selecting one of the stored advertisements may be based on the advertisement type.

The method may further comprise determining for each of the multiple advertisements a current weight based on the advertisement profile and the policy and selecting one of the stored advertisements may be based on. the current weight.

Receiving the multiple advertisements and multiple content items may be via a wireless network that is the same wireless network as for receiving the request and sending the selected advertisement.

Receiving the multiple advertisements and multiple content items, receiving the request, and sending the selected advertisement may be via a direct connection over the wireless network.

The second communicatio device may be a mobile communication device.

Softwai'e installed on a computer causes the computer to perform, the above method for sending advertisements to a communication device.

A computer system for sending advertisements to a communication device comprises:

a data store to store each of multiple advertisements associated with a advertisement profile, the advertisement profile comprising a counter which records the number of times the advertisement has been sent;

an. input port

to receive the multiple advertisements and multiple content items from one or more first mobile communication, devices, and

to receive a request from a second communication device for one of the multiple content items;

a processor to select one of the stored advertisements based on the requested content item and based on the advertisement profile; and

to update the advertisement profile associated with the selected advertisement; and

an output port to send the selected advertisement and the requested content item to the second communication device,

A method for advertising on a communication device comprises:

(a) sending multiple first advertisements and multiple first content items to a caching device;

(b) sending a request from, the communication device for a second content item to the caching device;

(e) receiving from the caching device a second advertisement; and

(d) displaying the second advertisement and the second content item.

The method may further comprise receiving from the caching device the second content item.

The method may further comprise determining whether a third content item is accessible from the caching device over a first wireless data network, the first wireless data network allowing the mobile communication device to connect with the caching device.

The method may further comprise if it is determined that the third content item. is. not accessible from the caching device,

retrieving the third content item with a third advertisement over a second wireless data network different to the first wireless data network, the second wireless data network allowing the mobile communication device to connect with a data host, wherein

step (a) comprises sending the retrieved third content item and third advertisement to the caching device over the first wireless data network.

Recei ving the second advertisement from the caching device may comprise updating an advertisement profile associated with the second advertisement. The method may further comprise sending the advertisement profile to a cache co troller.

.Software installed on a computer causes the computer to perform the above method for advertising on a. communication device,

A computer system for advertising on a communication device comprises;

an output port

to send multiple first advertisements and multiple first content items to a caching device, and

to send a request for a second content item to the caching device;

an input port to receive from the caching device a second advertisement; and a display to display the second advertisement and the second content item. A method for detecting fraud in advertising on a communication device comprises:

receiving a first adverti ement profile from a caching device;

receiving a second advertisement profile from the communication device; and generating a fraud alarm, if there is a mismatch between the first adverti sement profile and the second. advertisement profile above a pre-defined fraud threshold.

Software installed on a computer causes the computer to perform the above method for detecting fraud in advertising on a communication device..

A computer system for detecting fraud in. advertising on a communication device comprises:

an input port

to receive a first advertisement profile from a caching device,: and to receive a second advertisement profile from the communication device; and

a processor to generate a fraud alarm if there is a mismatch between the first advertisement profile and the second -advertisement profile above a pre-defined fraud threshold.

A computer network comprises:

the above computer system for sending advertisements to a communication device as a caching device in communication with the above computer system for advertising an ' a communication device.

The computer network may further comprise a computer system for detecting fraud in advertising on a communication device as a cache controller.

Optional features described of any aspect of method . , software or computer system, where appropriate, similarly apply to the other aspects also described here.

Brief Description of Drawings

An example will, be described with reference to

Fig. 1 illustrates a computer system for sending advertisements.

Fig. 2 illustrates a method for sending advertisements to a communication device.

Fig. 3 illustrates a communication network.

Fig. 4 illustrates a advertisement profile table.

Fig. 5 illustrates a computer network for advertising on mobile communication devices.

Fig. 6 illustrates a method for detecting fraud in advertising on a mobile communication device.

Fig. 7 illustrates a method for advertising on a communication device.

Fig. 8 illustrates user device displaying a content item and an advertisement.

Best Mode for Carrying Out the Invention

Fig. illustrates a computer system 100 for sending advertisements. The computer system 100 comprises a processor 102 connected to program memory 104, a data memory 106 and a communication port 108 to send advertisements to a communication device 110. in one example, the communication device 110 is a mobiie communication device, such as a smart phone. The communication port 108 can operate as an input port as well as an output port in a full-duplex manner.

The program memory 104 is a non-transitory computer readable medium, such as a hard drive, a solid state disk or CD-ROM. Software, that is an executable program, stored on program memory 104 causes the processor 102 to perform the method in Fig. 2, that is, the processor 102 receives and stores advertisements and content items and responds to a request for a content item by selecting one of the advertisements and. sending it to the mobile communicatioii device 110. The processor 102 may receive data, such as advertisements and content items, from data memory 106 as well as from the communications port .1.08. In one example, the processor .102 receives advertisements and content items from the mobile communication device 11.0 via communications port 108, such as by using a Wi-Fi network according to IEEE 802.11. The Wi-Fi network may be a decentralised network, such that no dedicated management infrasttucture, such as a router, is required. Although communications port 108 is shown as a distinct entity, it is to be understood that any kind of data port may be used to receive data, such as a wireless network connection, a memory interface, a pin of the chip package of processor 102, or logical ports, such as IP sockets or parameters of functions stored on program memory 104 and executed by processor 106. These parameters may be stored on data, memory 106 and may be handled by-value or by-reference, that is, as a pointer, in the source code.

The processor 102 may receive data through all these interfaces, which includes memory access of volatile memory, such as cache or RAM, or non-volatile memory, such as an optical disk drive, hard disk drive or storage server.

It is possible to provide caches in the downstream of the data, such as at a 3G base station such that content items and associated advertisements are stored on the cache, However, when there is a cache ' hit, the current internet advertising model breaks because the advertising agencies cannot determine what advertisements) is/are to be shown, and cannot perform proper accounting methods, such as determine how many ads have been, shown.

As a result, many advertisers try to prevent caching (no caching cache busting), and accept the fact that they have lost control.

Fig. 2 illustrates a method 200 as performed by processor 102 for: sending advertisements to communication device 1.10. Method 200 can be seen as pseudo-code and is implemented as source code in a programming language, such as Java or objective ('. compiled and stored on program memory 104. The method 200 will be explained with further reference to Fig, 3, which illustrates a communication network 300 and the steps of method 200 of Fig. 2. Arrows in Fig. 3 with the same reference numerals as in Fig. 2. relate to the respective steps of method 200.

The network 300 comprises a first mobile communication device 302, such as a smart phone, a local cache 304 and a second mobile communication device 306, The first smart phone 302, the local cache 304 and the second smart phone 306 are connected to each other via a single Wifi network 308. The local cache 304 and the smar phones 302 and 306 may be implemented as a computer system, such as computer system 300 in Fig. 1 with the difference that communications port 8 is a multi-network interface that allows data transfer over a 3G network 310 as well as over ' Wifi network 308. Of course, alternati ve cellular networks other than 3G that allow connections to a data host are possible, such as LTE/4G. Further, alternative local networks that allow a direct connection between the caching device 304 and the smart phones 302 and 306 are also possible, such as Bluetooth or NFC.

The cache is referred to a local cache to distinguish the local cache 304 from other caches that are located within the downstream of data from the Internet, such as at the 3G base station. The local cache 304 is not in the downstream of the data but is local to the devices 302 and 306, that is, the local cache 304 is accessible via the local Wifi without the need for any managed infrastructure.-

It is noted here that although the first smart phone 302 and the second smart phone 306 are described as distinct devices, the steps performed by these devices may be performed by a single device, in an example where the first smart phone 302 receives, a content item and pushes the content item to local cache 304, it is technically possible that first smart, phone 302 requests that same content item from local cache 304. However, it is more likely that the first smart phone 302 has a built-in device cache and therefore, in most cases the first smart phone 302 would not need to request a previously downloaded content item from local cache 304. For that reason Fig. 3 shows two distinct smart phones 302 and 304 for the typical ease where the second smart phone 306 requests a content item that has previously been, downloaded and pushed to local cache 304 by the first smart phone 302.

In one example, the local cache is also a smart phone and has software installed to implement method 200 in Fig. 2. For example, the software is installed as Ap through an application provider, such as Apple's App Store or Google Play. In this example, the smart phone implementing tile local cache 304 has a large memory available,, such as .16GB internal or 64GB extended by memory card, so that a sufficient number of advertisements and content items can be stored on the local cache, that is, on data store 106 in Fig. i .

In one exemplary scenaiio, multiple users commute by bus and receive data via a 3G mobile network. The users are charged a transmission fee for recei ving the data, which is not desirable for the users. In particular, it is undesirable for most users to pay transmission fees for receiving advertisements. Further, the connection to the 3G network may be riot stable dari ng the commute. Since the interests of users in the same bus are often correlated, there is a benefit in these users sharing a common cache 304. This is achieved by using the multiple network interfaces that each user device offers and by dedicating one or more of the user devices as a common cache 304. The other non-caching devices 302 and 306 push data that has been downloaded over 3G to the caching device 304 over a Wifl connection.

This Wi.fi connection is : established and managed b the caching device 304 itself and as- a result, no managed infrastructure is required. Further, the Wift connection is stable as long as the caching device stays on the bus. The cached data can be shared between multiple caching devices to guarantee consistent operation even when one of the caching devices exits the bus.

Since data transmission over the local Wifl network does generally not attract any fees, the users only pay battery capacity to transfer the data but other than that the service is free. This means the users can access the content items and advertisements from the local cache 304 instead of downloading them over the 3G network 310 and. therefore, the user incurs no monetary cost.

A first user (not shown) accesses online content, such as websites o the Internet, over a 3G data network 310 using the first smart phone 302. The first smar phone 302 receives the content . comprising advertisements and content items and pushe the advertisements and content items to local cache 304. This process is described in Australian Patent Application No. 2013901755, which is incorporated herein by reference. The content items may be websites, videos, images, sound recordings or other data while the advertisements may be videos, images, text or other data.

The local cache 3.04 receives 202 the multiple advertisements and content items from the first smart phone 302 via Wifi network 308 and communications port. 108, Of course, there could be more than one first smart phones such that the cache 304 receives multiple advertisements and content items from multiple first smart phones.

The local cache 304 stores 204 the received advertisements on a local data store, such as data store 106 in Fig. .1. As illustrated in Fig, 3, the local data store 106 may comprise two separate databases, such as a first database 12 to store the content items and a second database 31 to store the advertisements- In one example, the local data cache 304 -splits the received data into content items and advertisements. This splitting may comprise receiving the content items and advertisements as separate files, such as video files, and determining whether the files are content items or advertisements.

For example, a content item, may comprise a link to the advertisement such that the advertisement is embedded into the content item when the content item is displayed. The advertisement and content item may also be video files and the advertisement is played before the content item when displayed on device 302. Local cache 304 identifies the first video as the advertisement and the second video as the. content item, splits the two videos and stores them separately o databases 3.12 and 314, respectively.

The local cache 304 stores each advertisement associated with an advertisement profile. It is noted that the advertisement profile reflects the usage of the advertisement and therefore, the advertisement profile may also be referred to as a usage profile. This is in contrast, to a user profile that reflects the user characteristics, such as user interests and content accessed by a particular user. In one example, the local cache 304 stores the each advertisement associated with the content item with which that advertisement was received. Another mobile device may also send the same content item, to local, cache 304 but with a different advertisement. Then, local cache 304 does not store a copy of the content item but only the advertisement. Local cache 304 stores this advertisement associated with the previously received content item. This way, multiple advertisements are associated with the same content item. Fig. 4 illustrates an advertisement profile table 400 comprising multiple advertisement profiles, such as first advertisement profile 402, For the sake of brevity, 'advertisement profile' may also be referred to as simply 'profile'.. The profile table 400 may also be stored, on data store 106 in Fig, I , such as in the form of an SQL database. Each profile comprises a counter 404 which records the number of times the advertisement has been sent to another mobile communication device. In this example, the profile 402 further comprises an activity 406, which indicates one of three different scenarios:

1... Mobile web (online advertisements): advertisements are placed in web pages and search sponsored advertisements.

2. In. app advertisements: advertisement are placed in transitions in app activities or as banners.

3. Overlay advertisements (advertisements coming) with the content: E.g. Youtube, in addition to the ads in the page of the Youtube app advertisements are shown before, after or during each video view.

Of course, alternative or additional activities may also be defined.

When, one of the activities is undertaken (UA-.1 , 2 or 3), an advertisement will be displayed (An). Profile 402 further comprises an advertisement identifier 408 (An) and an advertisement, type 410 (AT) which reflects whether the advertisement was a guaranteed advertisement (G) or non-guaranteed advertisement, i.e. obtained through a real time bidding process) (N).

A guaranteed advertisement is associated with, a guaranteed numbe of displays, which means that the advertisement is dispiayed at least that number of times. For example, the advertising agency pays for 10,000 displays of one particular advertisement. If there are 100 local caches that have this advertisement available on their respective data stores, each local cache needs to send this advertisement for 100 times, which is the guaranteed number for this cache, This guaranteed number may be provided to the local cache in form of a policy as described, further below. Each profile is further associated with a user device: 412 and may further comprise an identifier ' (not shown.) that, associates the advertisement with a content item with which the advertisement was received. A user initiates an activity (UA) on the second smart phone 306 to access a content item, in one example, user activities include watching a video, browsing the internet, reading emails or playing a game. The second smart phone 306 then sends a request including the user activity t the local cache 304 to check whether the content item can be served from a local cache, if it cannot be served from a local cache the second smart phone 306 will download it from the origin server or a higher level cache as described above in relation to the first smart phone 302,

The cache receives 206 the request for the content item via communications port 108 from the second smart phone 306. The requested content item is one of the multiple content items received previously from the first smart phone 302. The processor 102 of local cache 304 selects 208: one of the stored advertisements using some or all of the attributes stored in. the Advertisement Table 400, such as profile 402.

In the example above, where the local cache stores multiple advertisements associated with a single content item, processor 102 of local cache 304 may limit the selection of the advertisement to those advertisements that are associated with the requested content item. This way, the local cache 304 takes advantage of the analysis of the original advertisement provider and the association of particular advertisements with content items as determined by the original advertisement provider. ' For example, a soccer video may be delivered from a content server to the mobile devices with advertisement for sports clothing and fitness studios, Local cache 304 stores the soccer video once and stores the advertisements for sports clothing and fitness studios associated with the single copy of the soccer video. When another mobile device 306 requests the soccer video, local cache 304 can select between the advertisement for sports clothing and the advertisement for fitness studios based on the counters or Other attributes in the Advertisement Table 400. This way, the local cache 304 selects the advertisement based on the requested content item and the advertisement profile,

Qnee the advertisement is selected, the processor 1 (32 of local cache 304 updates 210 its Advertisement Table 401) attribute Dn 404, i.e. the number of times an advertisement has been sent and sends 212 the selected advertisement and the requested content items to the second smart phone 306 via communications port 108. The second smart phone 306 also records the number of advertisements that were displayed on the user device (IJDn) 412. In the example scenario above of the users commuting in a bus, the local cache 304 acts as a local Wif ' i hotspot such that both smart phones 302 and 306 use the same Wifi network, that is, the same SSID, for sending the content items and advertisements to the local cache 304 as well as for sending the request and receiving the content items and advertisements .from the local cache 304, Further, these steps of data transmission are performed via a direct connection over the Wifi network. This means that there is no router, switch, or bridge involved in these operations and the functionality does not rely on any infrastructure provided.

The following section explains the selection of the advertisement in more detail. Each advertisement is associated with two- different weighting factors: a policy weight and a current weight. The policy weight is a weight that is provided externally for each advertisement, such as by the advertisement agency. This reflects the importance of that advertisement and is typically not changed b the local cache 304, that is, the policy weight, is read only. Of course, the policy weight may change when an updated policy is recei ed by the local cache 304.

The policy may comprise weights for advertisements that are not yet stored on the local cache 304. Therefore, each policy weight is associated with an advertisement identifier, such that the local cache 304 can find the advertisement that belong to the respective weight. If that advertisement has not been stored yet, the local cache 304 simply sends a cache miss signal to the second, smart phone 306. The advertisement identifier may be included in each adve tisement as metadata or may he determined on the fly as a hash value *

The second weight is current -weight (WAD), which, is determined by the local cache 304 each time a content item is requested or an advertisement needs to he selected. The local cache 304 determines the current weight for multiple advertisements and selects the advertisement with the highest current weight.

WAD is computed at the time of serving the content using a number of parameters including, but not limited to:

The attributes listed in profile 400 in Fig, 4;

Value or perceived revenue potential of the advertisement;

Resource dependency;

Contextual relevance;

Default policy;

Number * quality, and size of advertisements. When cached content is served from the local cache 304, the advertisement to be displayed is chosen based on the weight attached to the advertisement (WAD). The advertisement with the highest W AD will be chosen and if the WAD are equal, a round robin arrangement may be used.

Examples of the use of the method of choosing the advertisements:

Example 1

If the local cache has network connectivity, the cache will send a list of the advertisement IDs 408 (AID) it has on in the cache, and ask the advertisin agency to indicate the weights for the ads in the list.

Example 2

If the local cache has no network connectivity and has a number of guaranteed advertisements from the same advertising agency associated with the acti vity (UA), the de ault policy of the ad agency will be used to determine WAD, In the case that the default policy is round robin, equal weights will be attached to each of the guaranteed advertisements.

Example 3

If there are no guaranteed advertisements, and the cache has no network connectivity, the loc l cache will determine the W AD as a function of Dn 404 and DA 406

W AD - 1/Dn + β UA

If there were a number of advertisements, ensuring that all ads had a chance of getting displayed is aehieved by 1/Dn. If the guaranteed number of displays has been reached for a particular advertisement, this advertisement may be assigned the lowest weight, such a zero, such that it is no longer sent. When a suitable (low cost network, e.g. WiFi with Internet connection ' ) is found the second smart phone 306 and the local cache 304 will upload the impression count On. 404 to a. cache controller (e.g. crowdcache system) independent of each other.

Fig. 5 illustrates, a computer network 500 for advertising on mobile communication devices, The computet' network comprises an advertising agency 502, such as an ad network, a content custodian 504, such as a Youtube server, a user device 506. such as a smart phone, a local cache 508 as described above and a cache controller 510.

As described above, the advertising agency 502 provides advertisements to the content custodian 504. The user device 506 downloads content and advertisements from the content custodian 504 and pushes the content and advertisements to the local cache 508. The user device 506 requests a content item from the local cache 508. The local cache 508 receives the request from the user device 506 and selects one of the multiple advertisements based on the profile of each advertisement and sends the selected advertisement to the user device 506.

Advertising agencies 502 are often faced with the problem of advertising fraud. The content provider is often remunerated by the number of times an advertisement is displayed. Therefore, there are scenarios where the number of times that the advertisement is displayed is artificially increased to- achieve a higher remuneration.

Fig. 6 illustrates a method 600 for detecting fraud in advertising on a mobile communication device as performed by the cache .controller 51.0. Cache controller 510 may be implemented similarly to the computer system 100 in Fig. 1, which means that the method 600 is implemented as software in program memory 104 and tire processor 102 of the cache controller 5.10 executes .the software to perform the method 600.

In one example, the cache controller 510 is outside the local. Wifi network that connects the user device 506 and the local cache 508 but is connected to the Internet. This means that communication port 108 of cache controller 510 may be a cable-based connection, such as a LAN connection and the communication with the local cache 508 and the user device 506 occurs via switches, bridges and. other managed infrastructure. This way, the communication port 108 acts as an input port to receive first and second profiles and the processor .102 generates a fraud alarm,

Cache controller ' 510 ma also be implemented as a cloud service with, a variable number of virtual machines depending, on the load. For example, the number of virtual machines may be increased when an advertising campaign is about to IK launched. When the user device 506 is connected to the Internet via a high bandwidth and/or low cost data network, such as Wifi at home, the user device 506 sends the profiles including the counters of advertisements to the cache controller 510, Similarly, the local cache 508 sends the profile data including the counters to the cache controller 51.0. The cache controller 510 receives 602 the first profile from the local cache 508 and receives 604 the second profile from the user device 506. If there is a mismatch between the first profile and the second profile above a pre-defined fraud tlireshold, the cache controller 510 generates 606 a fraud alarm. Generating the fraud alarm may comprise initiating a process that black lists a user device. In one example, the pre- defined fraud threshold is defined on the counters of the profiles and i set to zero, which means that the cache controller generates a fraud alarm if the two counters have different values.

This means the cache controller 510 checks count of the advertisement impressions reported by local cache i {¾■„), those reported by the user j of cache i (UD;(j,B)), to verify the number of impressions counts.

.Hi

If UD i n ≠ y UD :i {j.n) (i.e. the number of ail users connected to local cache i) it

j---!

does not report the impression number to the advertising agency . , and informs- the local cache and or black lists the user, i--*

lf IJD j ^ = ^ ' U.D j ( j. n) , report the impression number to the advertising agency.

.].

In one example, the- cache controller 510 sends the profiles or the outcome of the fraud detection to the content custodian 504. When sendin the profile 400, the local cache 508 may also send a list of advertisements that are currently stored on local cache 508 to the cache controller 510 so that the cache controller 510 can monitor which advertisements are currently in the network available to be sent to user devices. This is particularly useful when there are a large number of local caches 508 in the network, such as one local cache in each bus during morning rush hour. t is possible, for example, that advertisement ageftcy 502 launches a campaign such that all users on local buse are provided the same video advertisement and the local cache 508 i the smart phone of the bus driver. This means the advertisement has to be downloaded only once per bus and as a result, that advertisement is available with virtually no latency and in high definition to every passenger on the bus. Users are likel to find this experience greatly improves the viewing experience and are more likely to pay attention to the advertisement.

The above description provides a method of choosing the advertisements to be displayed when serving data from a cache which:

Enables advertisers to provide their preferences;

Exploits the characteristics of the advertisements (e, guaranteed and non-guaranteed, size of the advertisements), locally observed parameters fe.g number of displays, resource dependency); and

Provides the necessary information for display fraud detection.

Fig. 7 illustrates a method 700 for advertising on a communication device as performed b user device 506. As mentioned earlier, the hardware of user devices and the local cache can be very similar and in fact, the local cache can reside on a smartphone. As a result, the hardware impleMen ration of user device 506 can be: as illustrated in Fig. 1. The processor 102 of the user device executes software stored on program, memory 104, which causes the processor 102 of the user device 506 to perform the method.700.

The user device 506 sends 702 multiple advertisements and multiple content items t a caching device * that is. local cache 508, The user device 506 then sends 704 a request for a content item to the caching device. As explained earlier, in most cases the content item that is requested is not one of the multiple content items that were sent in ste 702 because otherwise that content item would likely have been cached in the user device 506 itself. For example, the user using the user device 506 watches three soccer videos which are all pushed, to local cache 508 after being downloaded via 3G on that user's account. Then, the user switches to news and the user device 506 requests the news item from local cache 508, which the user has not yet downloaded or watched,

After sending the request, the user device 506 receives from the caching device an advertisement and the requested content item. Unlike the content item, the advertisement is more likely to be the same because the advertisement is seieeted by the local cache 508 and not by the user device 506, Which means, although the user device 506 has displayed the advertisement before, it may need to display the same advertisement again if the local cache 508 selects this advertisement to be displayed by this user device 506 since this particular advertisement fulfils the criteria set by the advertising agency.

The user device 506 comprises a display, which is not shown in Fig, 1, and displays 708 the second -advertisement, and the second content item to- th user.

Fig. 8 illustrates the user device 506 having a display 802. The display 804 displays a content item received from the local cache 508, which is a soccer match video in this example. The display 804 further displays a advertisement 802, whic is a graphical banner advertisement for sportswear in this example. As can. be seen here, the advertisement is related to the content item although both are received from the local cache 508 and. the advertisement can be controlled by the local cache 508 and therefore by the advertising agency 502 despite the fact, that there is often no connection, such as Internet connection, between the local cache 508 and the advertising agency 502 at the time when the content item is delivered.

It will be appreciated by persons skilled in the art that numerou variations and/or modifications may be made to the specific embodiments without departing from the scope as defined in the claims.

It should be understood that the techniques of the present disclosure might be implemented using a variety of technologies. For example, the methods described herein may be implemented by a series of computer executable instructions residing on a suitable computer readable medium. Suitable compute readable media may include volatile (e.g. RAM) and or non-volatile (e.g. ROM, disk) memory, carrier waves and transmission media. Exemplary carrier waves may take the form of electrical, electromagnetic or optical signal conveying digital data steams along a local network or a publiealf y accessible network such as- the internet. It should also be understood that, unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description,, discussions utilizing terms such as "estimating" or "processing" or "computing" or "calculating", "optimizing" or "determining" or "displaying" or "maximising" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that processes and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such informatio storage, transmission or display devices.

The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive.