Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
APPARATUS, DEVICE, SYSTEM AND METHOD
Document Type and Number:
WIPO Patent Application WO/2018/065549
Kind Code:
A1
Abstract:
A server apparatus (52), comprising a processor resource (56); and a memory comprising program elements operative to configure said processor to control. The server apparatus (52) to receive client metadata from a client device (100); select a content subject for delivery to a client device (100) in dependence on said received client metadata; transmit AR player (118a) program elements to be loaded onto a client device (100); transmit AR content (70) corresponding to said content subject to a client device (100) responsive to determining access permitted to a camera feed (122) of that client device (100); receive an image from a camera feed (122) of a client device (100) and input said image to an image recognition service (76) to determine a presence of a marker image in said image; responsive to determining presence of said marker transmit an AR initiate instruction to AR player program (118a) elements loaded onto a client device (100) to initiate rendering (348) of said AR content (70) over said marker in a camera feed (122).

Inventors:
GRAHAM ANDREW (GB)
QULI ARIFF (GB)
SOLTANI DANA (GB)
JOSHI VIKRUM (GB)
HILLER PATRICK (GB)
HARRIS MICHAEL (GB)
MORALES BRIAN (GB)
SCHMALTZ RYAN (GB)
Application Number:
PCT/EP2017/075416
Publication Date:
April 12, 2018
Filing Date:
October 05, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BLIPPAR COM LTD (GB)
International Classes:
H04N21/431; H04N21/234; H04N21/4402; H04N21/45; H04N21/6587; H04N21/81
Foreign References:
US20120116728A12012-05-10
US20140340423A12014-11-20
US20140171116A12014-06-19
US20140160161A12014-06-12
US20120263154A12012-10-18
Other References:
None
Attorney, Agent or Firm:
POTTER, Julian (GB)
Download PDF:
Claims:
aims:

1 . Server apparatus, comprising:

a processor resource; and

a memory comprising program elements operative to configure said processor to control said server apparatus to:

receive client metadata from a client device;

select a content subject for delivery to a client device in dependence on said received client metadata;

transmit AR player program elements to be loaded onto a client device;

transmit AR content corresponding to said content subject to a client device responsive to determining access permitted to a camera feed of that client device; receive an image from a camera feed of a client device and input said image to an image recognition service to determine a presence of a marker image in said image;

responsive to determining presence of said marker transmit an AR initiate instruction to AR player program elements loaded onto a client device to initiate .rendering of said AR content over said marker in a camera feed.

2. Server apparatus according claim 1 , said program elements further operative to transmit said image over a communications network to an image recognition server apparatus to implement said image recognition to determine said presence of said marker in said image and receive a message indicative of said marker present in said image.

3. Server apparatus according to claim 1 , said program elements further operative receive plural images from a camera feed.

4. Server apparatus according claim 3, said program elements further operative to transmit said plural images over a communications network to an image recognition server apparatus to implement said image recognition to determine said presence of said marker in said plural images and receive a message indicative of said marker present in said plural images.

5. Server apparatus according to any preceding claim, said program elements further operative to receive a message from AR player program elements loaded onto a client device indicative of access permitted to a camera feed.

6. Server apparatus according to any preceding claim, said program elements further operative to determine from said metadata access permitted to a camera feed.

7. Server apparatus according to claim 5 or claim 6, said program elements further operative to transmit non-AR content corresponding to said content subject to a client device for display via a display controller on a screen of a client device.

8. Server apparatus according to any preceding claim, wherein said server apparatus is distributed over a communications network.

9. Server apparatus according to claim 8, wherein said AR player program elements, image recognition and AR content are hosted on separate servers.

10. Server apparatus according to any of claims 1 to 8, wherein said AR player program elements and AR content are comprised in a single file.

1 1 . Server apparatus according to any preceding claim, said program elements further configured to receive data indicative of interaction with said AR content, said interaction through said client device.

12. Server apparatus according to claim 12, said program elements further configured to receive one or more tracking pixel fires.

13. A client device, comprising:

a processor resource; a camera; and

a memory comprising program elements operative to configure said processor to control said device to:

transmit an image from a camera feed of said camera to an image recognition service;

receive notification of a presence of a marker image in said image;

receive AR content from a server; and

responsive to said notification of a presence of said marker image in said image render said AR content in said camera feed superposed on said image marker.

14. A device according to claim 13, said program elements further operative to determine if access permitted to said camera feed and initiating a request to receive said AR content if access is permitted to said camera feed.

15. A device according to claim 13 or claim 14, said program elements further operative to transmit device metadata indicative of the AR content handling capability of said device.

