Sign In to Follow Application
View All Documents & Correspondence

Automatically Instrumenting A Set Of Web Documents

Abstract: Embodiments of the invention provide a method and system for automatically instrumenting a set of web documents, such as web pages, as well as embedding structures that present advertising content via the web pages. The instrumenting automatically embeds tags that enable usage information associated with the web documents to be tracked and recorded. Many hundreds or thousands of web pages can be automatically modified without user intervention, enabling comprehensive reporting and tracking to be performed on each page. The web pages are analyzed and insertion points intelligently located. Changes can be verified to ensure that no undesirable effects resulted from embedding the content The tags can receive parameters customized to the level of users and pages. The tags, insertion information, and other configuration information can be stored in a central repository to make subsequent tagging easier.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
15 April 2010
Publication Number
39/2010
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2019-06-27
Renewal Date

Applicants

MICROSOFT CORPORATION
ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399

Inventors

1. STEVENSON, DANIEL C
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
2. DABROWSKI, OLIVIER
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
3. TEODOSIU, DAN
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
4. BOZIC, KRESIMIR
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
5. SEVERINI, PAOLO
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
6. COSTACHE, CRISTIAN
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
7. GRANT, EUAN
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399
8. ZIGMAN, ERIK
C/O MICROSOFT CORPORATION, INTERNATIONAL PATENTS, ONE MICROSOFT WAY, REDMOND, WASHINGTON 98052-6399

Specification

SUMMARY

[0001] The invention is defined by the claims below, but summarily, embodiments
of the invention include systems and methods of automatically instrumenting a set of documents, typically web pages. We explain " instrumenting " in greater detail below, but summarily it refers to the process of modifying - via the insertion of customized executable code, content, or advertising - a document or a specific set of related documents (such as a set of web pages that are part of an e-commerce purchase process, or one of several experimental variations on a website layout), so that actions taken by aid users with respect to that document are transmittable for recording, analysis, billing, and other business purposes. An embodiment of the present invention can instrument any number of pages, even hundreds or thousands of pages automatically.

[0002] Other illustrative aspects of the invention include facilitating smart validation
of code insertion points, evaluation of the impact of tagging (inserting the code), parameterization of the tags based on user input or configuration (including technologies such as providing a profile id, page aliasing/nicknaming, events, e-commerce variables, etc.), the use of a central tag repository (e.g., 142) to maintain die integrity of instrumentation (which allows for simply undoing of changes an ability to instrument/tag for A/B and multivariate testing applied across a specified s of documents, and the insertion of content ad blocks into pages that minimizes the native impact on &e page (appearance may change, but not function). This partial listing of aspects should not be construed as an indication that other aspects do not exist

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

[0003] Embodiments of the invention are described in detail below with reference to
the drawing figures, which form a part of this disclosure, and are incorporated by reference
herein, and wherein:

[0004] FIG. 1 A. depicts an illustrative operating environment suitable for practicing
an embodiment of title invention;

[0005] FIGs. IB-IE depict illustrative programmatic code that is to be embodiment in
a set of web pages according to an embodiment of the invention;

[0006] FIG. 2 depicts an illustrative implementation of an "insert before start' rule
according to an embodiment of the invention;

[0007] FIG. 3 depicts an illustrative implementation of an **insert after start" rule
according to an embodiment of the invention;

[0008] FIG. 4 depicts an illustrative implementation of an "insert before end" rule
according to an embodiment of the invention;

[0009] FIG. 5 depicts an illustrative implementation of an "insert after end" rule
according to an embodiment of the invention;

[0010] FIG. 6 depicts an illustrative result stemming from applying a lexical
analyzer to programmatic code according to an embodiment of the invention;

[0011] FIGs. 7A and 7B depict illustrative marking schemes according to
embodiments of the invention;

[0012] FIGs. 8A-8M depict illustrative screenshots of a user interface according to
an embodiment of the invention;

[0013] FIG. 9 depicts an illustrative method for embedding custom content
according to an embodiment of the invention; and

[0014] FIG. 10 depicts a second method according to another embodiment of
installing tracking scripts according to an embodiment of the invention

DETAILED DESCRIPTION

[0015] As briefly mentioned, one of the novel aspects of an embodiment of the
instant invention is the ability to automatically insert web-analytics tags into documents (web pages, which may include text files, dynamically modifiable files, etc.), thereby simplifying a user's experience of inserting those tags in each page to be instrumented. In one embodiment tags take the form of delimited HTML and/or scripts (e.g., Javascripts and the like) that instrument the web pages; that is, enable web-page usage information associated with the web pages to be tracked. Some skilled artisans use various toms to capture the concept of instrumentation. For example, 'web analytics" is sometimes referred to as "website instrumentation" by some web-analytics providers. An illustrative web-analytics provider is Omniture, Inc. (NASDAQ: OMTR, see also omniture.com). Many monitoring services such as those of Omniture exist. Performing monitoring services is not an overarching issue addressed by this invention. Rather, an aspect of the invention is concerned with equipping a website or set of web pages with ability to be monitored. A home's security cannot be monitored until a security system is installed. While many vendors offer monitoring services, one of our concerns is akin to installing the security system itself; albeit in an automatic way.

[0016] Instrumentation of a website includes inserting web-analytics-related scripts
into a web page. This technique will be variously referred to herein as "tagging" because
what is inserted in web pages is code portions delimited by HTML tags. Tagging is not limited to insering web analytics but can also include embedding content advertisements as well

[0017] Thus, one aspect of the invention provides an efficient automatic way to
instrument a set of web pages so that users do not even need to edit a wd> pa's source
code. Often, the web pages make up wd>site, but not always. Thus, we discuss
"instrumentation" or "instrumenting" a wd> page, we mean to refer to equipping a web page
with the ability to have usage information of that w page monitored. Illustrative web-
page usage information includes information about the behavior of website visitors 124
including visitation events (ways that people 124 interact with a web page), and can include,
among other things, information about objects decided on a web page information about
documents viewed, pages visited, information about downloads downloaded from a web
page, information about controls activated on a wd) page information about items
interacted with by a ma on a web page, information about media objects rendered by way
of a web page, and the like. This allows web ate OWIMTS to view other and other
presentations that detail various aspects of use of website.

