How does Airbnb track and measure growth marketing?

Jing Guo
The Airbnb Tech Blog
9 min readMay 4, 2021


By: Jing Guo, Henry Wu, Abhrajit Mukherjee, Shike Mei


Airbnb’s mission is to “Create a world where anyone can belong anywhere.” This message is delivered to people all around the world through marketing, e.g., See What’s Possible When It’s Made Possible by Hosts. It helps Airbnb connect guests and hosts to build a strong community, and undoubtedly contributes to the impressive growth of the company.

Figure 1. Airbnb Marketing Domains

Marketing at Airbnb is exciting — it presents challenges on numerous fronts, one of which is accounting for campaign tracking across the different ad platforms (see Figure 1). Tracking enables the Marketing team to have the full capability to analyze the performance and impact of the campaigns and then further optimize these campaigns to achieve their goal with a minimized budget.

In this blog post, we’ll discuss how Airbnb built a unified tracking measurement system to support marketing campaigns by introducing C-parameter tracking as well as a system for analytics and growth evaluation.


The Marketing team runs guest acquisition campaigns, host recruitment campaigns, and general brand marketing campaigns among a variety of channels, including performance marketing, social networks, website/magazine posts, an affiliate program, brand marketing, and IOC (International Olympic Committee). Along with other high growth companies, marketing strategies at Airbnb are dynamic — with numeric targets that vary under certain circumstances, such as the global pandemic. Building a system that is simple and intuitive to use as well as adaptable to highly dynamic and fast moving situations has been the key to making it a success.

There were several main system requirements we wanted to uphold in our design:

  1. Scalable: Including big paid growth brands such as Google and Facebook. There are different ad platforms that target different markets and countries. We would need any ad platforms to be easily onboarded to the tracking system with minimal efforts.
  2. Flexible: Tracking tends to come as a second priority in Marketing. The system would have to be flexible enough to enable tracking even for the campaigns that have been alive for a long time without losing any traffic.
  3. Fault tolerant: Considering the long list of ad platforms and marketing operation vendors, the internal tracking system would have to be able to detect and resolve any type of tracking failures.
  4. High data quality: Data quality of marketing campaigns is crucial. Any campaign optimization effort will be of less value with poor and incomplete data. High marketing data quality would eventually help Airbnb save millions of dollars in marketing budget.

C-parameter Tracking (C-Tracking)

For marketing channels that support programmatic tracking parameters, Airbnb developed its own tracking parameter embedded in the URL. It is called the C (campaign) parameter tracking. The C-parameter is composed of two parameters: PI (Platform ID) and PK (Platform Key){pi}.pk{pk}

PI: PI stands for “Platform ID”, which is the integer ID value for a particular provider, e.g., PI = 0 for Google.

PK: PK is the unique identifier for each individual campaign or marketing activity on a particular platform. It is usually composed of alphanumeric identifiers with underscores. The important thing here is to have the granularity low enough that you can apply metadata at the lowest level possible. A variety of marketing targets require different PKs. Say you want to promote Airbnb brands in the most famous blogs and now you need to decide on a set of platform keys to track a series of campaigns within multiple blogs:

  • Blog A: New Year’s Eve promotion
  • Blog B: Make Possible by Host
  • Blog A: Host Appreciation
  • Blog B: Valentine’s Day promotion

A PK definition of pk = blog_id seems to work fine, but this will not be helpful if we want to track “promotion” level performance. We’ll need pk{blog_id}_{promotion_id}

For paid marketing, in order to track the performance of each individual keyword or display ad, PK should be set at lowest possible level; for example, a Google keyword level C-parameter:{adgroup_id}_{creative_id}_{device}_{keyword_id }

Tracking Dimension

With tracking keys, the next step was to add marketing insights to campaigns. Marketing insights, which has been called tracking dimension internally at Airbnb, is composed of three components: tracking key, provider metadata and marketing metadata.

Tracking Key: C-parameter used to track growth marketing traffic and tracking dimension lookup.

Provider Metadata: Details about campaigns, accounts, and status from ad platforms and vendors. Most of these details are collected through various data ingestion pipelines. Provider metadata contains both marketing channel and campaign information.

Marketing Metadata: Details about the marketing purposes. These details have three categories: Strategy is used to classify marketing purposes such as App Installs, Guest/Host Growth, or Generic Brand recognition; Targeting is used to classify marketing campaigns targets, such as user group or destination country; Metadata is all other meta info about the marketing campaigns such as internal CMS (campaign management system) related data, campaign active time, versions, etc.

With well-structured tracking dimension attributes, marketers or data scientists are able to slice-and-dice the performance of marketing campaigns at the lowest possible granularity. With that, they can then come up with comprehensive marketing insights to further optimize marketing conversions.

Why C-tracking and not UTM?

UTM tracking is an industry-wide tracking standard, which is also integrated seamlessly with Google Analytics. A UTM code is a snippet of simple code added to the end of URLs to track the performance of marketing campaigns and content. A UTM code looks something like below: &utm_campaign=spring_sale&utm_content=shoe_ad

Why would Airbnb not use UTM tracking directly? Considering the fast moving components of the Airbnb marketing strategy, marketing at Airbnb requires a tracking technology with full flexibility to support any tracking granularity. At the same time, the tracking system should demonstrate high fault tolerance to easily fix any possible tracking data without blocking campaign launching. Detailed comparison between UTM vs C-tracking is listed in the table below:

All Values in URL

UTM code has major tracking values in the URL, e.g., traffic source, campaign name and so on. In contrast, C-Tracking only requires a platform identifier PI and a unique campaign identifier PK. All other campaign details were kept at Airbnb internally. So, PK could be treated as a collection of all existing or newly added UTM parameters. Besides that, PK also supports both the combinations of meaningful alphanumeric parameters and UUID.

Number of Parameters and Flexibility

UTM tracks five variants of a URL, including utm_source, utm_campaign, utm_content, utm_term. For different marketing campaigns, UTM requires all parameters to be pre-defined. To solve the same problem, C-Tracking only requires a combination of PI and PK. At the same time, PK definition gives the marketing team the best flexibility to track campaigns at any level. To achieve the same goal, UTM tracking requires adding an additional parameter to the URL and it creates additional complexity in the whole system.

Time Constraint

Say you want to launch an important campaign that needs a detailed report within a tight timeline. UTM tracking requires all tracking parameters to be carefully pre-defined, which are not modifiable after campaigns are launched.— otherwise, a considerable amount of traffic would be lost permanently after any new updates. However, C-Tracking only requires a unique identifier (PK). This gives C-Tracking the benefit of speed and performance. Tracking setup does not block campaigns launching.

Fault Tolerance

C-Tracking has full flexibility around campaign classification. Even if some problems are identified after the campaign is launched, the Marketing team is able to update the tracking dimension at any time. This leads to a high fault tolerance threshold to analyze campaigns more precisely.

System for Analytics and Growth Evaluation

After the introduction of C-Tracking, the next topic is introducing the system Airbnb used internally (See Figure 2) to manage all C-parameters, tracking dimensions, and the lookup between them.

Figure 2. High-level view of the overall architecture

Campaign Management

Vendor management system services two major functions:

  1. Data Ingestion — Integration with 3rd party ad platforms or campaign management vendors to collect all kinds of metadata. It is used to collect all information we would possibly want to know for the marketing campaigns. At the same time, all performance data, such as cost, clicks, impressions, is also collected in this progress.
  2. Tracking Setup — For ad platforms that support programmatic tracking, a C-parameter will be created internally. This automated creation of C-parameters prevents duplication of these parameters both at the vendor level as well as in the Airbnb side.

Tracking Dimension Management

A Tracking Dimension Management (TDM) system allows engineers, data scientists and marketers to create, insert, and modify tracking dimensions. It also supports other management features such as tracking dimension validation, metadata lookup (e.g., provider meta info, business unit requirements, etc.) and monitoring.

Traffic Monitoring

Traffic from marketing campaigns is critical, yet issues could arise. For example, a URL could contain special characters and fail a URL parser. C-parameters could be corrupted in the rendered URL or tracking dimension data might be missed in the TDM system. In order to get alerts to handle all possible issues within minimum delay, there are two main features built in the marketing traffic monitoring.

Realtime traffic classification and alerting: In order to cover 100% of the marketing campaigns tracking, all Airbnb landing events are pre-classified and are then validated in real-time. Validated traffic is fed to Druid then HIVE to power real-time and batch analytics. The validation in the steaming job can prevent any possible tracking issues in a short time.

Campaign tracking dimension monitoring: To guarantee the quality of all marketing C-parameters, the system also scans all C-parameters in the system to validate tracking dimensions to achieve the highest possible marketing data quality.

Offline Data Layer

In the end, marketing pipelines will aggregate multiple data sources and generate complete datasets about marketing campaigns. It has been used as a single source of truth to represent all ads tracking dimensions stored in data warehouses. With that, there are many data applications built on top of tracking dimensions data — such as conversion attribution, marketing performance reporting, campaigns metric analytics, targeting optimization and campaign optimization. A few key areas of focus of the offline data systems are:

  • Offline Anomaly Detection — This system detects irregularities in dimension and tracking systems. Any deviation will result in a ticket filed in the oncall’s queue. This early detection system helps prevent broken data from being propagated downstream.
  • Attribution — The last x days of tracking key metadata is collected and attributed to a conversion. Conversion here can be booking, experience, signup, host listing creation, etc. This attribution system helps every conversion to be associated with a specific marketing channel or direct traffic.
  • Analytics — On top of attribution lives a set of summary datasets. These datasets rollup at campaign and geo level. The provider and user metadata are used here along with cost and conversion data to get the efficiency of each campaign. The efficiency numbers help in tuning the campaigns further as the cycle repeats (see Figure 3).
  • Reporting — The reporting layer is built on top of the attribution and summary datasets using Airbnb’s in-house reporting framework. These reports on spend, attribution, and summarized conversions contain key metrics which help in the company’s decision making process.
Figure 3. Attribution and Tuning Cycle


The campaigns tracking and classification system has been a critical piece to support marketing activities at Airbnb. Our data module and system design are still evolving as we continue to improve on data quality, scalability, and marketing performance, even as we are presented with new product requirements. As an outcome, the system today serves more than 130 ad platforms and 100M+ marketing ads tracking at Airbnb.

If you’re interested in building data driven systems to power future marketing, please reach out or apply here.


This work was only possible with great support across our entire organization. Special thanks to Dan Nikitin, Judith Henrichsmann, Lauren Parenti, Michael Musson, Sherwain Willison, and Tong Zhao.