16. A method of operating a server, comprising:

receiving client metadata from a client device;

selecting a content subject for delivery to a client device in dependence on said received client metadata;

transmitting AR player program elements to be loaded onto a client device;

transmitting AR content corresponding to said content subject to a client device responsive to determining access permitted to a camera feed of that client device; receiving an image from a camera feed of a client device and inputting said image to an image recognition service to determine a presence of a marker image in said image;

transmitting an AR initiate instruction to AR player program elements loaded onto a client device to initiate rendering of said AR content over said marker in a camera feed responsive to determining presence of said marker.

17. A method according claim 16, further comprising transmitting said image over a communications network to an image recognition server apparatus to implement said image recognition to determine said presence of said marker in said image and receiving a message indicative of said marker present in said image.

18. A method according to claim 16, further comprising receiving plural images from a camera feed.

19. A method according claim 18, further comprising transmitting said plural images over a communications network to an image recognition server apparatus to implement said image recognition to determine said presence of said marker in said plural images and receiving a message indicative of said marker present in said plural images.

20. A method according to any of claim 16 to claim 19, further comprising receiving data indicative of interaction with said AR content, said interaction through said client device.

21 . A method according to any of claim 16 to claim 20, further comprising receiving a message from AR player program elements loaded onto a client device indicative of access permitted to a camera feed.

22. A method according to any claim 16 to claim 21 , further determining from said metadata access permitted to a camera feed.

23. A method according to claim 21 or claim 22, further comprising transmitting non-AR content corresponding to said content subject to a client device for display via a display controller on a screen of a client device.

24. A method according to any of claim 16 to claim 23, wherein said server apparatus is distributed over a communications network.

25. A method according to claim 24, wherein said AR player program elements, image recognition and AR content are hosted on separate servers.

26. A method according to any of claim 16 to claim 24, wherein said AR player program elements and AR content are comprised in a single file.

27. A method according to any of claim 16 to 26, said program elements further configured to receive one or more tracking pixel fires.

28. A method for operating a client device, comprising:

transmitting an image from a camera feed of a camera of a client device to an image recognition service;

receiving notification of a presence of a marker image in said image;

receiving AR content from a server; and

rendering said AR content in said camera feed superposed on said image marker responsive to said notification of a presence of said marker image in said image.

29. A method according to claim 28, further determining if access permitted to said camera feed and initiating a request to receive said AR content if access is permitted to said camera feed.

30. A method according to claim 28 or claim 29, further comprising transmitting device metadata indicative of the AR content handling capability of said device.

31. A computer program, comprising computer program elements operative in a computer processor to implement a method in accordance with any of claim 16 to claim 30.

32. A computer program comprising computer program elements operative in a computer processor to configure server apparatus in accordance with any of claim 1 to claim 12 or in accordance with any of claim 13 to claim 15.

33. A carrier medium carrying a computer program according to claim 31 or claim 32.

34. A carrier medium according to claim 33 comprising at least one of the following: a radio frequency signal, an optical signal, an electronic signal, a magnetic disc or tape, solid state memory, an optical disc, a magneto-optical disc, a computer disc, digital versatile disc and a blue-ray disc.

35. A computer program product comprising a carrier medium according to claim 33 or claim 34 configured as a computer readable medium.

36. Server apparatus substantially as hereinbefore described and with reference to the accompanying drawings.

37. Client device substantially as hereinbefore described and with reference to the accompanying drawings.

38. A method substantially as hereinbefore described and with reference to the accompanying drawings.

Description:
Apparatus, device, system and method

Field

The present invention relates to an apparatus, device, system and method for providing specific data to a client device dependent on sensed input to the device. In particular, but not exclusively, embodiments of the present invention relate to delivering augmented reality content to a client device dependent on an image in a camera feed of the client device.

Background

Conventionally, before an advertisement (hereinafter also referred to as an "ad", "advert" or "AD") is displayed on a webpage or through an "application" (also termed hereinafter "app") running on ("inside an application") a mobile device, the webpage or mobile device app sends a request to an ad server to serve an ad to it. Serving an ad in this sense means sending an actual picture or video making up the ad, i.e. what the viewer sees as the ad and also termed the "creative", back to the web page or mobile app before the web page fully loads on the device or into the application. In order to decide which creative must be sent to a webpage or mobile app, the webpage or mobile app supplies a number of data points to the ad server. These might include any one or more of the following non-exhaustive list:

-URL of the web page or the name of the mobile app;

-A subset of user cookies;