[0018] Implementing embodiments of the present invention in the context of ocmtent
providers is as applicable to ocnnmerce ptaviders inasmi»ji as onbeng ituar ads into pages, and tracking effectiveness of than, is desirable.

[0019] Turning now to FIG. 1, an illustrative operating environment citable for
practicing an embodiment of the present invention is provided and referenced generally by the numeral 110. As illustratively shown, various devices are coupled to each other directly or indirectly by way of a network 112. A web server 114 hosts a web 116 that is composed of various web pages. Not all wd) images are shown. A portion of web pages is reforced by numeral 118. As will be explained in great: detail below, ttie aomce code of some of these web pa will be modified so that, among other things, usage infonnation can be tradced.

[0020] These modifications are represented by the cloud having reference numeral
120. That is, cloud 120 references the programmatic code (tagging structures) that is added to web pages 118 that allows various functional aspects to be realized, sudi as traddng usage information and providing advertising contort. Illustrative exanq>les of progranunatic code/tags 120 is found in FIOs. IB - IE. In some emboneote instiwnentatiQn code 120 fadlitates web-page usage tracking. In o&er embodinMnts, instrumentation code 120 fadlitates presoiting advotising content.

[0021] Briefly turning to FIGs IB - IE, we presented mere examples of tags, or
anbeddable customized content. The syntax and formats can cotainly vary. Box 160 of FIG. IB illustrates a first example of wd>-analytics tagging. Box 162 of FIG. IC ws another. FIG. ID illustrates a more abstracted syntax, whidi iUustrates a source iication 164, a type indication 166, a user identifier 168, 170, and a type indicator 172 that, in this case, is associated with identifier 168. These are not &e only types of tags, but are examples. FIG. IE depicts an illustrative advertising-related tag that provides visual information of the object to be embedded.
[0022] As will also be explained in greater: detail below, wd) servo* 114 can be
enhanced to include a notification client 122, which modifies web control on die fly in one embodiment so that as a wd) page is requested, it is modified in real time to include code 120 that is present at the time it is presented to a view: 124. For the sake of simplicity, we will refer- to web pages 118 by reference numeral 118 even thought it may actually be the case that not all of the wd> pages will be modified. That is, in some cases, only a portion of web pages are modified.

[0023] To help illustrate an embodiment of the present invention, it will be assumed
that website 116 is to be instrumented. That is, w pages 118 are to receive bedded content 120. Much of the present invention revolves around inserting or bedding programmatic code 120 that facilitates monitoring a web pa A wel)site may be composed of several hundreds or the thousands of pages/documents. An embodiment of the present invention allows for an automated im)cess to inspect an entire set of web pages, intelligently determine an insertion point to insert code 120 that will not affect the appearance on the website of the wd> page, select an apptopasit tag, and insert it at the determined insertion point

[0024] To do this, in one embodiment, a user utilizes a dioit machine 126 that has
the ability to run a network browser: 128. We will refer to client miudiine 126 as user 126 because it is an illustrative device that a user would use to instrument a website and to distinguish sudi a user of the invention fixnn w€l>site viewcfs 124, wlx> are website visitors. Network browser: 128 can be an Internet Inowser, such as Firefox, Safiiri, Opat Mozilla, Internet Explorer, or the like. A client-side application 130 prests a user inter&ce 132 on computing device 126 by way of browsa 128 in one embodiment In one embodiment user interface 132 includes various soieens and controls, whidi ore generally referenced by numo-al 134.

[0025] Client {plication 130 is a web-based client ilicatiim in one embodiment
For exaiiq>le, climt ypUcation 130 may take the fonn of an ActiveX control or similar. In
othor embodiments, it is a stmid-alfme executable or a phio/add-in that si:lmieiits a
local software {Q)plication sudi as a web-authoring tool fliat is med to create «■ mau
wsites. In one onbodiment, client >plication 130 collabcmites with a sarvar-si(te
>pIication 136, which nms on a server 138, whidi we wiH refer to as an instrumoitation
servo- to help make refo-endng to it easier. Of course it could take Hbs form of a variety of
computing devices such as a computer, ltop, etc. Instrumoitation server 138 can be any
computing device that performs the various functions that will be described herein. In some
onbbdimaits, server 138 includes a monoiy that makes availaUe climt lication 130 to
be accessed in real time, or downloaded ai installed. This mesoxxy does not need to be
associated with servo-138, but could be in another location accessible by user 126.

[0026) In one onbodimoit, clioit q)plication 130 wcnics together with server-side
application 136 to instrument wd>site 116. hi other embodimeiits, client q)plicati pies 118 are being modified. In oiba embodiments, instrumentation server 138 inovictes aocera to tag repository 140, whidi stores tags or infonnaticm about tags that can be added to web pages 118. As previously mentioned, the tarn "tag" refers to a portion of code tiut is embedded in a web page that is delimited by HTML tags. Typically, a tag takes Ute form of a script, niustrative tags 120 are own in FIOs. IB - IE, whidi are illustrative because the tags could take on a variety of finms. Unse tags do not i»ed to be sICHtd in rq>ositsitory).

[0027] To help e9q>lain aspects of the present invention, rroice numeral 142
refers to a specific tag in tag rqwsitory 140. Thus, in soma ctmeB programmatic code 120 is the same as tag 142. Althougji we use the tram "specific tag," we do so only to mean tiiat it refers to a code portion that is to be insoted into one or nMwe web pages 118. That is, tag 142 may very will be different for dififoeot wd> pages. 1 anigpng it a refaience numeral will hdp explain diffoent lects of embodiments of tiie pas&eiA invention. Reftnooe numeral 142 will also be used to variously refer to *'web anatyttcs," or "scripts'* which, as previously mentioned, are other terms used in the art to describe a pOTtion of code tiut is

added to a web page that allows various usage information to be tracked or content IH«sented.

