The best way to provide Parse.ly with page metadata is by adding meta tags or JSON-LD directly to your page source, where our crawler can read them from.
However, if you are unable to modify your page source — for example, due to CMS limitations or because your organization manages all tags centrally — it is possible to use a tag manager such as Google Tag Manager (GTM) or Tealium iQ to send metadata along with the traffic network calls.
This type of integration is called an in-pixel integration.
How it works
In a standard setup, our crawler independently visits your pages to extract metadata and send it to the Parse.ly servers.
With an in-pixel setup, the Parse.ly tracker does the work of extracting metadata from the DOM. It then packages that data up and sends it along in a metadata parameter on all traffic calls from the browser.
Our standard crawler does not execute JavaScript on a page, and thus cannot read metadata set by a tag manager. With an in-pixel integration, the Parse.ly tracker is able to see elements on in the DOM that are loaded by a tag manager (or any other script).
The key point is that the Parse.ly tracker must load after the metadata tags. If the metadata is not in the DOM when the Parse.ly tracker is set, it will not be able to access it.
Limitations and considerations
- No recrawls – As our crawler is not used in an in-pixel integration, we’re not able to manually initiate a recrawl to collect new metadata—sitewide or for an individual post. Instead metadata is updated once an hour per URL for URLs actively generating traffic. If there are sitewide metadata changes, only the posts generating traffic will receive those metadata updates.
- API incompatibility – For security reasons, our API product cannot be enabled for dashboards that use in-pixel metadata.
- Smart tags ineligibility – Smart tags require access to the full content of a post. This is too large to send in the pixel, so this information is not stored on Parse.ly servers to be processed by our smart tags recommendation engine.
- Increased network call size – While negligible in most cases, the size of each network call from the browser will be slightly larger to accomodate the additional
metadataparameter. The actual size of the network call is dependent on the amount of metadata being sent.
Implementation steps
The implementation involves setting two tags in a specific order. First the tag containing the metadata of the page, and second the Parse.ly tracking script.
Prerequisites
- Your Parse.ly Site ID.
- Familiarity with creating tags and configuring firing order in your tag manager.
- Access to the desired metadata for each page.
Step 1: Create the metadata tag
Create a custom HTML tag that adds the necessary Parse.ly meta tags to the DOM.
Example:
<meta name="parsely-title" content="Iron Man Revealed" />
<meta name="parsely-link" content="https://www.example.com/post/iron-man-revealed" />
<meta name="parsely-type" content="post" />
<meta name="parsely-image-url" content="https://www.example.com/tony-stark.png" />
<meta name="parsely-pub-date" content="2024-01-22T18:01:00Z" />
<meta name="parsely-section" content="Defense News" />
<meta name="parsely-author" content="Peter Parker" />
<meta name="parsely-author" content="April O'Neil" />
<meta name="parsely-tags" content="editor: jjjameson, tony stark, stark industries, iron man" />You may inject these tags whichever way works best for your setup. Below is an example JavaScript function that accomplishes this.
<script>
(function() {
var head = document.head || document.getElementsByTagName('head')[0];
var meta = {
'parsely-title': 'Iron Man Revealed',
'parsely-link': 'https://www.example.com/post/iron-man-revealed',
'parsely-type': 'post',
'parsely-image-url': 'https://www.example.com/tony-stark.png',
'parsely-pub-date': '2024-01-22T18:01:00Z',
'parsely-section': 'Defense News',
'parsely-tags': 'editor: jjjameson, tony stark, stark industries, iron man'
};
var authors = ['Peter Parker', 'April O\'Neil'];
for (var key in meta) {
if (meta.hasOwnProperty(key)) {
var tag = document.createElement('meta');
tag.setAttribute('name', key);
tag.setAttribute('content', meta[key]);
head.appendChild(tag);
}
}
authors.forEach(function(author) {
var tag = document.createElement('meta');
tag.setAttribute('name', 'parsely-author');
tag.setAttribute('content', author);
head.appendChild(tag);
});
})();
</script>The <meta> tags do not need to be in the <head>, however that may be preferred to conform to the HTML spec.
Note
The parsely-link value should match your Parse.ly canonical URL. If your site uses rel="canonical" or og:url, make sure these values are consistent. Mismatched canonical URLs can cause issues in your dashboard.
Step 2: Load the tracker after the metadata tag
Ensure that the Parse.ly tracking code fires only after the metadata tag has completed.
Google Tag Manager: Use tag sequencing. Edit your Parse.ly tracker tag (the Parse.ly tag template or a Custom HTML tag), open Advanced Settings > Tag Sequencing, and configure the metadata tag as a Setup Tag.
Tealium iQ: Use load order and tag priority settings to ensure the metadata tag fires first.
Other tag managers: Consult your tag manager’s documentation for controlling tag execution order.
Step 3: Contact Parse.ly Support
Reach out to support@parsely.com and ask us to enable in-pixel metadata collection on your account. Without this configuration change, the tracker will not pick up metadata injected by your tag manager.
Step 4: Test your integration
Once both tags are published and Parse.ly Support has confirmed the configuration change:
- Use your browser’s element inspector to confirm the Parse.ly meta tags are present. (Because the tags are injected at runtime, they will not appear in “View Source” — only in the live DOM.)
- Follow Parse.ly’s testing instructions to confirm pageview events are firing. Check the network request payload and confirm the
metadatafield is populated with your values (title, link, section, tags, etc.). Ifmetadatais empty or missing, the tracker likely fired before the meta tags were injected — revisit Step 2. - Use the metadata validation guide to confirm your metadata appears correctly in the Dashboard.
Next steps
- Review the full metadata documentation to ensure you’re sending all the fields you need.
- Return to the integration overview to check for additional features to configure.
- If you run into issues, reach out to Support for assistance.










