Skip to content
Login Contact

Debug Marfeel SDK network requests and tracking parameters

Marfeel tracks page view data, multimedia events, and recirculation metrics through network requests sent at regular intervals during each session. This article provides a complete reference for every tracking parameter and explains how to inspect these requests using browser developer tools.

Each request may carry updated information such as reading time or engaged time. Tracking at regular intervals allows the Marfeel SDK to asynchronously capture metrics like user type or Core Web Vitals as they become available, without delaying the first hit. Server side, Marfeel collapses and merges all requests appropriately.

Diagram showing Marfeel SDK tracking request flow during a page view|689x332

Marfeel uses events.newsroom.bi as the endpoint for data collection:

  • https://events.newsroom.bi/ingest.php collects information about the page view. You could see more detailed information about what the code is sending here
  • https://events.newsroom.bi/multimedia.php collects information about the multimedia elements of the page (loaded videos, plays, mute/unmute, play length… ). It could be enabled or disabled following this guide
  • https://events.newsroom.bi/recirculation.php collects information about links on the page, viewability, and CTR of those links. You won’t see any call to that endpoint unless you tag some modules to be measured using data-mrf-recirculation=“Module Name” or via the no-code experience

Open the Network tab in your browser developer tools and filter for “ingest” to find all Marfeel tracking requests at once.

Click on any request to view the full set of key-value pairs sent to Compass:

Browser Network tab showing Marfeel ingest request parameters sent to Compass|690x383

Make data visualization easier by using the Analytics Debugger. Just enable Marfeel to access our requests for smoother operation.

Every Compass request includes information about the user and their current session. Not all values are sent with all requests.

Here’s the detailed breakdown of all the other key-value pairs sent to Compass:

KeyDescriptionWebApp
acYour Compass account ID.✔️✔️
conull by default, it’s the custom domain on which Compass stores cookies.✔️
tThe time when the user started navigating on your site.✔️✔️
rThe referrer URL that brought the user to your site which is only populated when there is a referrer, not for direct sessions. To understand data acquisition, consider visiting your site in an incognito tab from a Google search. Clicking on the result link sets “r” to https://www.google.com. If you go to the home page by clicking the logo, the original Google referrer is maintained for reporting on Medium and Medium with Internal dimensions.✔️✔️
urlThe current page URL.✔️✔️
cThe current page’s canonical URL.✔️✔️
ppThe current pageview’s referrer URL.✔️✔️
pThe pageview’s unique identifier. Defined by Compass.✔️✔️
uThe user’s unique permanent ID, to recognize them from one session to the next on the same browser. Defined by Compass.✔️✔️
sThe session’s unique identifier. Defined by Compass.✔️✔️
aThe number of Compass polling already sent for this page and user: 0 for the first one, 1 for the next one, etc.✔️✔️
nThe current timestamp.✔️✔️
lReading time: the number of seconds the user has been on the current page so far.✔️
etEngagement time: the number of seconds the user has been interacting with the page so far.✔️
psThe timestamp when the user arrived on the page.✔️✔️
vThe current Compass tracker version.✔️✔️
utThe type of user as you have defined it: logged, paid, or 0 if it is unknown.✔️✔️
suiThe user’s unique identifier as you have defined it.✔️✔️
ucIndicates whether the user has consented to cookies for Compass.✔️✔️
ccConsent choice. Values: rejected: 0; accepted: 1; pending: 2; disabled: 3✔️✔️
scScroll percent: how far down on the page the reader is, at the time of this request.✔️✔️
fvThe timestamp marking the user’s first visit to the site.✔️✔️
uvarAn array of all the user variables you and Compass have defined.✔️✔️
svarAn array of all the session variables you and Compass have defined.✔️✔️
pvarAn array of all the page variables you and Compass have defined.✔️✔️
convNew Conversions that happened since the last request. You define conversions according to your goals.✔️✔️
rsThe recirculation source (HTML module) that brought the user to the current page, if any.✔️✔️
rfvThe reader’s RFV score, if it exists.✔️
pageTypeAn identifier to distinguish between Standard Web and Facebook Instant Articles.✔️✔️
ptiPublished Time Identifier✔️
utiUpdated Time Identifier✔️

Once the Google Ad Manager integration has been completed, the following fields will be sent as part of the ingest request:

KeyDescription
adsA Marfeel-only value tracking how many Marfeel ads are rendered.

