Josephine Liu, Sherry Huang on June 9th 2021

Our latest feature, Journeys, empowers teams to unify touchpoints across the end-to-end customer journey.

All Company articles

Ilya Volodarsky on January 31st 2013

Today we’re happy to announce that we’ve just released another premium add-on: our Marketo integration. Marketo is a popular lead-nurturing and lead management system. It helps you keep track of all your leads, syncs them with Salesforce, and keeps your users engaged with in-depth marketing compaigns.

Marketo doesn’t provide any official language libraries of their own, so before today integrating with Marketo required using their SOAP XML API, a process that usually takes a month.

The cleanest Marketo API ever.

Instead, integrating with Segment means the whole process takes less than an hour. You can use the same clean API you’ve come to expect from any of our production-ready libraries: Javascript, PHP, .NET, Java, Node, Ruby, Python, Android, iPhone, WordPress or any other HTTP enabled device via our REST API.

So now you can update your Marketo leads from your website, from your servers and, for the first time ever, right from your mobile apps with a nice, clean API.

No more custom server code.

Part of our Marketo integration includes a completely transparent inclusion of Marketo’s Munchkin Javascript library. Which means you no longer have to write custom server-side code to handle signing requests in the browser. We handle all of that for you automatically!

HubSpot vs. Marketo vs. Pardot

If you’re looking to compare it other lead nuturing systems, you can also checkout our HubSpot integration and our Pardot integration which are similar tools. You can easily toggle all three of them on on your Segment integrations page and see which one you like most!

Not to mention, once you’ve installed Segment you can easily flip on all our other types of tools, so not only can you compare Marketo and HubSpot, but you can turn on KISSmetrics or Mixpanel with the click of a button as well!

PS. Coming up next in your premium integration pipeline are Salesforce in April and Omniture in May, so subscribe to the blog to stay updated! If you’re interested in using either of those integrations, shoot us an email.

Peter Reinhardt on January 14th 2013

Over the last week we’ve gotten lots of requests for specific integrations. Four new integrations are now available under your integrations tab, and you can toggle them off and on at will!


Is a general web analytics tool that lets you oversee all your sites at once. It’s beautifully designed and dead simple.


Helps you increase your sales with targeted email marketing based on user behavior. For example, email the people who signed up but haven’t activated. Read more at

Quantcast and comScore

These two ad market beacons give 3rd party verification to your traffic volume, which is critical for publishers. They don’t use our API but it’s one less javascript snippet on your page. and

If you want to integrate any or all of these services, sign up above. You can toggle these integrations on or off with a single click under the integrations tab.

May these new integrations keep your code cleaner than ever before. More soon :)

Ilya Volodarsky, Ian Storm Taylor on January 14th 2013

“We can’t spare developer time right now.”

That’s what you’ll hear if you ask a startup why they aren’t tracking their funnels, why they aren’t sending drip-email campaigns, or why they haven’t installed live-chat. Even services like Intercom or that are practically guaranteed to increase your conversion rates still get punted.

There are lots of different useful analytics services out there: event tracking, email remarketing, live-chatting, etc. These services are key to understanding your users and increasing your conversion, but no one wants to spend extra developer time setting them up. We’ve heard from companies who are two months into an analytics integration and still aren’t finished!

That’s the status quo: Everyone loses.

Your startup loses out on missed conversion opportunities and on having real conversations with your users. Your users lose out on the first-time learning experience with the product. And analytics services lose out on potential paying customers.

Lowering that integration barrier was why we built Analytics.js in the first place, and today we’re bringing the same clean API to PythonRubyNode.jsC#/.NETand Java!

Just like Analytics.js, our server-side libraries route your data to any analytics service you enable with the click of a button. Our goal is to give you a clean, simple API that works no matter what language you code in. Because server-side analytics is no man’s land.

No seriously, server-side analytics is crazy.

Installing server-side analytics tracking is like The Odyssey: it should be a quick job, but you’re in for some real suprises along the way. You’ll come face to face with some of the nastiest APIs (and docs!) in analytics.

The first thing you’ll find is that most modern analytics services don’t offer official server-side libraries. You might stumble across a community-supported library, but it probably hasn’t been touched in months.

If you’re lucky, you’ve decided to use a service that maintains a well-documented JSON API. If you’re not so lucky, you’re stuck trudging through SOAP or XML. (Looking at you Marketo and Salesforce!)

Even with a clean REST API it’s not smooth sailing. Since you’re wrapping their REST API, all of your calls will result in HTTP requests that you don’t want slowing down your controller code. And you’ll find a note like this in their documentation:

We strongly encourage you to use non-blocking solutions, such as a queue service like Kestrel or RabbitMQ.

What that means is that you’ll need to write more code that:

  • Submits analytics calls to a new queue that you have to maintain.

  • Adds workers that read from the queue and send out HTTP requests.

  • Keeps these new parts of your cluster alive.

What should have been a before-lunch task can quickly turn into a multi-week epic. Those are the kind of problems we want to eliminate.

We’ve had all of these problems ourselves.

We know these problems all too well. Really. We used to work on our own analytics service and getting people integrated was near impossible. So when we started building our server-side libraries, saving developer time was our number one priority.

One of the best ways to achieve that is to make our libraries performant, so that you never have to build your own wrapper around them. Each of our libraries uses an internal queue to make identify and track calls non-blocking and fast for the calling thread. They also take advantage of our batching REST API and asynchronous flushing.

The result is a set of high-performance analytics libraries that you can drop right into web server code that’s serving hundreds of requests a second. No more queuing code. No more workers.

