LinkedIn Pixel Tracking for Your Event
The LinkedIn Insight Tag (often just called "the pixel") is a small piece of tracking code that sits on your event site. Once it's installed, it quietly notices what visitors do — visiting on your page, adding a ticket to their cart, completing a purchase — and reports those actions back to LinkedIn.
The main reason to use it: if you're running LinkedIn ads for your event, the pixel connects the dots between someone clicking your ad and someone actually buying a ticket, so you can see whether your ad spend is paying off.
Actions you may want to track:
Page view
Add to cart
Purchase
Note: Of these, only Page View works through Accelevents' native LinkedIn integration on its own. Add to Cart and Purchase require extra custom setup.
Before you start: three things worth knowing
These three points cause almost all of the confusion with LinkedIn tracking, so it's worth reading them first.
1. LinkedIn recently renamed its ad structure. If your Campaign Manager looks different from screenshots, that's why. LinkedIn now uses the same naming as other ad platforms. Here's how the old terms map to the new ones:
What it used to be called | What it's called now |
Campaign Group | Campaign |
Campaign | Ad set |
Ad | Ad (unchanged) |
2. The pixel and the reporting are two different things.
Installing the pixel does not require an ad. The moment the Insight Tag is on your site, it fires for every visitor and LinkedIn can verify it's working.
Seeing conversion counts in LinkedIn does require a live ad. LinkedIn's reporting is attribution-based — it only counts a conversion when it can tie the action back to someone who clicked or saw one of your ads. With no ad running, your tag can be firing perfectly and the conversion count columns will still read zero.
In short: no ad is needed to install and verify tracking, but an ad is needed for LinkedIn to report the numbers. (If you only want plain visit or add-to-cart counts and aren't running ads, a tool like Google Analytics is a better fit — see the note at the end.)
3. Only Page View is tracked automatically. The rest need custom work. Accelevents' native integration sends LinkedIn a single tag that fires on page loads.
That's enough for Page View, but Add to Cart and Purchase happen at moments during checkout that don't have their own page URLs — so the native integration can't fire them at the right time. Getting those two requires custom event tracking. This is covered in its own section below.
A note about the payment method: Make sure a valid payment method is added to your LinkedIn account. If the account is "On hold," your ads won't deliver — though you can still install and verify the pixel.
A note about widgets: If you use Accelevents widgets (Settings > Widget Options), the LinkedIn Insight Tag can't be embedded in the widget, and ticket-purchase actions inside the widget can't be tracked.
Step 1 — Create a Campaign in LinkedIn
This is the top level of your ad structure (what used to be called a "Campaign Group").
Log in to your LinkedIn account.
Click the Advertise button.
Click Create account and Enter the information needed to create your account, and click Save
If prompted, select Website visits, click Next.
Click Create campaign
If no prompt, click Create > Campaign from the left side menu
Give your campaign a name, choose the Website visits objective, then click Next.
Under the campaign, set up your Ad set (this is where targeting, budget, and schedule live). Click Next.
If prompted, select Classic as Ad Set type. Click Next.
In the ad set details, enter your ad set name, and other details about your add. Click Next. Click Save.
Step 2: Create an Ad
After creating your Campaign and Ad Set, you'll need to create your ad.
Click Create ad
Design your ad, make sure to include the link to your event in the destination URL. Click Save ads.
Click Next after saving your ad
Add Payment Details. This is required to launch your ad set.
Click Launch ad set
Step 3 — Get your LinkedIn Partner ID
After creating your campaign, you'll need to get you LinkedIn Partner ID, which you will add in the LinkedIn site-wide Insight Tag you will create in Google Tag Manager. You'll need to do this step to identify the purchase.
In Campaign Manager, go to Data > Signals manager
Click Insight Tag
Choose I will use a tag manager and copy Your Partner ID.
Step 4 — Install the Insight Tag with Google Tag Manager
Google Tag Manager (GTM) is a free tool that delivers tracking code to your site. You add GTM to your site once, and from then on you can manage tags (LinkedIn's, Google's, etc.) without editing your site's code again.
Go to tagmanager.google.com and create an account.
Give your account a name and a container name. Target platform is Web. Click Create. Accept the conditions.
Copy the GTM scripts it gives you.
In Accelevents, paste them into Event Design > Settings > Head Script and Body Script
Back in GTM, go to Tags > New
Click the Tag Configuration box and choose Discover more tag types in the Community Template Gallery
Search for LinkedIn Insight Tag 2.0, then Add to workspace.
Paste your Partner ID (from Step 2) into the Partner ID field.
Click the Triggering box, Add a trigger, click the checkbox next to All Pages.
Click Save, then Submit in the top-right corner to publish your container.
The result of this step is the site-wide base tag — the piece that fires on every page and powers page-view tracking.
Step 5 — Create your Insight Tag Conversions in LinkedIn
A "conversion" is just a specific action you want to track. You create these in Campaign Manager, but creating a conversion in LinkedIn does not, by itself, make it fire on your site. LinkedIn needs the matching action to actually be triggered on the page — which is where the native-vs-custom distinction (point 3 above) matters.
You can create an Insight Tag Conversion for Key Page View, Add to Cart, Purchase - you can add all, depending on what you want to track.
Page View — works with the site-wide tag alone. No extra work needed beyond Steps 1–4.
Add to Cart and Purchase — will not fire from the native integration, because these moments have no unique page URL on the Accelevents checkout (it's a single-page app, and the confirmation is a popup, not a page). To make these fire, you need the custom event tracking described in the next section.
Click to arrow to see the steps for each.
Page View
Page View
In Campaign Manager, go to Measurement > Conversion tracking.
Click Create conversion, then choose Insight Tag conversion.
Give it a clear name (e.g. "Page View") and choose the matching conversion behavior (Page View → Key Page View).
Set Views to 1 day, then continue.
Select Manage conversions setup > Page Load
Add 2 rules under Page load conversion, then click Next Step.
Click Edit on Ad Set, then select the ad set you created. Click Save.
Click Create.
After saving, you should see it in Measurement > Conversion tracking showing the conversion's Status. A new one starts as Unverified and flips to Active once LinkedIn detects it firing — usually within about 24 hours. "Active" confirms tracking works; it is not a running total.
Add the Tracking Partner ID to Accelevents
In your Accelevents admin console, go to Settings > Integrations.
Click Configure next to LinkedIn Tracking Partner.
Paste your LinkedIn Tracking Partner ID.
Click Save.
Note: Only paste the Partner ID here. Leave the Conversion ID field empty since you're using "Page Load." in your Page View set up. Putting a conversion ID here makes LinkedIn count page views as that action.
Add to Cart
Add to Cart
In Campaign Manager, go to Measurement > Conversion tracking.
Click Create conversion, then choose Insight Tag conversion.
Give it a clear name (e.g. "Add to Cart") and choose the matching conversion behavior (Add to Cart → Add to Cart).
Set Views to 1 day, then continue.
Select Manage conversions setup > Or use the image pixel which is less accurate than the Insight Tag. Copy the Partner Id and Conversion Id. You will need to add this to a custom script later. Click Next.
Click Edit on Ad Set, then select the ad set you created. Click Save.
Click Create.
After saving, you should see it in Measurement > Conversion tracking showing the conversion's Status. A new one starts as Unverified and flips to Active once LinkedIn detects it firing — usually within about 24 hours. "Active" confirms tracking works; it is not a running total.
Add the Tracking Partner ID to Accelevents
In your Accelevents admin console, go to Settings > Integrations.
Click Configure next to LinkedIn Tracking Partner.
Paste your LinkedIn Tracking Partner ID.
Click Save.
Note: Only paste the Partner ID here. Leave the Conversion ID field empty — the scripts handle Add to Cart. Putting a conversion ID here makes LinkedIn count page views as that action.
Purchase
Purchase
In Campaign Manager, go to Measurement > Conversion tracking.
Click Create conversion, then choose Insight Tag conversion.
Give it a clear name (e.g. "Purchase") and choose the matching conversion behavior (Purchase → Purchase).
Set Views to 1 day, then continue.
Select Manage conversions setup > Or use the image pixel which is less accurate than the Insight Tag. Copy the Partner Id and Conversion Id. You will need to add this to a custom script later. Click Next.
Click Edit on Ad Set, then select the ad set you created. Click Save.
Click Create.
After saving, you should see it in Measurement > Conversion tracking showing the conversion's Status. A new one starts as Unverified and flips to Active once LinkedIn detects it firing — usually within about 24 hours. "Active" confirms tracking works; it is not a running total.
Add the Tracking Partner ID to Accelevents
In your Accelevents admin console, go to Settings > Integrations.
Click Configure next to LinkedIn Tracking Partner.
Paste your LinkedIn Tracking Partner ID.
Click Save.
Note: Only paste the Partner ID here. Leave the Conversion ID field empty — the scripts handle Purchase. Putting a conversion ID here makes LinkedIn count page views as that action.
Step 6 — Tracking Add to Cart, and Purchase (custom setup)
Because these actions don't correspond to page loads, you need a small amount of custom JavaScript that watches for each moment and fires the matching LinkedIn conversion.
Add JavaScript under Event Design > Event Website > Settings > Body Script that listens for the checkout events and calls LinkedIn's lintrk tracking function for each conversion ID.
Note: These should be added in the Body Script
This script needs to target the correct elements in the Accelevents checkout.
Common pitfalls to check:
Purchase: Purchase must be detected on the confirmation screen. On Accelevents the confirmation page does not have a unique URL, it's the same URL as when selecting tickets or submitting the payment information. The script instesd watches for 'Thanks for Registering' on the page - this confirms that they completed the purchase.
Free tickets: confirm the trigger works for free registrations, not just paid ones — free-ticket flows can read differently (for example, cart totals of zero) even when the button and steps look the same.
Testing: always confirm with a real test transaction, not just a code review.
Sample Body Script for Add to Cart
Sample Body Script for Add to Cart
If you're going to use this script, you'll need to replace it with your Partner Id and your Add to Cart conversion Id
<script>
(function () {
"use strict";
var LINKEDIN_PARTNER_ID = "9648612"; // your LinkedIn Partner ID
var LINKEDIN_ADD_TO_CART_ID = 27191644; // your Add to Cart Conversion ID
var DEBUG = true; // set to false to silence console messages
function log(msg, data) {
if (DEBUG && window.console) console.log("[LI-AddToCart] " + msg, data || "");
}
/* Load LinkedIn Insight Tag base (guarded). */
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
if (window._linkedin_data_partner_ids.indexOf(LINKEDIN_PARTNER_ID) === -1) {
window._linkedin_data_partner_ids.push(LINKEDIN_PARTNER_ID);
}
if (!window.lintrk) {
window.lintrk = function (a, b) { window.lintrk.q.push([a, b]); };
window.lintrk.q = [];
var first = document.getElementsByTagName("script")[0];
var tag = document.createElement("script");
tag.type = "text/javascript"; tag.async = true;
tag.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
first.parentNode.insertBefore(tag, first);
}
function isOnSelectStep() {
return document.querySelector(".ae-select-box.tickets-select-box") !== null;
}
/* Read the order total from the summary, plus ticket quantity. */
function readCart() {
var value = 0, quantity = 0;
// Total from the Order Summary (reads "$100.00")
var totalEl = document.querySelector(".order-summary-total-amount .ticket-type-price-font");
if (totalEl) {
value = parseFloat(totalEl.textContent.replace(/[^0-9.]/g, "")) || 0;
}
// Quantity from the ticket rows (so free tickets still register)
document.querySelectorAll(".price-ticket-qty-container").forEach(function (row) {
if (row.offsetParent === null) return;
var qtyEl = row.querySelector(".ae_select__single-value");
quantity += qtyEl ? (parseInt(qtyEl.textContent.trim(), 10) || 0) : 0;
});
return { value: value, quantity: quantity };
}
/* Stash the cart so the Purchase script can reuse the value. */
function rememberCart(cart) {
try { sessionStorage.setItem("li_cart", JSON.stringify(cart)); } catch (e) {}
}
function fireAddToCart(cart) {
if (typeof window.lintrk !== "function") return log("skipped — lintrk not ready");
window.lintrk("track", {
conversion_id: LINKEDIN_ADD_TO_CART_ID,
value: cart.value,
currency: "USD"
});
log("Add to Cart fired", cart);
}
document.addEventListener("click", function (e) {
var btn = e.target.closest("button");
if (!btn) return;
if (btn.textContent.trim().toLowerCase() !== "continue") return;
if (!isOnSelectStep()) return;
var cart = readCart();
if (cart.quantity < 1) return;
rememberCart(cart);
fireAddToCart(cart);
}, true);
log("Add to Cart tracker loaded");
})();
</script>
Sample Body Script for Purchase
Sample Body Script for Purchase
If you're going to use this script, you'll need to replace it with your Partner Id and your Purchase conversion Id
A note on free events and the Purchase conversion
On a free event, there's no payment step — registration completes without a checkout/billing page. The Purchase conversion (and the sample Purchase script) will still fire, but on a free event it's really tracking "registration completed," not an actual paid purchase. That's useful and works fine for confirming the setup.
If your event has paid tickets, the same script works, but you should run a real test purchase on a paid ticket to confirm it fires at the actual payment-completion step — a free registration can't fully validate the paid-purchase path.
<script>
(function () {
"use strict";
var LINKEDIN_PARTNER_ID = "9648612"; // your LinkedIn Partner ID
var LINKEDIN_PURCHASE_ID = 27191652; // your Purchase Conversion ID
var DEBUG = true; // set to false to silence console messages
function log(msg, data) {
if (DEBUG && window.console) console.log("[LI-Purchase] " + msg, data || "");
}
/* Load LinkedIn Insight Tag base (guarded). */
window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
if (window._linkedin_data_partner_ids.indexOf(LINKEDIN_PARTNER_ID) === -1) {
window._linkedin_data_partner_ids.push(LINKEDIN_PARTNER_ID);
}
if (!window.lintrk) {
window.lintrk = function (a, b) { window.lintrk.q.push([a, b]); };
window.lintrk.q = [];
var first = document.getElementsByTagName("script")[0];
var tag = document.createElement("script");
tag.type = "text/javascript"; tag.async = true;
tag.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
first.parentNode.insertBefore(tag, first);
}
function isConfirmationPage() {
var urlLooksRight = /\/tickets\/order\b/.test(window.location.pathname);
var text = (document.body && document.body.innerText) || "";
var textLooksRight = /thanks for registering|completed successfully/i.test(text);
return urlLooksRight && textLooksRight;
}
function recallCart() {
try { return JSON.parse(sessionStorage.getItem("li_cart") || "{}"); } catch (e) { return {}; }
}
var hasFired = false;
function firePurchase() {
if (hasFired) return true;
if (typeof window.lintrk !== "function") { log("waiting — lintrk not ready"); return false; }
hasFired = true;
var cart = recallCart();
var value = (typeof cart.value === "number") ? cart.value : 0;
window.lintrk("track", {
conversion_id: LINKEDIN_PURCHASE_ID,
value: value,
currency: "USD"
});
log("Purchase fired", { conversion_id: LINKEDIN_PURCHASE_ID, value: value });
return true;
}
function checkNow() {
if (hasFired) return true;
if (isConfirmationPage()) return firePurchase();
return false;
}
function arm() {
hasFired = false;
if (checkNow()) return;
var observer = new MutationObserver(function () { if (checkNow()) cleanup(); });
if (document.body) observer.observe(document.body, { childList: true, subtree: true });
var polls = 0;
var poller = setInterval(function () { polls++; if (checkNow() || polls >= 60) cleanup(); }, 1000);
function cleanup() {
if (observer) { observer.disconnect(); observer = null; }
if (poller) { clearInterval(poller); poller = null; }
}
}
var lastPath = window.location.pathname;
setInterval(function () {
if (window.location.pathname !== lastPath) { lastPath = window.location.pathname; arm(); }
}, 1000);
arm();
log("Purchase tracker loaded (v2, value-enabled)");
})();
</script>
Note: Both scripts include a line near the top that reads var DEBUG = true;. This controls whether the script prints status messages to the browser console (like [LI-Purchase] Purchase fired). It does not affect the tracking itself — the conversions fire the same either way; it only controls the console messages.
Leave it as true while you're setting up and testing, so you can open the browser console (press F12) and confirm each conversion fires — you'll see messages like Add to Cart tracker loaded and Add to Cart fired. Once you've confirmed everything works, you can change true to false in each script and save, so the messages no longer show on your live site. To troubleshoot later, just change it back to true.
Another important note: a console message only confirms the script fired in the browser. The authoritative confirmation that LinkedIn actually recorded the conversion is in Campaign Manager under Measurement > Conversion tracking, where the status shows Active.
Step 7 — Verify it's working
Install the free LinkedIn Insight Tag Checker Chrome extension.
Open your event site with the extension active and let it check.
A Status: Success result means the tag is firing. You should see your Partner ID confirmed, plus any Conversion ID that fired on the page you're viewing.
The checker only sees what fires on the exact page you're on. To confirm a checkout conversion (add to cart, purchase), run the checker on the checkout page, not the event home page.
What you'll see afterward
Conversion counts and performance appear under Advertise — but these populate only when a live ad is running, because LinkedIn ties conversions to ad clicks. Numbers like Clicks, CPC, and Spend only exist with a published, paid ad.
Summary: what works out of the box
Action | Works natively? | What's needed |
Page View | ✅ Yes | Base Insight Tag (Steps 1–3) |
Add to Cart | ❌ No | Custom event tracking (Step 6) |
Purchase | ❌ No | Custom event tracking (Step 6) |












