-Mobile device id (IDFA or Android Advertising ID);

-Size of the container for the ad;

-Duration of the ad (for video ads); and

-Location of the user.

IDFA is a so-called Advertising Identifier which is a unique identity for each device running an iOS operating system. Such information may be referred to as client metadata as it concerns information relating to a client device and its use. Based on one or more of the data points, the ad server identifies an advertiser from a pool of advertisers who are interested to show an ad to the device corresponding to the data. In an automated programmatic model this is done based on some form of a second price auction. Once the ad server decides which advertiser gets the ad opportunity, a corresponding creative is sent to the web page or mobile app. The web page or mobile app displays the creative to the user thereby effecting service of the ad.

Many web pages or mobile apps accept a HTML5/JavaScript based creative instead of a simple static image or video file. This is the basis of the interactive ads. However, in the standard interactive ads, the HTML5/JavaScript creative is a self-contained unit that can render itself inside the container on the page or inside the mobile app. There is no additional input needed.

Summary

Viewed from a first aspect, the present invention provides a server apparatus, comprising a processor resource and a memory comprising program elements operative to configure said processor to control said server apparatus to:

receive client metadata from a client device;

select a content subject for delivery to a client device in dependence on said received client metadata;

transmit AR player program elements to be loaded onto a client device;

transmit AR content corresponding to said content subject to a client device responsive to determining access permitted to a camera feed of that client device;

receive an image from a camera feed of a client device and input said image to an image recognition service to determine a presence of a marker image in said image;

responsive to determining presence of said marker transmit an AR initiate instruction to AR player program elements loaded onto a client device to initiate rendering of said AR content over said marker in a camera feed.

Viewed from a second aspect the present invention provides a method of operating a server, comprising:

receiving client metadata from a client device;

selecting a content subject for delivery to a client device in dependence on said received client metadata;

transmitting AR player program elements to be loaded onto a client device;

transmitting AR content corresponding to said content subject to a client device responsive to determining access permitted to a camera feed of that client device;

receiving an image from a camera feed of a client device and inputting said image to an image recognition service to determine a presence of a marker image in said image; transmitting an AR initiate instruction to AR player program elements loaded onto a client device to initiate rendering of said AR content over said marker in a camera feed responsive to determining presence of said marker.

Embodiments in accordance with first and or second aspects of the present invention provides for the delivery and execution of augmented reality (AR) advertisements to enhance the interactive use of a client device without the client device having to be pre- configured for augmented reality advertisement delivery. Typically, the marker is an image of something associated with the content subject and or AR content, the AR content being appropriate for rendering, in particular 3-D-rendering, over the marker in the camera feed.

Typically, said image is transmitted over a communications network to an image recognition server apparatus to implement said image recognition to determine said presence of said marker in said image and receive a message indicative of said marker present in said image. Transmitting the image to an image recognition server avoids the need to implement image recognition functionality on a server functioning as an augmented reality advertisement server. In this way, image recognition may be centralised and in particular a specialist image recognition service may be utilised. Optionally, image recognition functionality may be implemented on server apparatus itself.

Suitably, plural images from a camera feed are received by the server apparatus and determination of the presence of a marker is carried out for each of the more than one image. In this way, a greater certainty as to the identification of a marker or not may be achieved. In such an arrangement, plural images are transmitted over a communications network to an image recognition server apparatus to implement said image recognition to determine said presence of said marker in said plural images and receive a message indicative of said marker present in said plural images. In a particularly suitable embodiment, the server apparatus may be configured to receive a message from AR player program elements loaded onto a client device indicative of access permitted to a camera feed. Thus, if any reason the server has been unable to determine whether or not access to the camera feed of the client device is permitted, for example by utilising a lookup table or some other reference source, the AR player program itself may determine whether or not access to the camera feed is permitted and relay the result to the server. Thus, it is possible to implement an embodiment in accordance with the present invention on a client device about which no advance information is known.

Conveniently, non-AR content corresponding to said content subject may be transmitted to a client device for display via a display controller on a screen of a client device in the event that access to the camera feed is not permitted. Thus, an ad may be served to a client device even though an AR operation is not possible.

Suitably, the AR content that is sent to the device may be determined by detection of a specific marker from said camera feed of the said device. The said image recognition server might be capable of identifying a very large number of said markers or real-world objects and the AR advertisement may be dynamically adjusted to what is being viewed through said device camera feed.

The server apparatus may be distributed over a communications network which utilises available server resource and also provides an element of redundancy in the event that there is a failure of any one or more physical devices.