[0028] More than just embedding web analytics, the presmt inventi(m can aiao
embed code that exposes advertising content. In one embodimai contoit {novider 144
provides advotising ai otho- content 146. Referaice numoal 148 imlicates a contoit tag
or actual content that can be embedded into a wd» page 118. Qmtent tag 148 may, in some
cases, be housed in tag repository 142. An illustrative content tag is shown in FIG. IE.
Although schematically shown for refo-ence purposes, tag rqwsitoiy 140 may reside within
or be a part of instrumentation server 138. Similariy, advotising and other content 146 may
form part of the same hardware that is refermced by numeral 144, a content provider.

[0029] After a website has been instrumented, a nKtnitcning service 1 SO can monitor
usage information associated with web pages 118. As mmtioned, illustrative web-page usage information includes information about visits to a wd> page, objects clicked on a wdb page, documents viewed in a website, downloads downloaded fixnn a w page, controls activated on a wd> page, itons intoacted with by a vaa on a web pag objects rendoed by way of a web page, and the like. Examples of itownloads Hmt can be downloaded are legion; a few include: PDF files (forms, product manuabX installers fm games or otiier qyplications, ring tones, music files sudi as MP3 ami WMA scHigs, soeen-saver q>plications, badcground 'Vallpaper" images, oitire software ilicatiinis, and anything eliM that can be downloaded..

[0030] Cleariy, the aforemoitioned list is but a brief ovoview of tiie infimnation
that a web-analytics program can provide. We will now disoiss ctain aspects of various componoits in greater deteil.

[0031] As mentioned, client ilicaticni 130 can provide varying levds of
ftmctionality. In cme onbodimait, it inserts tags into xamnts, whicii are often web pages. In some embodimoits, these wd) pages are stored locally, that is, on client device 126 or a storage device ocnled to climt device 126, sudi as a netw<»k-addressed-storage device (not shown). In one onbodiment, these local web pages can be modified by qyplication 130, and tibm iloaded to web saver 114. In ofba onbodiments, implication 130 interacts directly witii web pages 118, modifyii timn oa wd) server 114. In still otho: embodimoits, although not shown, shacbw or test files tooled on still another remote directory can be modified by application 130, again, wcnddng alone or in otmcat with server-side application 136. In yet anotho* illustrative embodimait, content to be tagged can reside in memory (such as the memory of w* SCTVCT 114, and the web pages 118 can

be modified on the fly. And as mentioned, not all web pages 118 need to be the object of instrumentation. Options are also available sudi as inmmeotrng an oitire wdiate, selected directories, selected files, one single file, a recurring HTML donmt on several pages, a single HTML elonoit on one page, and the like.

[0032] Client application 130 can serve a variety of pvnposes. For example, a first
illustrative purpose includes tag insertion. Tagging code 120 ((MT just *Hags*0 are onbedded into web pages 118 that are to be modified. In one embodiment, tagging otxurs consistoit with a set of predefined tagging rules, whidi in some onbodiments reside on instrumentation server 138, and in other embodiments on tag rqmsitory 140, or wd) saver 114 (as long as client application 130 knows of its location if rules are to be used). These set of rules are illustratively referenced by numeral 152 and illustratively own in tag repository 140. The tags 120 that are to be inserted will conqxise a soipt in one onbodiment, which will be made \xp of programmatic code in a soripting language. An illustrative saipting language is JavaScript
[0033] Tagging code 120 will be inserted betweoi comments, or maikos, in one
onbodiment to simplify operations sudi as detection ami rqdacement This is not a
requirement of all embodiments of the present invoition. In scnne embodimmts markers
may not be included. But in other embodiments, markers are inclisd so that the task of
determining whethor a page has akeady been instrumented, or inspecting a page for errors
will be made easier. The process oftag detection is used to detect ifawd> page has aheady
been tagged. Tagging may have been done mmually, by anotiior tool, or by a method such
as that desoibed herein. A goal of this aspect is to be flradble and to try to detect tagging,
even if it is not ocactly character-by-characto' identical to what is eqMCted.
[0034] The process of tag ddetiofi inclines deleting tags 120 that have beoi catacd
into w pages 118.
[0035] Tag replaconent allows tags 120 to be rq)laced with other tags. Differoit
reasons exist as to why this mit be desirable. A page mi| have beoi tagged with a
previous version of tagging rules 152, and it is desired to iq)date &» tagging consistent with
a newer version of the tagging rules. Alternatively, a user 126 may dedde tiiat a given page
should be instrumoited diffoently. Then again, user 126 may want to diange the value of
some of the parameters that make vtp emftiedded code 120. A rqdacement operation can be
carried out as a deletion followed by an hiserti(« in some anbodimeats.

[0036] Tag neutralization refers to tiie {nocess of eliminating fimctionality
associated with certain tags. Tags that have bem added manually may be difiScult to oitract and delete. Thus, tag neutralization allows these tags to be disabled. In one embodiment, ihc tags to be neutralized are commented out.

[0037] Page verification allows for the voification that a page is lexically valid both
before and after a tagging operation. That is, this aspect of the invention allows for verification that embedded content 120 operates the way tiiat it should. In some embodiments, this process allows for the verification that the JavaScript or other code is not broken by the tagging operation.

[0038] Many difiTo-ait types of web pages 118 can be used in connection with
various onbodiments of the present invention. For example, valid HTML documents, or documents without &tal HTML errors, can be instrumented. In some embodiinoits, dynamic pages such as ASP, ASP.net, JSP, and PHP can also be used. Illustrative examples of errors that may warrant an increased level of inspection or possibly no tag insertion include situations where: tiie content of the document does not match a codepage in META tags; the document is not a valid UTF8 document; the dooanent is not a valid UTF16 document; the document contains invalid characters (sudi aa *0' diars); the document contains more than one ta the document ooataam more tfian one tagK an tag is located before an tag; die document does not contain an tag; the document does not contain an tag corresponding to a tag; the documoit includes nKtre than one tag; Hie documoit includes more &an one tag; the document does not include a tag; a tag is located before the tag; the document does not imslude a ta the documoit includes more than one tag; the doamient includes more than one tag; a tag is located before a tag; a tag occurs after a tag; a tag occurs before an tag; a tag occurs before a ta a comment is not closed; a tag occurs before a tag; a tag occurs before a tag; a is not found; a close marker is found without an opening marker; an opening marker is found afio- an opening marker, a duplicate id is found; and/or the document is an unrecognized diaractw set.

[0039] Tagging rules 152 define the operation of text detection, insertion or
rq>lacanent, modification, neutralizaticm, etc. that should be applied to a page if rules are q)tod to be used. In some embodimaits, tagging rules 152 can reside in tag repositmy 140. A tagging library can be developed that includes a set of rules for different products used by customer 126 to instrument websites. In such an embodiment, a library of tagging rules, for different products (e.g., such as those offered by monitoring-service providers) and for differoit versions of the same product, can be stored and disttitnited to a central locaticm in one embodiment As mentioned, illustrative locati tag, such as the Pol soipt that is cited in an information disclosure statement that accompanies this a|>plication. Thus, as a result of customer choices, a different set of detection/rqlacranent/inseition rules can be applied to each page of wd)site 116. This set of niles 152 together with Hoe wd>-page content provides input data for clioit application 130.

[0040] In some embodiments, an insertion rule includes an insertion point, an
insertion location, a string to be inserted, and a rule identifio: that can be used to easily detect a tag in the page after insertion. Regarding insertion points, an embodiment of the present invoition assumes that an insotion point for instrumentation code 120 can be identified by either tiie name of a tag (for exampli page 118 to be instrumented. The Document Object Modd (DOM) is an API for HTML and XML documents. It provides a structural reinresentafion of the document, enabling modification of its content ai visual presmtation. Essentially, it connects web pages to scriirts or programming languages.

[0041] Rarding insertion locations, inserticm rules 152 will allow user 126 to
insert text before, inside, or after a specified tag in scnne onbodiments. In other onbodiments, de&ult rules can be chosoi so that a user does ix>t need to interact with the present invention beyond initiating it. In still other embodiments, suggesticms can be made fix>m which users can make a sdection. For racane, foia: illustrative selections that can be exposed to a user include "insol before start," "insert aftor start," "insert before end," and "insert after end." We will provide examples of eadL

[0042] "hisert befiire start" We will describe the "insert before start" rule with
reference to FIG. 2. As shown, an initial code smoit 210 is subjed to the nde, which may take the illustrative form 212 to produce result 214. As can be seen in code portion
214, tag 216 was inserted before the start of the body of the HTML source code, which is indicated by reference numoral 218.

[0043] The "insert after start" rule will be described with reference to FIG. 3.
Turning to FIG. 3, an initial code portion 310 is subject to a rule that may take the illustrative form shown by reference numeral 312 to produce result 314. As can be seoi, tag 316 is inserted after body tag 318 as well as a first

tag 320.

[0044] An illustrative implementation of an "insert before aid" rule will be
described with reference to FIG. 4. Turning now to FIG. 4, an initial code portion 410 is subject to a rule 412 tiiat has the illustrative format wn to produce a result 414. Illustratively, result 414 indicates that tag 416 appears before the aid of the body portion of the HTML source code, as delineated by the relevant HTML and tags, that latter of which is represented by numeral 418.

[0045] An illustrative implementation of an "insert after an rule will be described
with reference to FIG. S, wherein an initial code portion 510 is subject to a rule 512, whidi includes the illustrative format shown, to ptodacc a result 514. As can be seen in result 514, tag 516 is inserted after an aiding body tag 518.

[0046] Goierally, in the case of tags insertion, an insertion point will be defined by
the name of a tag, and optionally, die value of the "id" attribute. Thus, in some embodiments, all of ihe other non-"id" attributes of each tag can be scarded as well as the literal content inside HTML tags and the tags.

[0047] A lexical analyzer can be utilized to produce a sequence of tokens. The
lexical analyzer receives HTML text as iiqnit and will provide a sequence of tokens that correqwnd to the detection of an opoiing tag, a closing ta& an attribute name, an attribute valu a comment, and so on. The lexical analyzer can form a part of client application 130 or sava--side application 136. With reference to FIG. 6, the firuits of q>plying an initial code portion 610 to a lexical analyzer 612 is shown in box 614. It is not necessary to verify that the page is syntactically correct, that all the open tags are closed, etc. Rather, an embodiment of the present invoition will wait for a tag with a given name. When it is found, it is inserted into a queue along with information about the position of its opoiing and closing tag and the "id" attribute if present. At the end of parsing, a detomination can be made if there is an insertion point that satisfies a spedfied rule. If a tag is not found, the insertion fails in one onbodimoit Otherwise, the exact position in the docummt is known as to where the tag will be inserted. This exact locati(m can be passed as one of the parameters to an "insert" function.

[0048] Another parameter to an "insert" function is that of the "insertion rule id"
that can be used to write a maiicar for the inserted code 120. This functionality may be
useful to automatically iqxlate an oldo* version of a custom scr to allow usos to choose
one instrumentation provido* in place of aiuither, or to fiunlitate A/B testing, whidi is a torn
that we use to describe one aspect of facilitating experimoitation and variation of wsite
topology and interaction; for example, exposing a first set of options ("A") to some
customers but a second set of options ("B") to others, and u«ng the instrumoitation to
evaluate a comparative efficacy of both options. An illustrative format for an opening
marko* is as follows:

[0049J "."

[0050] An illustrative format for a closing marker follows:

[0051] "."

[0052] These are mere samples. Other items could be included, such as a time
stamp for an identifier, and some items rranoved, sudi as in table below:
Opening maAer.
Closing marker TABLE 1

[0053] We show a more goieric form of markers in FIG. 7B. But in the exanq)les
above, "product" is a fixed portion that identifies a fwoduct that is the subject of instrumenting (such as Google Analytics). "Rulejd" idoitifies a rule identifia, sudi as an integer that is provided by a configuration database. This can be retrieved from tag repository 140 in one onbodiment "Version" identifies a veracMa in tag repository 140 of a rule 152 applied for instrunMntation. An illustrative exanq is provided in FIG. 7A. And FIG. 7B illustrates a hiior-level example, whernn a bjjmung markor 710 marks the beginning of embedded code 712 (or 120), and ending maika714 marks the end. Detection and deletion of inserted tags 120 can be implemented using an HTML parser aiMl looking for one or more comment tags that contain markers (sudi as 710 or 714) with the sped&ed product and version. As metoned, this provides an easy way to detect currently embedded tags.

[0054] Of course the above is moely one example of how to denote ented tags.
There are a variety of difforait ways to denote tags, but what is CQnq)arativdy m(»e rdevant is that in some onbodimoits tags are somdiow daaced so timt those notations can be seardied for so that embedded tags can be easily fouixi.
[0055] Regarding tag detection, we note that web-analytics instrumentation soipts
can co-exist with otho- analytics products. In some embodiments, &ese cannot be inserted twice in the same page. In such embodiments, before inserting new tags in a page, it is fruitful to verify that sudi tags are not already presmt in a page. Pre-existing instrumentation may have been inserted manually, by the owner of the website content, or automatically by another tool, or even by clioit amplication 130 itself. Tags that are inserted as previously described are relatively easy to identify because they are surrounded by markers as previously moitioned. These markers define the boundaries of sudi tags, (e.g, 710 and 714). Thus, these type of tags can be found using a method that seardies for &e markers.

[0056] But in cases where markers or equivalents are not provided. Hie source code
of a web page can still be inspected to see whether a "code dgnatiue" qiecific to a code
portion to enter can be seardied for. For ocample, cotain wd}-analytics products bear a
code signature. In fbt context of detection, it is not particularly impottaat to perfectly
define the exact boundaries of a code snippet An illustrative code snippet follows:

[0057] "Script language - JavaScript" SRC == http://x.maLcom/saipts/acasanpt.js.

[0058] A goal is to correctly identify the rig code aiippd. To fiidlitate a desirable
levd of flexibility, a code signature can be spedfied through a regular expression. In such a
scoiario, tiie detection function will be implonoited by {flying a regular expression to ihc
content of a page. The fimction will return a Boolean result *% tagged or not" togedm* with
information about the posititm of the tag code in &e page if needed.
[0059] Regular ex|ffessions do not dways woric wdl in the context of wd> pages.
The searched patton may appesat in many diffoent places in a page. For example, the text or might appear in a string contained in a script tag before &e actud body tag. This is shown in the table below:

[0061] To help avoid errors, some prqnxKessing stqis can be carried out Before
looking for a regular-exfHession matdi, tbe page can be prqmioessed to remove all the parts that can cause spurious matdies. From an inlemention point of view, a similar preprocessmg sdieme with different parameters can be used to implement any tagging operation, including detection, replaconent, insotion, etc. Given a page to be tagged, the preprocessor will return a strii)ed vosion of the page that only contains the minimum s of tags and attributes that are required to >ply the specific tging operation. This stripped version will only be used internally in (me onbodiment to jnedsdy dete the presence of a tag or to identify the correct insotion point and avoid ptsible fidse matdies. The actual operations of insertion, deletion, rqplffiiiement will be done on the cniginal page.

[0062] In the case of detection, to find pre-existing instrumentation code, the pre-
processing step will discard all of the conunents as well as all literal contoit inside HTML tags in one embodiment To make this process easier, pi caiwnicalization can be employed. It is easier to caiK>nicalize the string we matdi against so that the rilar expression stays simpler. White spaces such as spaces, tabs, and new lines can be transformed into a single space during the prqnocessing. Thus, lines that have various spaces in betweoi expressions can be simplified so that tbey are separated only by a single space.
[0063] Regarding tag replacement or deletion, an HTML parser can be employed as
previously mentioned to look for comments whose contoit matdi the text of a msAsac in cases where a marker was provided. When a matdi is found, all the maiiaq>s that are included between two markor comments (such as 710,714) can be ronoved fivm tiie page. The replacemoit of marked tags can be implemented by ddeting all existing marked tags finm the web page and then re-inserting, possibly in dififaatf positions or with difiGaent parameters, new tags.
[0064] For unmarked tags, an alternative process can be employed. Gamrally, the
tagging of a single product (like Google Analytics, fw exanle) generates a number of changes in different parts of a wd) page. These changes would need to be detected, and a set of reilar expressions would be defined to specify tl» poile code snippets to look fiw. Thus, in one embodiment, a list of popular analytics programs can be inspected for code that is either unique to that providor's implonentaticm or is found in other jnovider's implonentations and serve as a )od indicator that a {dirase or torn indicates the presence of a tag 120.
[0065] For example, consider the illustrative tag 162 of FIG. IC. It can be seoi that
the iirase "URCHIN.JS" is pcesoit. This phrase, alcmg witii as many others as is desired to be searched on, can serve as the basis of a quay to seardi for in a set of wd> pages. Because it is relatively difScult to actually remove all of the code associated miSx the snippet such as that of 162, such code is neutralized in one enibodiment. For example, all of die calls to functions of known products can be commented out. Because there is a potential for essentially breaking a web page, one emboment of the present invention {Kovides the ability for a user to test his page hefote puUisliing it to ensure that it has, in fiict, not been broken. Accotfy, in one embodiiiMnt, all changes that are made to specific web pages are tradced. These can then be cancelled aiKl the original page can be restored in the event of an error.

[0066] Similarly, an HTML-verification process is provided in one embodiment
Such a process can verify the validity of an HTML aiment before and aftor a tagging
opoon. This can be UMdfcnr testing purposes as wdl as to verify tiiattiietaggii has not
brokoi a page, at least fix»n the point of view of HTML syntax. This functionality can be
implemented using &e aforementioned HTML prepfocessoiJparser.
[0067] To explain a variation of prqm>cessing stq[» to carry out, tiie i»resent
invention can employ page or document encoding. Information of this is provided at
mia-osoft.com/globaldev/getwr/steps/wrg_codage.mspx, whidh is incorporated hoein by
reference to explain encoding, and is also provided in an IDS filed with this docummt In
such an embodimoit, a codepage can be detected. This can be accomplied by detecting
Unicode BOMs (byte order mffi:ks) at the beginning of the docwnoit (see, e.g.,
unicode.org/unicode/faq/utf_bomJitml, whidi is incorpored by reference heron to explain
detecting BOMs), looking for the ptesace of in the page, aiul/or
even asking the rit codq)age to the user. After detecting, the page can be transformed
into a normalized format such as Unicode UTF16. An HTML parso runs oa the
normalized version to hdp &cilitate the inserttcm/deletion/modification of tags. If desired,
a resulting (UTF16) documoit can be converted back to the (mnal oo<>age.
[0068] Turning now to FIGs. 8A-8M, greater detail of user interfile 132 is
provided. In one embodiment, these are the screens fbai would be jnresented on climt
device 126 by way of browser 128. If climt {plication 130 were a local iq)plication, then
similar screois would be provided but not necessarily presented by way of a network
browser 128, although they could be evm if the tUcatimi woe a local, stand-alone
qyplication. Screoi 8A depicts an illurtrative welcome aanm that usor 126 woidd see in
preparation to instrunMnting a desired wcbate, whidi for {Niiposes of ttiis exanIe will be
wd)site 116, wifli pages 118 being a set of pages that ettfaer could or will be instrumented.
As can be seen by item 810, this process allows for automatic instrumentation.
[0069] In one embodiment, another soeoi, as shown in FIG. 8B, can be inresented to
allow a user to select m option to automidcally insert traddng scripts into potmtially all web pages 118. As is fAxnm in FIG. 8B by reforeoce numoral 812, automatic tagging will insert tracking soipts in each wd) page if desired. Turning now to FIG. 8C, soreen 814 inx)vid«i a vtset interfoce to receive locaticm infinmaticm iiuA enables identificaticm of wd) pages 118. It is moy illustratively iwn that m FTP paradgm can be used, vtiurein a server and security credoitials are provided. But it may also be the case that a firfder 816 can be browsed to by button 818 to receive location informaficm that oiables web {Mes 118

to be identified to be instrumented. Such a folder does not need to physically reside in the same piece of hardware as fbat of client application 130 OT l»owser 128. Ratho-, it can be readiable by way of a networic drive.
[0070] FIG. 8D indicates that the invention is ready to start insoting tracking scripts
into each page of website 116. A setup button 820 is provided to allow greater customization of instrumentation sudi as those previously described and mote. In FIO. 8E, it can be seen that the presmt invention is iq>proximately 33% complete, having processed three files as indicated by reference numeral 822.
[0071] FIG. 8F depicts a screenshot blowing that all nine files 824 were processed
and tagged successfiilly onbedded, whidi is reflected by refermce numeral 826. As shown by comment 828, ti-addng scripts 120 have now been iniMrted such that wsite 116 is ready to gather visitor or user information.
[0072] An illustrative trackdng-soipt-installation repent can be seen in FIG. 8G,
which is referenced by numeral 830. This rqwrt shows eadi page as well as an indication of whetho' a script was insoted and optionally by what way, such as "banc instrumentation." FIG. 8H dqncts a soeen 832 that illurates an ability of the present invention to allow custom setiq> aiul tracking scripts to be inserted. Here, a usor is allowed to select certain folders and files to have custom content embedded in. The illustrative custom content shown is analytics-tracking scripts.
[0073] FIG. 81 indicates that the files in the indiotfed dnectories are searched for.
As shown by referraice numoal 834,4,215 files are shown to have been analyzed.
[0074] Turning now to FIG. 8J, a screen 840 of the user inter&ce illustirates }K>W
options such as an ability to refivsh a set of traddng soipts 842 is available to a user. Also shown are various features such as downloads tracking, page raamin ai events tracking 844 and tiiey are available by an embodiment of the present invention. A user can click one link 846 to refiresh his entire wd)site with tracking scripts. Following sudi a link would allow all of the scripts that have been embedded in all of tiie pages to be refi«shed according to, periu a new set of rules defined in rules database 152.
[0075] Aspects related to downloading files can also be tracked. Turning to FIG.
8K, a screen 848 shows that files with certain extensions or file types can be selected to be tracked as downloads on wsite 116. Moreover, a usor is free to add additional files having customized extensicms by following link 850. hi this way, an onbodimait of tiie present invention allows for downloads to be tracked.

[0076] Another illustrative feature of the present invoition is shown in FIG. 8L.
H&K, >er page alias" selecticm can be made. This allows files with potentially long file
names to be roiamed with an alias or nickname that is ema to work with. Illustrative page
names that are shown include "index," and 'y page," shown by numoals 854 ai 856,
respectively. These pages can be roiamed as shown in FIG. 8M. Note in FIG. 8M that iUm
858 is now associated with an alias 'purdiase" which was the desired name dhange, as
shown in FIG. 8L by numeral 858A. Similarly, item 860 in FIG. 8M is renamed
"checkout," as can be seen witii referoice to item 860A in FIG. 8L.
[0077] To recapitulate embodiments of the present invoition jnovide an extensible
set of embedded services that can be included. The invention fecilitates modifying a set of web pages so that contoit ads can be displayed in the hiest numbo- of locations. Also, in the gadget/widget maiket, some make a business model out of embeddable content sudi as web 2.0 items. An onbodiment of the invoition oiables sudi itons to be easily and automatically embedded. In a community-type contact, community contmt genoates more visitors if it is distributed in third-party web content (e.g., Flidcr images, Soiq>box videos, LiveEartfi maps and the like).
[0078] Analysis of HTML content is also fnovided to determine what embedded
services can be included: &nbodiments of the invention mable for each target ccmtent an
analysis of &e compatilnlity with the requested embedded service.
[0079] Tag cust(nniz8tion is also me possible. Eh t 120 may contain
parameters that can be customized. Embodiments of tfie present invention expose a uso* interface that helps a contoit publisher 144 or 126 to adi tl» embedded services to their needs.
[0080] Tags 120 insertion in the right location in HTML file is also i«ovided.
The invention can detect the right locati(m(s) in the tmget ooiltent 118 to insert the tags 120.
Alternatively, for specific type of contents 148 and/w 142, an embodiment of invention
can expose a way for user 126 to visually select the locaticm. For example, in onbodiments
whoe advertising-content-rdated code 148 is to be onbedded, an onbodimoit of the
presoit invention can receive vsat input that either confirms or dictates an insertion point
for the code 148/120. Because fliis type of insertion will usually change the layout of &e
page, an embodiment includes die option of presmting a preview of what the modified pa
will look like. The user can review the layout of a page after tiie ad is inserted.
[0081] User-configuration information can be stored for each embedded service and
wd) destination or otho* location information. This makes iqxlating easier. Illustrative

configuration infonnation stored, peiliaps in tag rqwsitory 140, includes selected onbedded
services, user parametos, target content, page-spedfic infonnation and like.
[(N)82] Additional features can also be provided. lUustrative other featiores indwte
subscription to proposed embedded sovices (utilizing a c(»nmon user identifier acavMS various services such as onail, analytics and the like); syndmmization (verifying that the current tagging implonented in the wd} contoit matches the tagging timt die user required in the customization); refiresh (automatically iq)dating tiie web content with the configuration required by the user); and ronoval (removing some or all the "onbedded tags" fiom the website). These features are illustrative in nature, and do not compose an exhaustive list, as is the case with other lists contained herein.
[0083] As previously mentioned, onbodiments of the i»eseQt invention can take (m
a variety of implementations, niustrative implemmtatioos include taking &e form of an
online tool, a w content building tool plug-in, a wd>-sarver enhancemoit, a content-
editing platform extensicm, and/or a software developer kit (SDK).
[0084] Turning now to FIG. 9, an illustrative {nocess accordii to an embodimmt
of the present invention is provided. As a prqnx)cessing or ptecxasan fumtion, location
information of a wd>site to be outfitted wi& instrumoitaticm aod/or onbedded-content tags
is received. The URL of a wd)site, a folder location, IP address etc., may already be known
by the system, or it it can receive tbs data fi:om a user. The source code of a first web page
is analyzed at a stq) 912. Analyzing the source code of a wd> page may actually include
various substeps including analyzing a copy of the web page, or a stripped vosion of the
web page as previously mentioned. At a stq> 914, a detomination of an impropriate tag to
embed is automatically made. In some embodimmts, an fprqniate tag is a definilt tag to
be entered. In ofhor embodiments, user-im>vided information is considered to determine an
fq>propriate tag to embed, hi still other embodiments, an advotising-ocmteat code portion is
determined at this stage. At a step 916, an appsopnate onbedding locatioo is detennined.
This process has beoi previously desaibed above. With a tag determined ai insertion
point known, the ti or tags are automatically embedded into the web page at a step 918.
This process can ccmtinue for as many pages as are to be instrummted. Thus, at a step 920
a determination is made as to whether tha« are any additimud pages to instrummt. If so,
processing revots to stq> 912. If not, the proce» may end in one embodinMot
[0085] At a step 922, a verification st can occur that allows far the verification
that the embedded contoit did not cause an undesired altmiticni of the wd> page(s). If the content that was added was an analytics soipt, than the qipeaiance of the web page suld