Another huge time saver is that we use the same API (and the same docs) for all of our libraries. With the release of our server-side libraries, you can now use exactly the same API in every language you write in.

That means you don’t need to spend time reading through a new set of (crazy) API docs every time you want to add a new service. Once you know one, you know them all. Seriously, look how similar they are:


analytics.track('Completed Purchase', { 'Revenue': 39.95, 'Shipping Method': '2nd-decade' });


analytics.track('', 'Completed Purchase', { 'Revenue': 39.95, 'Shipping Method': '2nd-decade' })


Analytics.track( user_id: '', event: 'Completed Purchase', properties: { 'Revenue' => 39.95, 'Shipping Method' => '2nd-decade' } )


analytics.track({ userId: '', event: 'Completed Purchase', properties: { 'Revenue': 39.95, 'Shipping Method': '2nd-decade' } });


Analytics.track("", "Completed Purchase", new EventProperties() .put("Revenue", 39.95) .put("Shipping Method", "2nd-decade"));

C# / .NET

Analytics.Client.Track("", "Completed Purchase", new Properties() { { "Revenue", 39.95 }, { "Shipping Method", "2nd-decade" } });

It’s an investment that pays dividends immediately.

We’re excited to be releasing libraries that we know will simplify all of your analytics tasks, server-side and client-side.

All of our libraries are open-source too, so you can check them out on Github. They’re also fully (and cleanly) documented, client-sideserver-sideintegrations, everything!

You can signup here. And, as always, send your questions and feedback to!

PS. If the insane APIs got you reminiscing, we’ve got a post coming soon with the weirdest things we’ve seen while reading through all these complicated analytics APIs. Things that even Poseidon wouldn’t have wished on anyone.

Peter Reinhardt on January 5th 2013

Right before Christmas we launched analytics.js on HackerNews and the support has been tremendous! In just 24 hours the repo broke 1,000 Github stargazers, and since then the community has helped us add new integrations. But we’re just getting started, and we’re super excited to share an even easier way to integrate analytics with you.

In case you missed it, analytics.js is a wrapper for your client-side analytics services. Instead of littering your app with a bunch of hooks for all the analytics services you want to integrate, analytics.js exposes a simple API that routes your data to all of them!

There’s an enormous variety of analytics services available today, and most of them collect the same data in slightly different ways. When you’re integrating several of these tools the code gets messy real quick. Analytics.js paves over the differences and keeps your code clean.

The community has already helped add support for five more integrations:

And we’re only just getting started! We’re committed to adding more in the coming months, because we think analytics.js is the best way to add analytics to a web app. And we’re happy that lots of you seem to agree from the awesome responses we’ve received! Our favorite tweet so far looked like wild cursing at first:

But we were pleasantly surprised when we realized it translated to something along the lines of “OMG WHERE WAS THIS ABSTRACTION 8 MONTHS AGO!?!?!?!”.

And we’re making it even easier.

We’ve launched Segment—a hosted version of analytics.js that lets you toggle analytics services off and on with a single click. You can literally swap analytics integrations without touching a single line of code.

All of your analytics integrations for all of your projects, no matter how big or small, are managed in one place. For companies this means your site, your blog, your different services; for hobbyists this means all of your side projects! And it comes with a simple dashboard for monitoring activity across all your projects at a glance.

Segment is a much more powerful version of analytics.js. And it won’t be limited to client-side javascript. We’re taking it server-side too!

Server-side libraries and a REST API.

Lots of projects require sending analytics data server-side because some events, like nightly cron jobs, are only available on the server. But integrating analytics server-side is an even bigger headache than in the browser. Not only do developers have to learn a new API for every integration, but they also need to build queuing systems to avoid multiple HTTP requests for every action a user takes.

We’re currently beta-testing a simple REST API that performs the same routing as analytics.js. You hit our servers once and we send the data to any analytics services you choose. Which means no additional requests and no extra code.

Along with the REST API comes a series of clean, server-side libraries with proper queuing and batching to keep your integration as performant as possible. The routing happens on our servers, so you save on outbound requests. And you don’t need to risk changes in production just to try out a new analytics solution.

Any node or python developers out there who want in the beta? Get in touch!

Mobile libraries too!

Next up are mobile libraries with proper queuing and offline support so that you don’t have to manage all the details yourself. Which means no matter which integrations you choose to turn on, you’re guaranteed to get a mobile-friendly client library. We’ll route your data wherever you want, so you can try out a new dashboard or lifecycle email tool without a release to the app store.

Trying new analytics should be easy.

Everyone knows that analytics are extremely important for success, but right now integrating analytics services is a huge headache. Our vision is to remove the barrier to integrating analytics, so that your codebase stays clean and you can try new analytics tools in minutes. If you’re interested we’d love to hear what you think of Segment!

Peter Reinhardt on December 18th 2012

We launched with 6 analytics providers integrated on Monday. Today we’re announcing 3 new integrations! Many thanks go to KlaviyoHubspot and GoSquared for jumping on it and integrating practically overnight.

As usual, you can send your data to any of these three new analytics services with just a single click and an API Key in the Segment integrations tab. Here’s what each of the three new integrations does:


GoSquared is a real-time analytics dashboard that gives you an overview of what is happening on your site right now. Real-time countries, landing pages, even tweets!


Klaviyo is an email remarketing service for web applications that lets you send emails to your users based on events they trigger. We recommend them for any SaaS or Ecommerce web site.


Hubspot is an enterprise analytics service that specializes in inbound marketing. We recommend it for anyone with high-value leads.

Want to try out all three? You’re just a few clicks away!

Become a data expert.

Get the latest articles on all things data, product, and growth delivered straight to your inbox.