Typically, said AR player program elements, image recognition and AR content are hosted on separate servers in order to take advantage of specific configurations and architecture is suitable for respective functions. For example, certain functions may require a large amount of memory or the ability to download large amounts of data and therefore require large bandwidth. Conveniently, said AR player program elements and AR content may be comprised in a single or multiple files.

Generally the server apparatus is configured to receive data indicative of interaction with said AR content, said interaction through said client device. In this way, appropriate user metrics may be received processing the success or not of a particular advertising campaign for example. Typically, the server apparatus will receive one or more tracking pixels.

Viewed from a third aspect, the present invention provides a client device, comprising:

a processor resource;

a camera; and

a memory comprising program elements operative to configure said processor to control said device to:

transmit an image from a camera feed of said camera to an image recognition service;

receive notification of a presence of a marker image in said image;

receive AR content from a server; and

responsive to said notification of a presence of said marker

render said AR content in said camera feed superposed on said image marker.

Viewed from a fourth aspect the present invention provides a method for operating a client device, comprising:

transmitting an image from a camera feed of a camera of a client device to an image recognition service;

receiving notification of a presence of a marker image in said image;

receiving AR content from a server; and

rendering said AR content in said camera feed superposed on said image marker responsive to said notification of a presence of said marker image in said image.

Embodiments in accordance with the third and or fourth aspects of the present invention, provide a client device environment in which augmented reality content such as augmented reality advertisements may be executed without any native or preconfigured software been loaded onto the client device. For example, any application running on a mobile client device may call an augmented reality ad server to implement the third and/or fourth aspect of the present invention.

Suitably, the client device determines if access is permitted to said camera feed and initiates a request to receive said AR content if access is permitted to said camera feed. In this way, AR content is only downloaded if it can be utilised. This saves on the use of bandwidth and also does not incur processing on the client device for something which may not be capable of being utilised.

Generally, the client device transmits device metadata indicative of the AR content handling capability of said device. In this way, the client device may identify its functions, utilities and permissions utilising generally widely recognised data.

Typically, first, second, third and/or fourth aspects of the present invention may be implemented by way of a computer program, such a computer program is typically provided on a carrier medium. Carrier media may be a different type but can include at least one of the following: a radio frequency signal, an optical signal, an electronic signal, a magnetic disc or tape, solid state memory, an optical disc, a magneto-optical disc, a computer disc, digital versatile disc and a blue-ray disc.

List of figures

Figure 1 illustrates a block diagram of an affinity server and data entities in accordance with an embodiment of the invention;

Figure 2 illustrates a block diagram of a communications device and network elements in accordance with an embodiment of the invention; and

Figure 3 is a process control flow diagram for a system in accordance with the present invention. Description

Viewed in general outline, when an ad server decides to send an augmented reality (AR) creative in accordance with an embodiment of the present invention to a web page or application running on a mobile device, the content that is finally displayed to an ad viewer is not fully determined at the time the decision as to which creative to send is made. The interaction of a user of a device on which the ad is viewed with the ad will depend on an extra sensory input: in the described embodiment - what is in the camera feed from the device camera lens.

First, the AR creative is sent to the user device and is configured to establish if it has access to the camera feed from the device camera. Not every browser on every Operating System (OS) allows access to the camera feed on a device. Also, not every mobile app has access to the camera feed. For example, a weather app probably does not have access to the mobile device camera feed but the photograph app does.

If the AR creative determines it has been loaded into a container on a web page or a mobile app which has access to the device camera feed, it attempts to capture the camera feed. A "container" may be considered to be an application program or subsystem in which the program building block typically known as a component is run, such as an iframe in an HTML document. If explicit user permission is needed to capture the camera feed, the AR creative displays on the display screen of the device a so-called "call to action". The "call to action" could be an animation, video or a static image asking or informing a user to click or tap it to launch the AR ad. When the camera feed is captured, an image from it is sent to an image recognition service (configured as an Application program Interface (API)) every couple of seconds or so. The image recognition service identifies real world objects in an image supplied through the camera feed, for example, a logo, a face, a flower, a building, or a car of a specific make and model. The ad experience is scripted to begin when a specific marker is identified in the camera feed such as a brand logo or a human face. Once the marker is identified in the camera feed, the AR content of the creative is downloaded and rendered over it creating an augmented reality experience. When network bandwidth is or may be limited, AR content might be downloaded prior to recognition of the marker. This concept can be applied not only to existing mobile devices such as smartphones and tablets but also wearables that get a constant camera feed (e.g. so called smart glasses). The experience could be something like this: a user walks into a grocery store and when they look around through their smart glass, they can see interactive ads placed on the product boxes that are on the shelves. Or when they walk into a shopping mall, they see interactive ads on the storefronts that advertise the latest fashion/clothing they have and invite the user to come in. Or on the user's smartphone, instead of seeing simple interactive ads about a new watch, the user can see how it looks on their wrist when you point their smartphone camera toward their hand.