not have changed. A comparison of the way that the web page ypeared before the insotion
and after the insotion can be made. This can occur in a variety of ways. In OOB
onbodiment, size or other dimoisions of the wd> pe can be bld, flieQ an assumirtion can be made
that an undesirable change has occurred. If advertising contoit was aed, thai, provided
the size of &e advertisemoit was known, thai anotho: sizing comparison can be made. For
example, if an add was 60 pixels hig then the height of the web page can be diecked to
see if it increased by 60 pixels, hi still another embodiment, a pnsview of a chan can be
presented to a user to recdve ah indication of whetho* there is any noticeable change.
Exposing that option to a user is valiiable. Functional checks can also be made. Adding
analytics code or advotising content should not alter the fimction of a web page, at least as
observed from a viewer's 124 perspective. Things sudi as links and media renderings can
be automatically tested, as well as the rendering of the mtire page.
[0086] We also previously explained aspects of verification earlio- (see the section
desaibing document encoding). In smne embodiments, Hat invration does not exiidtly
dieck to determine if the inserted code 120 breaks aesthetics cur existing functionality per se.

In these embodiments, a chedc is porfonned on the DOM to analyzse if the existing DOM
remains the same after an operaticm of adding and then removing the soipt. Recall diat a
Document Object Model (DOM) pix>vides a structural rqnesentation of a document TIM
diecks poformed ensure that what is already in the page he&xe the insertion is not broken
as a result of the insertion. For exanqde: if a cUck on a button in die page changed the
source of an image on the same page, Hxai automatically adding traddng script 120 will ix>t break that existing fimctionaUty. Also adding traddng script 120 does not diange layout
of the page. Genorally, dianges do not occur to Has rendering, interaction, and
data/flication functionality of page. But adding an advertiseownt script will change
the layout of the page. Even so, an embodunoit of flie invention ensures that Hie
functionalities existing on the page pricsr to insertion are not Inidcen.

