UTM tracking guide

Track performance and optimize commission attribution with UTM parameters

What are UTM parameters?

UTM (Urchin Tracking Module) parameters are small pieces of text added to URLs that help you track where your website traffic comes from. Think of them as digital breadcrumbs that tell you exactly how users found your sherpa° integration.

How UTM tracking works

UTM parameters are small pieces of text added to URLs that act like digital breadcrumbs. When someone clicks your WebApp link, these parameters tell you exactly where that traffic came from - whether it was an email campaign, website button, mobile app, or any other marketing channel.

Example: When a user clicks a link with utm_source=email&utm_campaign=pre-departure-7day, you can see in your analytics that this visitor came from your 7-day pre-departure email campaign.

When to use UTM tracking

Consider implementing UTM tracking when you want to:

  • Track campaign performance: See which email campaigns, website buttons, or marketing channels drive the most eVisa applications
  • Optimize commission revenue: Identify which touchpoints generate the highest conversion rates and commission earnings
  • A/B test marketing efforts: Compare different approaches to see what works best
  • Understand user journeys: See how users move from different entry points to completing eVisa purchases
  • Measure ROI: Calculate the return on investment for different marketing channels and campaigns

UTM parameter structure

UTM parameters are added to URLs as query parameters. Here's the basic structure:

https://apply.joinsherpa.com/travel-restrictions?affiliateId=your-id&utm_source=email&utm_medium=newsletter&utm_campaign=summer-travel

Core UTM parameters

ParameterPurposeExample Values
utm_sourceIdentifies the traffic sourceemail, website, social-media, airline-app
utm_mediumSpecifies the marketing mediumemail, banner, button, push-notification
utm_campaignGroups related marketing activitiespre-departure-7day, booking-confirmation, summer-promo
utm_contentDifferentiates between similar linksvisa-check-button, travel-requirements-link
utm_termProvides additional contextusa-travelers, turkey-destination

UTM tracking with WebApp deep-linking

Basic WebApp UTM Implementation

website-button.html
<a
  href="https://apply.joinsherpa.com/travel-restrictions?affiliateId=your-id&utm_source=website&utm_medium=button&utm_campaign=visa-check&utm_content=header-button"
>
  Check Travel Requirements
</a>

Email Campaign Example

email-template.html
<!-- Pre-departure email link -->
<a
  href="https://apply.joinsherpa.com/explore/USA?affiliateId=your-id&utm_source=email&utm_medium=email&utm_campaign=pre-departure-7day&utm_content=visa-reminder&utm_term=usa-travelers"
>
  Don't forget to check visa requirements
</a>

<!-- Travel requirements link -->
<a
  href="https://apply.joinsherpa.com/travel-restrictions/TUR?affiliateId=your-id&originCountry=USA&nationality=USA&departureDate=2024-06-15&tripType=oneWay&fullyVaccinated=true&utm_source=email&utm_medium=email&utm_campaign=pre-departure-7day&utm_content=travel-requirements&utm_term=turkey-trip"
>
  View Turkey travel requirements
</a>

Dynamic UTM generation for WebApp

dynamic-utm.js
function generateWebAppLink(travellerData, campaignInfo) {
  const baseUrl = 'https://apply.joinsherpa.com/travel-restrictions';
  const params = new URLSearchParams({
    affiliateId: 'your-unique-affiliateid',
    nationality: travellerData.nationality,
    originCountry: travellerData.originCountry,
    departureDate: travellerData.departureDate,
    tripType: travellerData.tripType,
    fullyVaccinated: travellerData.fullyVaccinated,
    // UTM Parameters
    utm_source: campaignInfo.source,
    utm_medium: campaignInfo.medium,
    utm_campaign: campaignInfo.campaign,
    utm_content: campaignInfo.content,
    utm_term: `${travellerData.destination}-${travellerData.nationality}`,
  });

  return `${baseUrl}/${travellerData.destination}?${params.toString()}`;
}