Figure 1 illustrates a network architecture 50 comprising an ad server 52 which may communicate with image recognition server 76 for recognition of objects in an image provided to it and a client device 100, such as a computing device or mobile device such as a smartphone, via a network 101. Other 3 rd party ad servers, 74, may also be able to communicate with ad server 52 to provide support services or operate independently thereof. Optionally or additionally the network comprises content server 77 which provides augmented reality content and is accessible over a network 101 by advertisement servers 74 and 52, and client device 100. The ad server 52 is a server dedicated to managing the delivery of AR ads to client devices 100. The ad server 52 includes an ad server computing system 20 comprising a server network interface which communicates with clients over HTTP or HTTPS protocol 54; a server processor resource 56; and an interface module 58 for communication with an Ad operations manager or technician operating the ad server 52. The ad server computing system 20 also includes memory 62 for storing program elements and data to implement various modules for storing data and content.

Memory 62 includes ad server management module 64 for managing serving requests for ads, determining which ad to transmit to a client and generally controlling the operation of server 52. The ad server computing system 20 also comprises an AR content management module 66, comprising program elements for configuring processing resource 56 to manage requests and data received by the ad server 52 from a client device 100 and also transmit data and content to a requesting client device 100. AR content management module 66 also includes program instructions operative when executed to provide overall management of the application and call respective modules as and when required, and in particular to deliver the right version of AR player and content when requested by client device 100 or client interface. Additionally, such instructions may also be input and output through the user interface 58. AR content is stored in module 70 of memory store 62. The various modules and resources of ad server computing system 20 communicate over bus 60.

Memory store 62 also comprises general memory, not shown, in which various data and information may be stored. For example, in accordance with an embodiment of the present invention a list of client device identities of client devices that allow access to their camera feed is stored. Inspection of such a list allows early determination of whether or not an augmented reality content element may be utilised by a client device 100.

The servers 52, 74, 76 and 77 are merely illustrative and other servers and network coupled devices may also communicate with the device 100 and server 52.

References to a network and communication made above should be construed broadly to include many types of network and networks of networks, including the public service telephone network where appropriate, cable systems, wireless networks and the Internet.

Figure 2 illustrates a block diagram of communications device 100, according to one embodiment. The communications device 100 is connectable via network connection 1 13 over a communications network 101 to a number of servers 52, 74 and 76.

The communications device 100 includes a computer memory 103, a processor 104, an RF (Radio Frequency) interface 105, a screen 106, a keyboard 107, a microphone 108 a speaker 109, a Bluetooth interface 1 10, an infrared interface 1 1 1 , connectors 1 12, a network interface 1 13, a digital camera 122 and a data bus 125. As will be evident to the person of ordinary skill in the art not all these devices are necessary for an implementation of the present invention but such things are typically included in communications devices.

A number of application programs 1 14 are stored in computer memory 103. Respective contacts databases 1 15 of the communication application programs 1 14 store details of the contacts that are associated with the respective communications application programs. For example, a communications application program 1 14 corresponding to an email mode of communication would include a contact database consisting of email addresses and contact identifiers.

The ad container 123 resides in one or more of the application programs 1 14. The ad container communicates with the Ad server 74 through a communications interface 120 which is provided by the application program 1 14 or operating system of the client device 100. Ad container 123 initiates an Ad request to the Ad server 74 for the download of an AR creative unit 1 18 which includes AR Player 1 18a. Optionally, the Ad request may be redirected to AR content distribution server 52. AR Player 1 18a is configured to communicate with camera feed 121 and provide images from camera feed 121 to image recognition server 76. AR player 1 18 also includes a 3D rendering engine which can render 3D AR content 1 19 on camera feed 121 when AR player 1 18a downloads 3D AR content from AR content distribution server 52 to ad container 123. AR creative unit 1 8 comprises computer program elements, such as instructions, executable by processor resource 104 to configure it to perform the various functions and activities inside ad container 123 such as the capturing camera feed 12, 3D rendering 1 18b and communicating with Ad server 74, AR content distribution server 52 and image recognition server 74 through a communications interface 120 provided by the client device operation system.