Once you’ve triggered a trackConversion, you can make sure it went through correctly by looking at the conv parameter in the next ingest request.

KeyDescription
convConversion name.

For example, after triggering compass.trackConversion('subscribe') you will find conv with value subscribe in the ingest request.

Core Web Vitals are a Google-led initiative to unify essential metrics related to page speed and user experience. They impact Google results ranking, so they must be taken seriously.

Rather than waiting for a month for Google Search Console to update their reading of your site’s Core Vitals, Marfeel Compass provides real-time information.

Every tracking request contains the Core Vitals for that reader on that page.

KeyDescriptionGood value
wv1 if web vitals were calculated, 0 otherwise.
lcpLargest Contentful PaintUnder 2500
fidFirst Input DelayUnder 100
clsCumulative Layout Shift scoreUnder 0.1
fcpFirst Contentful PaintUnder 2000

You can find this data in your Compass dashboard as a breakdown tab named “Validations” for every article detail page.

All the variables prefixed with a “p” relate to the page performance: they are a detailed breakdown of the page loading speed.

All the values are in milliseconds and, except for the first one, are calculated only once per pageview.

KeyDescriptionAvailable for
ptThe delay between CompassJS starting tracking and when it is ready to send information.All browsers
pdnsHow long the Domain Name lookup took for the page, in millisecondsOnly modern browsers
pconHow long it took the browser to establish a connection to the server to retrieve the page.Only modern browsers
pfetThe time elapsed between starting to fetch the page and receiving its last byte.Only modern browsers
pnetThe time elapsed between right before the browser requested the page and the moment it received its last byte.Only modern browsers
pttfThe time elapsed between the first byte of HTML received and the last one.Only modern browsers
pintHow long it took to parse the DOM, from start to until the page is interactive.All browsers
pdclThe time elapsed between the beginning of DOM parsing and when all the scripts have been executed.All browsers
pdclfThe time elapsed between when the DOM parsing started and when the DOM is entirely ready.All browsers
"Modern browsers" excludes Safari under version 11 and Internet Explorer.

You can read more on any of the variables used to calculate those values with Mozilla Developer Documentation. Compass audits your site’s real performance thanks to those values, rather than using lab data like Google Lighthouse does.

In the recirculation call we can see some common fields from compass and some specific:

KeyDescription
tType: could be elegible, impression or click
mModules: the list of modules or recirculation found

Every item of m it has this shape:

  • n: the name of the module
  • e: a list of urls of all links in order. Every link can be a string or an object with url and position.
{
"n": "NAME OF DE MODULE",
"e": ["link", "link2", "link3", { "url": "link4", "position": "4" }]
}

Specific fields in multimedia calls:

KeyDescription
mObject containing playback information
m -> adsAds: list of times where an ad has started. Every item is the seconds where the event was triggered.
m -> apNumber of ads played
m -> asA boolean expressing if there has been any ad
m -> bscrList of event times, in seconds, where there has been a back to normal screen event.
m -> eTrue if the media has reached the end
m -> fscrList of event times, in seconds, where there has been a fullscreen event.
m -> mpNumber expressing how far in seconds the media has been played
m -> muteList of event times, in seconds, where there has been a mute event.
m -> pauseList of event times, in seconds, where there has been a pause event.
m -> playList of event times, in seconds, where there has been a pause event.
m -> sTrue if the media has started playing
m_ilA boolean expressing if the media is a live stream.
m_lDuration: The duration of the media.
m_pProvider: The name of the media player provider. For example: dailymotion, youtube, etc..
m_piProviderId: The identifier of the media.
m_ptPublish time: The date when it was published the video. Timestamp in seconds.
m_tType: could be video or audio.
m_thThumbnail: URL of the image representing this media.
m_tiTitle: Title of the media.
m_uURL: url of the media item.
What endpoints does Marfeel use for data collection?

Marfeel uses events.newsroom.bi as the data collection endpoint. It sends page view data to ingest.php, multimedia tracking to multimedia.php, and recirculation metrics to recirculation.php.

How can I inspect Marfeel tracking requests in the browser?

Open the Network tab in your browser developer tools and filter for “ingest” to see all Marfeel tracking requests. Click on any request to view the full set of key-value pairs sent to Compass.

Does Marfeel track Core Web Vitals in real time?

Yes. Every Compass tracking request includes Core Web Vitals for that reader on that page, including LCP, FID, CLS, and FCP. This provides real-time performance data rather than waiting for Google Search Console updates.