// Usage example
const link = generateWebAppLink(
  {
    nationality: 'USA',
    originCountry: 'USA',
    destination: 'TUR',
    departureDate: '2024-06-15',
    tripType: 'oneWay',
    fullyVaccinated: true,
  },
  {
    source: 'airline-email',
    medium: 'email',
    campaign: 'pre-departure-7day',
    content: 'travel-requirements',
  },
);

UTM tracking with Trip Element SDK

The Trip Element SDK also supports UTM parameters through the placement and utmParameters configuration options.

Basic Trip Element UTM Implementation

trip-element-utm.js
const elementConfig = {
  placement: 'mmb', // Manage My Booking placement
  travellers: [
    {
      nationality: 'USA',
    },
  ],
  segments: [
    {
      segmentType: 'OUTBOUND',
      origin: { airportCode: 'JFK' },
      destination: { airportCode: 'HAN' },
      departureDate: '2024-06-15',
    },
  ],
  // UTM Parameters for tracking
  utmParameters: {
    source: 'website',
    medium: 'trip-element',
    campaign: 'mmb-integration',
    content: 'visa-check',
    term: 'vietnam-trip',
  },
};

function onSherpaEvent(event) {
  if (event.type === 'sdkLoaded') {
    $sherpa.V2.createElement('trip', elementConfig).mount(
      '#sherpa-trip-element',
    );
  }
}

Advanced trip element UTM with dynamic data

advanced-trip-element.js
function createTripElementWithUTM(travellerData, placement, campaignInfo) {
  const elementConfig = {
    placement: placement,
    travellers: [
      {
        nationality: travellerData.nationality,
      },
    ],
    segments: travellerData.segments,
    utmParameters: {
      source: campaignInfo.source,
      medium: campaignInfo.medium,
      campaign: campaignInfo.campaign,
      content: `${placement}-${travellerData.segments[0].destination.airportCode}`,
      term: `${travellerData.nationality}-${travellerData.segments[0].destination.airportCode}`,
    },
  };

  return elementConfig;
}

// Usage example
const config = createTripElementWithUTM(
  {
    nationality: 'USA',
    segments: [
      {
        segmentType: 'OUTBOUND',
        origin: { airportCode: 'LAX' },
        destination: { airportCode: 'LHR' },
        departureDate: '2024-07-20',
      },
    ],
  },
  'discovery',
  {
    source: 'airline-website',
    medium: 'trip-element',
    campaign: 'summer-travel-2024',
  },
);

Real-world use cases

1. Airline pre-departure email campaign

Scenario: Airline sends emails 7, 3, and 1 day before departure

airline-email-campaign.html
<!-- 7 days before departure -->
<a
  href="https://apply.joinsherpa.com/explore/USA?affiliateId=airline-id&utm_source=airline-email&utm_medium=email&utm_campaign=pre-departure-7day&utm_content=visa-reminder&utm_term=early-reminder"
>
  Check visa requirements for your upcoming trip
</a>

<!-- 3 days before departure -->
<a
  href="https://apply.joinsherpa.com/travel-restrictions/TUR?affiliateId=airline-id&originCountry=USA&nationality=USA&departureDate=2024-06-15&tripType=oneWay&fullyVaccinated=true&utm_source=airline-email&utm_medium=email&utm_campaign=pre-departure-3day&utm_content=urgent-reminder&utm_term=last-minute"
>
  Final reminder: Check travel requirements
</a>

<!-- 1 day before departure -->
<a
  href="https://apply.joinsherpa.com/travel-restrictions/TUR?affiliateId=airline-id&originCountry=USA&nationality=USA&departureDate=2024-06-15&tripType=oneWay&fullyVaccinated=true&utm_source=airline-email&utm_medium=email&utm_campaign=pre-departure-1day&utm_content=final-reminder&utm_term=day-before"