Also in memory 103 is a key handler 1 16 comprising a software module configured to respond to keyboard 1 10 generated events. The key handler 1 6 provides appropriate inputs to the applications 1 14 and to a control module 1 17 that provides overall control of the processes leading to initiation of one or more applications 1 14 and ad containers 123.

Turning now to figure 3 there is illustrated a process flow control diagram for a server-client network arrangement in accordance with an embodiment of the present invention. In the described embodiment, the AR content relates to an interactive advertisement ("ad"). As is usual, a client device 100 initiates a request, step 306, for an advertisement from within an application or web browser in accordance with the way in which the application is being executed or web page is being displayed by the web browser. The request is communicated through network interface 1 13 and over communication network 101. Client metadata usually accompanies such a request. On the server side, 52, the request is received through a network interface 54 and the ad server management module 64 is invoked to review the client metadata to determine if the container is able to access the camera feed for a camera located on the device, step 308. In this regard, ad server management module 64 configures processor 56 to inspect the list of device identities known to provide access to the camera feed and stored in memory 62. If the decision, step 310, is "No" then process control flows to step 312 at which point the ad server management module 64 configures processor 56 to access a store of non-augmented reality advertisements and select one in accordance with the client metadata and/or other criteria for transmission through network interface 54 to client device 100. Client device 100 receives the non-augmented reality advertising through network interface 1 13 and communication interface 120, and control module 1 17 configures processor 104 to display the non-augmented reality advertisement directly on the display screen 106, step 314.

If the decision, 310, is "Yes" or "Don't know" because the client identity is not in the stored list, process control flows to step 316 where ad server management module 64 is invoked which configures processor 56 to apply an advertisement selection procedure to determine which one of augmented reality (AR) advertisements stored AR content 70 is to be supplied to client device 100. As with the non-augmented reality advertisement, the client metadata, amongst other things, may be utilised in the selection procedure to determine which AR advertisement is selected.

In the described embodiment, The AR advertisement may be created by a scripting language such as Blippar Augmented Reality Developer API which is available through https://blippar.com/en/products/augmented-reality-api. The AR advertisement is optimized for serving as a rich media advertisement unit in accordance with the ad industry guidelines such as IAB HTML5 for Digital Advertising Guidelines. In the described embodiment, the AR advertisement is hosted on server 52, which may be termed an advertisement server in that it handles requests for advertisements. Optionally, the AR advertisement zip file may be retrieved from a third party content distribution server 77. Respective AR advertisements have a public URL which may be used to access it for downloading. Multiple versions of an AR advertisement are created and stored in order to support serving the advertisement to different environments (different browsers, different mobile or wearable devices, different operating systems or different publisher settings which might limit interactivity or access to the camera feed). At step 318 ad server management module 64 configures processor resource 56 to identify an AR player compatible with the identified client device 100 from the AR content module 70 and transmit computer program elements for that AR player or its public address to client device 100 through the client interface 54 and over network 101. In the described embodiment, AR player 1 18a is based on HT L5 and JavaScript and follows IAB HTML5 for Digital Advertising Guidelines.

At step 320 client device 100 receives the AR player program elements and stores them in the device as appropriate. Process control for client device 100 then flows to step 322 at which the AR player 1 18a determines whether or not access is granted to the camera feed 121 for the camera 122 of client device 100. If the decision at step 324 is that access is denied to camera feed 121 AR player 1 18 a configures processor resource 104 to initiate a request for a non-augmented reality advertisement through communication interface 120 and network interface 1 13 to server 52 over network 101.

If the decision at step 324 is that access to the camera feed is permitted process control flows to step 328 where AR creative 1 18 configures processor resource 104 to transmit a request through communication interface 120, network interface 1 13 and over network 101 to server 52 for an AR advertisement. The request for the AR advertisement is received at server 52, step 330 and ad server management module 64 configures processor resource 56 to transmit the AR advertisement selected from the AR content 70 at step 316 through API 54 over network 101 to client device 100.