[0087] Changes may be made to tiie instrumeatalimi fimcticmality. "Reiklaingr
refers to the visual layout and appcmaux of the page. "Intenu:tion** refers to the bdiavicHr coded into the page for things like JavaScrifrt mouseover events, form controls, etc. (opticms are legion). "Data/q)pUcati(Hi'' teSas to die actual vmA. HM page does, e.g. process an ecommoxe transaction, rdrieve a user's account balance frnn a database and show it to them, etc.

[0088] One way of testing for errors or developing an exclusion rule includes
inserting tags into a set of pages (maybe thousands or millions), and thm removing them. A byte by byte and DOM comparison can be done on the page. If one of the comparison &ils to return equal results, the tagging is considered as fiiiled, at least to that page. The fiiiled tagging page can be saved and its content analyzed to idoitify what oror in the page broke the tagging. If a woric around is know, the a tagging fix can be created. If there is no woric around the we add the page ettor as one of the exclusion rules.

[0089] An alternative way is to tag on the fly random pages that are browsed. All
such pages are tagged. Later, they are untagged. A comparisons is made and action take as explained above.

[0090] Turning now to FIG. 10, another method for practicing an onbodiment of the
present invention is provided and referenced genonlly by the numeral 1000. hi this embodiment, at a step 1010, a uso* inter&ce is presented to a user to receive descriptive information that describes a desired website that is to be instrumented via tracking scripts. In one embodiment, sudi a user inter&ce may take fb.c form of (me or more screms of FIOs. 8A-8M. At a step 1012, tracking scripts are automatically installed into a set of wd> pages of the website. As previously mentioned, locations can be determined and scripte can be selected automatically, without user intervention, aiul embedded. At a st 1014, a user interface is presoited to receive events to be tracked. Tlxse stq)s do iK>t need to occur in any certain order. In some embodiments, it is hdpfiil to have scripts embedded in w pages before different paramers associated wi& those scripts are received. In other embodiments, these steps can be consolidated or evoi reversed in order such that a user into&ce is presented to a usor to receive indications of events to be tracked even hote the traddng scripts are installed. And afto: those iiHlications of events to be tracked are received, then the tracking scripts are installed. Examples of a user intar&ce to receive indications of events and the like to be tracked can be found in soeens 8H, 8J, 8K, 8L, and 8M.

[0091] At a step 1016, the tracking scripts tiiat woe entered can be autcmiatically
updated based upon evoit-tracking indications. Thus, in tiiis embodiment, a uso* may make actional changes, which are reflected in updated soipts that are again updated automatically without user intervoition.

[0092] At a stq> 1018, the effects of installing flie tracking scripts can be tested.
This process is similar to that of 922 in FIG. 9 in one embodimoit

[0093] Many different arrangements of the various conqwnents depicted, as well as
components not shown, are pos»ble without dqpaiting fiom die spint and scope of the present invention. Embodiments of the pnaaat inventicm have been desaibed witii the intent to be illustrative rattier than restrictive. Altenurtive onbodiments will become appaimt to those skilled in the art that do not depart fix>m its scope. A skilled artisan may develop altonative means of implemraiting the aforanenti

Documents

Application Documents

# Name Date
1 abs 2141-chenp-2010 abstract 15-04-2010.jpg 2010-04-15
2 2141-chenp-2010 power of attorney 15-04-2010.pdf 2010-04-15
3 2141-chenp-2010 pct search report 15-04-2010.pdf 2010-04-15
4 2141-chenp-2010 pct 15-04-2010.pdf 2010-04-15
5 2141-chenp-2010 correspondence others 15-04-2010.pdf 2010-04-15
6 2141-chenp-2010 claims 15-04-2010.pdf 2010-04-15
7 2141-chenp-2010 abstract 15-04-2010.pdf 2010-04-15
8 2141-chenp-2010 form-5 15-04-2010.pdf 2010-04-15
9 2141-chenp-2010 form-3 15-04-2010.pdf 2010-04-15
10 2141-chenp-2010 form-2 15-04-2010.pdf 2010-04-15
11 2141-chenp-2010 form-1 15-04-2010.pdf 2010-04-15
12 2141-chenp-2010 drawings 15-04-2010.pdf 2010-04-15
13 2141-chenp-2010 description(complete) 15-04-2010.pdf 2010-04-15
14 2141-chenp-2010 form-3 12-10-2010.pdf 2010-10-12
15 2141-CHENP-2010 CORRESPONDENCE OTHERS 11-10-2011.pdf 2011-10-11
16 2141-CHENP-2010 FORM-18 11-10-2011.pdf 2011-10-11
17 2141-CHENP-2010 FORM-6 25-02-2015.pdf 2015-02-25
18 MTL-GPOA - KONPAL.pdf ONLINE 2015-03-05
19 MS to MTL Assignment.pdf ONLINE 2015-03-05
20 FORM-6-1401-1500(KONPAL).8.pdf ONLINE 2015-03-05
21 MTL-GPOA - KONPAL.pdf 2015-03-13
22 MS to MTL Assignment.pdf 2015-03-13
23 FORM-6-1401-1500(KONPAL).8.pdf 2015-03-13
24 2141-CHENP-2010-FER.pdf 2018-01-19
25 2141-CHENP-2010-OTHERS [10-07-2018(online)].pdf 2018-07-10
26 2141-CHENP-2010-FER_SER_REPLY [10-07-2018(online)].pdf 2018-07-10
27 2141-CHENP-2010-CORRESPONDENCE [10-07-2018(online)].pdf 2018-07-10
28 2141-CHENP-2010-COMPLETE SPECIFICATION [10-07-2018(online)].pdf 2018-07-10
29 2141-CHENP-2010-CLAIMS [10-07-2018(online)].pdf 2018-07-10
30 2141-CHENP-2010-HearingNoticeLetter.pdf 2019-05-14
31 2141-CHENP-2010-Correspondence to notify the Controller (Mandatory) [30-05-2019(online)].pdf 2019-05-30
32 2141-CHENP-2010-Written submissions and relevant documents (MANDATORY) [20-06-2019(online)].pdf 2019-06-20
33 2141-CHENP-2010-Response to office action (Mandatory) [25-06-2019(online)].pdf 2019-06-25
34 Marked Up Claims_Granted 314841_27-06-2019.pdf 2019-06-27
35 Drawings_Granted 314841_27-06-2019.pdf 2019-06-27
36 Description_Granted 314841_27-06-2019.pdf 2019-06-27
37 Claims_Granted 314841_27-06-2019.pdf 2019-06-27
38 Abstract_Granted 314841_27-06-2019.pdf 2019-06-27
39 2141-CHENP-2010-PatentCertificate27-06-2019.pdf 2019-06-27
40 2141-CHENP-2010-IntimationOfGrant27-06-2019.pdf 2019-06-27
41 2141-CHENP-2010-RELEVANT DOCUMENTS [27-03-2020(online)].pdf 2020-03-27
42 2141-CHENP-2010-RELEVANT DOCUMENTS [23-09-2021(online)].pdf 2021-09-23
43 2141-CHENP-2010-RELEVANT DOCUMENTS [26-09-2022(online)].pdf 2022-09-26
44 2141-CHENP-2010-RELEVANT DOCUMENTS [15-09-2023(online)].pdf 2023-09-15
45 2141-CHENP-2010-FORM-27 [11-09-2025(online)].pdf 2025-09-11

Search Strategy

1 2141_CHENP_2010_14-12-2017.pdf

ERegister / Renewals

3rd: 29 Aug 2019

From 23/09/2010 - To 23/09/2011

4th: 29 Aug 2019

From 23/09/2011 - To 23/09/2012

5th: 29 Aug 2019

From 23/09/2012 - To 23/09/2013

6th: 29 Aug 2019

From 23/09/2013 - To 23/09/2014

7th: 29 Aug 2019

From 23/09/2014 - To 23/09/2015

8th: 29 Aug 2019

From 23/09/2015 - To 23/09/2016

9th: 29 Aug 2019

From 23/09/2016 - To 23/09/2017

10th: 29 Aug 2019

From 23/09/2017 - To 23/09/2018

11th: 29 Aug 2019

From 23/09/2018 - To 23/09/2019

12th: 29 Aug 2019

From 23/09/2019 - To 23/09/2020

13th: 10 Aug 2020

From 23/09/2020 - To 23/09/2021

14th: 04 Aug 2021

From 23/09/2021 - To 23/09/2022

15th: 05 Aug 2022

From 23/09/2022 - To 23/09/2023

16th: 22 Sep 2023

From 23/09/2023 - To 23/09/2024