all.min.js: This is the main script that's used for data collection, interacting with ONEcount.
The main object in this script is called GCN. GCN contains the following objects:
variables: this is a container for variables that may be used by others objects in GCN
cookie: utility for interacting with cookies. Contains the following functions:
read(name) : returns the value of cookie name or null if it doesn't exist
set(name, value, options): create a cookie called name with value value. options is an object which can have expires, path, domain and secure properties
remove(name, options): removes the cookie name. options is an object which can have the property sublevel
url: utility for interacting with url. Contains the following functions:
parse(url): parses the url and returns an object containing these properties : href, withoutHash, url, origin, protocol, protocolseparator, credhost, cred, user, pass, host, hostname, port, pathname, segment1, segment2, search, hash
params(url): return a key value pair object of the query string parameters
build(url, params): create a new url based of the provided url and params
script: utility for interacting with scripts. Contains the following functions:
add(url): creates a script tag using document.write whose src is url
addInHeader(url): create a script tag in the head whose src is url
addAsync(url): create a script tag in the body whose src is url
createScript(url): helper function that create a script element whose src is url
method: utility for dynamically invoking methods. Contains the following functions:
call(f, options): calls the function f
event: utility for interacting with event. Contains the following functions:
on(type, listener, f) : add a listener that executes the function f when event of type type occurs on listener
off(type, listener, f): removes the listener that executes the function f when event of type type occurs
random: utility for generating random number and string. Contains the following functions:
number(): return a random integer
string(count): return a random string of length count
tracker: this is used for tracking web impressions. Contains many functions used internally but the 2 functions accessible publicly are:
init(_gcnt): called on page load to initialize the tracker which which will start collecting impressions. _gcnt is an array that contains options used by the tracker.//add list of options ?
track(url, title, referer): used to dynamically track a page with url url, title title and referer referer. This can be used with infinite scroll.
ONEcount: object for interacting with ONEcount application. This object contains many functions and objects.
init(): initialize the widget
parseScript(): parse the main script that was loaded to retrieve the clientId
getClientId(): return the clientId
getOrigin(): returns the script's origin
getScript(): return the current script that is being executed
setUrls(): set the different urls endpoint (automation, login/logout, tracking, viewability, form embed, ...) used to interact with ONEcount
setLinks(): set the login/logout url as link.
setTargeting() : loads the automation script used for targeting
loadAdditionalScripts(): load additional scripts based on the clientId
isLoggedIn(): return true if the user is logged in
checkPerm(params): makes a jsonp request to the perm server to check whether the user has access to the page or not. params is an object that can have url, referrer, resource properties. If url and referrer are not provided, they will be retrieved from the window element. This is actually calling tracker.track(url, title, referer). If the callback is provided, it will be called once a response is received from the server. This is being used to return the number of articles read for windowed products
gate(resource): makes a jsonp request to the perm server to take the user to the registration page for resource. If the user is already subscribed then nothing will happen.
urls: this object contains all the url used to interact with ONEcount. These url already have the clientId appended to them.
links: this object contains links to the login/logout in ONEcount. Below are the functions:
login() : return the link needed for login
logout(): return the link need for logout
This also contains other helper functions such as setReturn(returnUrl), getReturnParam(returnUrl), encodeUrl(url), decodeUrl(url)
modal: used to create a modal. This is being used for the form popup and the custom targeting pop up Contains the following functions:
create(options): create a modal. options is an object that contains the properties html, styles, close
getCloseButton(options): return the close button element. options is an object that contains the properties close
getContent(options): return a div that contains the content of the modal. options is an object that contains the properties html
loadStyles(options): load css styles used for the modal. options is an object that contains the properties style
functions: this is an object contains functions used by other widgets on the page. Contains the following functions:
dfp_sb_ad_capture(e): used to prepare data for DFP Small Business viewability script. e is and event containing data about the data (creativeId, lineItemId)
get_user_data(): returns the user's ocid and tempid in the format ocid.tempid
form: used to create a pop up form or for form embed. Contains one function and another object:
embed(options): this function is used to embed a form on the page
popup: this object is used to display the form as a popup. Contains the following functions:
resize(id): re sizes the form with document id id
display(options): displays the form as a pop up
message(event): used to interact with the form in the iframe via postMessage
On top of this all.min.js also contains a library used for browser fingerprinting as well as a library used for getting flash info on the browser. The content of this files used to spread in 3 different files and now they're in one place.
v.js: This script is used to capture viewability data for DFP Premium and Openx Open Source (Revive).
v_sb.js: This script is used to capture viewability data for DFP Small Business
fs.js: This is the form scrapper script. Used to scrapped content from 3rd party forms when they are being submitted.
GCN.onecount.track(url, title, referrer, resourceId, callback):
By default, ONEcount widgets track impressions on each page load. For sites where one article is displayed per page, this works fine. But in cases where articles are displayed on the same page, i.e. infinite scroll, only the first one is tracked.
This function is designed to provide an impression track for each article on a page. The function expects three parameters:
- url: The url of the article that is supposed to be tracked. This is required.
- title: This should be the same as the title tag if the article was displayed alone on the page.
- referrer: The referrer of article. (For infinite scroll this can be the previous article in the scroll.)
resourceId: this is optional. If set to a valid resourceId, that resource that will be used in order to perform gating or increase view_count. You can pass 0 in order to use the default resource associated with the url if any
callback: function to be called after a request has been sent to ONEcount. This can return the number of articles read by the user for products with limit in timeframe
While the impressions are being tracked, ONEcount will also check whether the user's subscription is still valid or not (e.g. limit of X articles per month has been reached). If the subscription is not valid, then the user will be taken to the subscription page.
Let's assume I have a page where the first article is displayed when the page loads and three mores articles are displayed as the user scrolls down. The first article will be tracked by ONEcount, but for the three other articles, a call to GCN.onecount.track needs to be made to tell ONEcount that the articles have been displayed. The url should be the direct url of the article. The referrer should be the previous article's url.
Gating is currently done based on a REGEX match of a url segment on page load. This function is designed to allow customers to gate content where gating can not be sufficiently managed using URL segments, or where content must be gated without a page load.
This function expects two parameter :
- resourceId : this is the resourceId that will be used for gating and it's required.
- callback: this is a function that can be passed. The response from the gating request will be made available in the callback. The callback should expect one parameter which is a JSON object. The JSON object has a property called hasAccess which is a boolean (true/false). true means the user has access and false means he does not.
Resource Ids are available in ONEcount on the resource listing page.
To create a resource that uses this function, choose “Function” from the resource type pull-down, then enter a text return value in the box below. This return value is ignored for now, but may be used to trigger gating in the future.
When the function is called and the user is not subscribed to the product that the resource belongs to, he will be taken to the registration page in order to do so. If he is already subscribed to the product then nothing will happen.
NOTE: If page load speed is ever a concern, it is recommended to use a third party service (such as tools.pingdom.com). By doing so, it will generate report of all items loading on your webpage along with their load times. Simply copy and paste your page's URL into the designated field and a test will be conducted immediately. If any oc.net item exceeds a load speed of 500ms, please enter a Helpdesk ticket for us to review. Testing page load speeds is a very informative way of identifying items that are directly impacting page performance. It is worth mentioning that there will be items that continuously load in short spurts (ex. v.js for viewability data) however those short spurts do not negatively impact load speed performance.
- No labels