Within client device 100, at step 332, user permission is requested for access to the camera feed if the operating system or application/container for which the request for augmented reality advertisement has been made requires such user permission. At step 334, client device 100 receives the augmented reality advertisement content and stores it locally on the device 100. Process control for client device 100 then flows to step 336 at which AR player 1 18a configures processor resource 104 to capture images from camera feed 121 and transmit them through communication interface 120 and network interface 1 13 across network 101 to an image recognition service such as provided by image recognition server 76. At step 338, server 76 receives images and is configured to determine the presence of a marker image in the images received from client device 100. If the decision at step 340 is that there is no marker image present, the image recognition service such as image recognition server 76 transmits a message to client device 100 over network 101 to notify AR player 1 18a of the decision. AR player 1 18a continues to capture consecutive images from camera feed 121 and transmit them through communication API 120 and network interface 1 13 across network 101 to image recognition server 76 until a marker image is positively identified in the image. A user has control over their interaction with the AR advertisment and can terminate that interaction at any time. Using and advertisement for a wristwatch as an example; if a user initiates an AR advertisement by tapping on a "call to action" image while pointing to or then points the device camera to the sky or other space empty of a suitable marker, nothing will happen. The AR player will take consecutive images of the sky and send it to the image recognition server but because the image of a wrist is not present in those images, nothing will happen. The user can close the advertisement or point to their wrist to start the render of the wristwatch on their wrist. Some advertisement containers in which advertisements are timed and the hosting application or web page closes them if the advertisement does not finish processing within a certain time threshold. Consequently, if the decision at step 340 is "No", process control flows back to step 336 the further images are sent from the camera feed to the server. However, if the user has sent an instruction to stop the advertisement, step 346 then step 342 provides a "Yes" decision and process control flows to step 354 where the process is stopped.

In one embodiment, there may be a store of marker images corresponding to the AR ads that can be delivered and which is inspected by the image recognition service. Optionally or additionally, the marker image may be something that is recognised as being something the AR player can render AR content over.

If the decision at step 340 is "Yes", then at step 344 the image recognition service, e.g. image recognition server 76 notifies AR player 1 18a over network 101 of the presence of a marker image in the images provided to the server 76. In response to receiving the notification of the presence of marker images at client device 100, AR player 1 18a configures processor resource 104 to invoke 3D rendering engine 1 18b which configures processor resource 104 to render AR advertisement content over the marker present in camera feed 121. In this way, 3D contents in the AR advertisement can be placed within the image seen through the client device camera 122. For example, if the AR advertisement relates to a wristwatch and the market image is a human wrist, 3D rendering engine 1 18b may render a 3D image of the wristwatch over the image of the human wrist within the camera feed 121 and show various perspectives and views of the wristwatch as the human wrist is moved.

In the described embodiment, one or more marker images are defined for a particular AR advertisement and acts as a trigger to invoke 3D rendering of the AR content of an AR ad over that marker image in the camera feed. In order to assist a user of a client device in invoking AR content, a suitable message or dialogue box may be displayed instructing the user to view a particular item in order to capture an appropriate marker image in the image feed in order to initiate 3D rendering of the AR content.

At step 350 client device 100 monitors user activity during playing of the AR advertisement reports various tracking metrics up to server 52, which receives the tracking metrics report, step 352, and stores it or forward it to appropriate storage location or entity for further processing.

3D rendering engine 1 18b may be built based on any suitable 3D rendering program or software. In the described embodiment the 3D rendering engine is based on WebGL or web graphic library or other suitable 3D rendering engine.

The AR player instructs processor resource 104 to fire custom tracking pixels that track specific actions inside an AR advertisement, e.g. a specific button is tapped or user has rotated the phone to see a different view of the AR content. These custom tracking pixels are defined by the developer of an AR content in accordance with the present invention and have to be embedded in the AR advertisement configuration. The AR player 1 18a also configures processor resource 104 to fire third-party tracking pixels for delivery verification, demographic verification, and viewability. These tracking pixels are added to the AR advertisement configuration. In the described embodiment, the AR player 1 18a can render an AR ad inside an HTML iframe or an MRIAD compatible mobile container.

Insofar as embodiments of the invention described above are implementable, at least in part, using a software-controlled programmable processing device such as a general purpose processor or special-purposes processor, digital signal processor, microprocessor, or other processing device, data processing apparatus or computer system it will be appreciated that a computer program for configuring a programmable device, apparatus or system to implement the foregoing described methods, apparatus and system is envisaged as an aspect of the present invention. The computer program may be embodied as any suitable type of code, such as source code, object code, compiled code, interpreted code, executable code, static code, dynamic code, and the like. The instructions may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language, such as C, C++, Java, BASIC, Perl, Matlab, Pascal, Visual BASIC, JAVA, ActiveX, assembly language, machine code, and so forth. A skilled person would readily understand that term "computer" in its most general sense encompasses programmable devices such as referred to above, and data processing apparatus and computer systems in whatever format they may arise, for example, desktop personal computer, laptop personal computer, tablet, smartphone, smart glass, or other computing device.