>
  Last chance: Verify travel documents
</a>

2. Travel agency website integration

Scenario: Travel agency with multiple touchpoints

travel-agency-website.html
<!-- Header navigation -->
<a
  href="https://apply.joinsherpa.com/travel-restrictions?affiliateId=agency-id&utm_source=agency-website&utm_medium=header-nav&utm_campaign=general-traffic&utm_content=nav-link"
>
  Travel Requirements
</a>

<!-- Booking confirmation page -->
<a
  href="https://apply.joinsherpa.com/explore/USA?affiliateId=agency-id&utm_source=agency-website&utm_medium=booking-page&utm_campaign=post-booking&utm_content=confirmation-cta&utm_term=usa-travelers"
>
  Check visa requirements for your booking
</a>

<!-- Mobile app push notification -->
<a
  href="https://apply.joinsherpa.com/travel-restrictions/EGY?affiliateId=agency-id&originCountry=USA&nationality=USA&departureDate=2024-08-10&tripType=roundTrip&fullyVaccinated=true&utm_source=agency-app&utm_medium=push-notification&utm_campaign=egypt-promo&utm_content=destination-alert&utm_term=egypt-summer"
>
  Egypt travel requirements updated
</a>

3. Trip Element SDK integration

Scenario: Airline website with embedded Trip Element

airline-trip-element.js
// Manage My Booking page
const mmbConfig = {
  placement: 'mmb',
  travellers: [{ nationality: 'USA' }],
  segments: [
    {
      segmentType: 'OUTBOUND',
      origin: { airportCode: 'JFK' },
      destination: { airportCode: 'CDG' },
      departureDate: '2024-09-15',
    },
  ],
  utmParameters: {
    source: 'airline-website',
    medium: 'trip-element',
    campaign: 'mmb-page',
    content: 'visa-check-mmb',
    term: 'usa-france-trip',
  },
};

// Discovery page
const discoveryConfig = {
  placement: 'discovery',
  travellers: [{ nationality: 'USA' }],
  utmParameters: {
    source: 'airline-website',
    medium: 'trip-element',
    campaign: 'discovery-page',
    content: 'visa-search',
    term: 'general-search',
  },
};

Performance tracking & commission attribution

Why UTM tracking is critical

Commission attribution:

  • Track which campaigns drive actual eVisa purchases
  • Identify high-converting touchpoints for optimization
  • Ensure proper commission tracking across all channels
  • Measure ROI by campaign and channel

Performance insights:

  • Compare conversion rates across different campaigns
  • Identify optimal timing for pre-departure communications
  • Measure effectiveness of different content types
  • Track user journey from first touch to conversion

Best Practices

1. Consistent naming convention

utm_campaign: {campaign-type}-{timing}-{year}
utm_content: {link-type}-{destination}
utm_term: {nationality}-{destination}-{context}

2. Campaign segmentation

  • Pre-departure: pre-departure-7day, pre-departure-3day, pre-departure-1day
  • Post-booking: booking-confirmation, itinerary-sent
  • Promotional: summer-promo-2024, holiday-special
  • Seasonal: spring-travel, winter-vacation

3. Content differentiation

  • eVisa links: visa-check, visa-application, visa-reminder
  • Travel requirements: travel-requirements, entry-requirements, documentation
  • Health requirements: vaccination-info, health-requirements

4. Testing and optimization

  • A/B test different UTM parameter combinations
  • Monitor performance by time of day and day of week
  • Test different content and messaging approaches
  • Optimize based on conversion data

Common mistakes to avoid

  1. Inconsistent naming: Use the same naming convention across all campaigns
  2. Missing affiliateId: Always include your affiliate ID for commission tracking
  3. Over-complicated UTM terms: Keep parameter values simple and descriptive
  4. Not testing links: Always test UTM links before sending to users
  5. Ignoring mobile: Ensure UTM parameters work on mobile devices