Server-Side vs Client-Side Ad Tracking: Which is better for OTTs?
In today’s video streaming landscape, ads play a crucial role in monetizing the content, seamlessly integrating into the viewer experience. This fluid transition between content and advertisements is powered by advanced ad insertion technologies, which does not hinder the streaming experience. Broadly, there are two main methods for delivering ads in b/w streams: server-side ad insertion (SSAI) and client-side ad insertion (CSAI). Each approach impacts how ads are tracked, delivered, and ultimately experienced by the viewer, shaping the effectiveness of ad campaigns and overall user satisfaction.
Client-side ad insertion is a more traditional approach where ads are loaded and played directly by the viewer’s device or media player. This means that ads are fetched and displayed as a separate process from the main content stream.
On the other hand, server-side ad insertion stitches ads into the content stream before it ever reaches the viewer’s device. This method makes the ad experience feel more seamless to the user since ads are presented as though they are part of the content itself.
Why do we need tracking of ads?
We need to track ads to ensure their effectiveness, verify delivery, and optimize ad revenue. Tracking provides critical data on whether an ad was successfully delivered and viewed, how long it was watched, and whether the viewer interacted with it.
This information helps advertisers and content owners measure the performance of campaigns, calculate ROI, and improve future targeting strategies. Additionally, tracking ensures compliance with agreed-upon metrics like impressions, views, or interactions, which are essential for billing and revenue sharing.
There are two primary methods for tracking ads: client-side tracking and server-side tracking. These methods are described in more detail below, each with distinct advantages and challenges depending on the implementation.
Server-Side vs Client-Side Ad Tracking in SSAI
Server-Side Ad Tracking
Server-side ad tracking refers to the process of monitoring and reporting ad performance metrics directly from the server where the ads are inserted into the content stream. Since the ad insertion and playback logic are handled server-side, the server is responsible for generating and sending tracking beacons to the ad servers at appropriate times.
Client-Side Ad Tracking
Client-side ad tracking in SSAI refers to the process where the client device (e.g., SDK/Streaming App) is responsible for tracking ad performance and sending tracking beacons to the ad servers. Even though the ads are inserted server-side, the client is still tasked with monitoring playback and reporting metrics such as ad impressions, quartile completions, and other interactions.
Challenges of Server-Side Ad Insertion With Server-Side Tracking
Limited Viewer Interaction Data
Server-side tracking cannot capture detailed user interactions with ads, such as pauses, skips, fast-forwards, or mutes. Advertisers miss out on critical engagement metrics that can provide insights into user behavior and ad effectiveness. This limits the ability to optimize future ad campaigns based on actual user interactions.
Inaccurate Ad Viewability Metrics
Server-side tracking may not accurately determine if an ad was viewed by the user. For example, the server might record an impression even if the user closed the app or switched to another content during the ad. This can lead to inflated or inaccurate reporting of ad impressions, resulting in less reliable metrics for advertisers and potential discrepancies in billing.
Difficulty in Handling Dynamic Ad Decisions
SSAI without client-side tracking struggles with real-time, user-specific ad decisions, such as choosing ads based on user demographics, behavior, or location. The lack of client-side data reduces the ability to serve personalized ads, leading to less targeted advertising and potentially lower engagement rates.
Challenges with Accurate Quartile Tracking
Server-side tracking alone may not provide accurate data on ad completion rates, such as how many users watched 25%, 50%, 75%, or 100% of an ad. Advertisers may miss critical insights into how much of an ad was consumed, hindering their ability to measure ad effectiveness and optimize future campaigns.
Advantages of Client-Side Ad Tracking in SSAI
Control Trick Play Mode Using Ad-Tracking Callbacks
Trick Play modes (e.g., fast-forward, rewind, pause) allow viewers to control video playback, potentially skipping ads. With client-side ad tracking, you can monitor and control these modes during ad playback.
Personalized Ad Targeting
Client-side SDKs can collect data directly from the user’s device, such as viewing habits, preferences, and demographic information, to serve more relevant ads. By using real-time data from the client device, the Ad server can deliver personalized ads that are more likely to resonate with the viewer, improving engagement and click-through rates. Advertisers benefit from higher engagement with their ads, which translates into better ROI and more effective campaigns.
Actual Ad Data to Ad Server from Client-Side SDK
The client-side SDK can provide precise and accurate data back to the ad server, such as ad start/end times, viewer interactions, and completion rates. Since the data is collected directly from the user’s device, it reflects the actual viewer experience, leading to more accurate performance metrics like viewability, completion rates, and interaction rates. The SDK can send data back to the ad server in real time, allowing for immediate insights and adjustments to ad campaigns.
Ensuring Accurate Ad Measurement with Client-Side Tracking
Accurate Measurement of Stitched Ads in the Stream
Develop robust mechanisms to measure the exact points where ads are stitched into the main content. This requires precise logging and monitoring to track when an ad starts and ends within the stream. Ensure that the ad tracking SDK is integrated deeply with the video player, allowing it to detect and report ad playback events accurately. This includes tracking events like ad start, ad end, and any mid-roll points.
Matching the Video Time with Ad Metadata Time
Synchronize the video playback time with the ad metadata time to ensure that the reported ad events align with the actual video content being played. This involves extracting timecodes from the ad metadata and matching them with the video’s current time.
Fetching Program Date Time (PDT) for HLS and Presentation Time for DASH:
- HLS (HTTP Live Streaming): Extract the #EXT-X-PROGRAM-DATE-TIME tag from the HLS manifest to get the precise program date and time.
- DASH (Dynamic Adaptive Streaming over HTTP): Extract the presentation time from the DASH manifest. This is typically done by parsing the Period and Segment tags.
Comparing Ad Start Time and Video Current Time Every 0.5/1 Second
Implement a periodic check within the SDK to compare the ad start time (from metadata) with the current video playback time. This involves setting up a timer within the SDK that triggers every 0.5 or 1 second to perform this comparison. If discrepancies are found, they should be logged and, if possible, corrected in real time. Ensure that this frequent checking does not introduce significant overhead or latency in the playback, especially on resource-constrained devices like smart TVs.
Best Practices for Handling Client-Side Ad Tracking
In this section, we illustrate the architecture and implementation of MediaMelon’s client-side tracking SDK. The SDK plays a pivotal role in accurately tracking ads during playback by syncing player time with ad start time to ensure seamless monitoring.
The process begins when the MediaMelon SDK collects ad metadata from the ad metadata server and parses it into a JSON format. For HLS streams, the SDK parses the manifest to retrieve the Program Date Time (PDT), and for DASH streams, it gathers presentation time. Simultaneously, the SDK captures the current video time from the media player.
Using PDT (for HLS) or presentation time (for DASH), the SDK aligns the player’s timeline with the ad start time. A continuous timer within the SDK monitors the synced video time and compares it to the ad start time. Once the player’s playhead reaches the ad start, the SDK identifies the beginning of the ad, initiates ad tracking, and fires the necessary tracking beacons to the ad server. It also sends callbacks to the application level, allowing control over trick-play modes such as fast-forward or rewind.
In the case of VOD content, the SDK retrieves ad metadata only once at the start of the video. However, for live streams, the SDK continuously calls the ad metadata server at regular intervals to ensure accurate tracking throughout the stream.
Book a demo with our video experts and see MediaMelon customized for your OTT platform’s requirement in action now!