Suitably, the computer program is stored on a carrier medium in machine readable form, for example the carrier medium may comprise memory, removable or non-removable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Compact Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD) subscriber identity module, tape, cassette solid-state memory. The computer program may be supplied from a remote source embodied in the communications medium such as an electronic signal, radio frequency carrier wave or optical carrier waves. Such carrier media are also envisaged as aspects of the present invention. The computer program may comprise more than instructions, for example parameters and of data for the computer program and as such a computer program may generally be referred to as comprising computer program elements in order to encompass such parameters, data and other things for the computer program.

As used herein any reference to "one embodiment" or "an embodiment" means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase "in one embodiment" or the phrase "in an embodiment" in various places in the specification are not necessarily all referring to the same embodiment.

As used herein, the terms "comprises," "comprising," "includes," "including," "has," "having" or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, "or" refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).

In addition, use of the "a" or "an" are employed to describe elements and components of the invention. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.

In view of the foregoing description it will be evident to a person skilled in the art that various modifications may be made within the scope of the invention. For example, although languages such as HTML5 and JavaScript have been referred to in the specific description such reference is by way of illustrative example only and other comparable languages may be used, including earlier or later versions of those explicitly mentioned if appropriate. Also, although formats such as JPEG and PNG have been referred to in the specific description such reference is by way of illustrative example only and other comparable formats may be used, including earlier or later versions of those explicitly mentioned if appropriate.

In the foregoing various references have been made to webpages, applications and mobile devices. Such terms have their normal meaning within the art but without limitation also include the following. A webpage, or web page, is document that is suitable for distribution over the World Wide Web and for display on web browsers. A web browser is software that displays webpages on a display screen of a computer or mobile device such as a smartphone. The webpage is the displayed aspect of a computer file typically written in a so- called "mark-up" language such as Hyper Text Markup Language (HTML) or similar language. Web pages are available from web servers accessible over a network by network coupled computer or mobile devices. Applications are computer programs generally designed to provide some form of user functionality such as a word processor function or a drawing function. When applied to mobile devices such as smart phones and tablets the term application may refer to such things as a word processor function but also refers to very specific functions for which a specific application may be invoked, for example a calculator function, a connection to a news website (a collection of webpages), a telephone function or text messaging function. A mobile device is any device which does not require a wired connection to operate, either in terms of power or in communications connectivity. Without limitation, a client device may be any device, mobile or not, that can communicate with a server apparatus over a communications channel, for example a network such as the Internet.

The term HTML5 used herein refers to the fifth version of the HTML standard available at https://html.spec.whatwq.org. JavaScript refers to a web browser presentation language the standard for which may be found here: http://www.ecmainternational.org/publications/standards/Ecma -262.htm.

The term "JPEG" used herein refers to a coding and compression standard of the Joint Photographic Experts Group and details may be found here: https://j eg . org/jpeg/. The term "PNG" used herein refers to the PNG Specification which may be found here: https://www.w3.orq/TR/PNG/. Various examples of client metadata have been disclosed in the foregoing but embodiments in accordance with the invention are not limited to such examples or combinations thereof. Other information or data concerning a client device, its use and the applications on it may also be utilised and may also be considered metadata. Additionally, although client devices such as a mobile device or smartphone have been disclosed, client devices may also include wearable devices such as smart glasses, for example Google GlassĀ®. Other display devices may also be configured as client devices or to display information provided by client devices.

In the embodiment described above, image recognition is conducted in an image recognition server, 76, separate from the ad server 52. However, functionality of image recognition server 76 may be included in ad server 52 or distributed over a plurality of servers depending upon the requirements of the network architecture or implementation. Additionally, although AR content has been described as originating on ad server 52 it may be provided by another ad server such as third-party ad server 74 or on a content distribution server configured for delivering AR content.

Although embodiments in accordance with the present invention have been described with reference to process control flow diagrams and with reference to "steps" embodiments in accordance with the present invention are not necessarily limited to the specific order in which the steps occur and may be performed in order other than specifically disclosed herein. Additionally, specific examples of 3D rendering engines and software have been disclosed but embodiments in accordance with the present invention are not limited to rendering engines such as are disclosed any suitable 3D rendering engine.

Specific languages will develop the tools mentioned in the present disclosure not limitations respect of embodiments of the present invention and other programming languages or development tools may be utilised.

The scope of the present disclosure includes any novel feature or combination of features disclosed therein either explicitly or implicitly or any generalisation thereof irrespective of whether or not it relates to the claimed invention or mitigate against any or all of the problems addressed by the present invention. The applicant hereby gives notice that new claims may be formulated to such features during prosecution of this application or of any such further application derived therefrom. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in specific combinations enumerated in the claims.