Skip to content

#23d -- VCR Breakdown by Exchange/OS

Priority: High Status: In Progress Category: Delivery Raised by: Min Hein Kyaw, 22 May 2026

Problem

Post-VAST fixes (#23a, #23b), Cavai average VCR is ~80% vs Humology's internal benchmark of 87%. GAM exchange and Android cohorts are pulling the average down.

Key numbers:

  • GAM: 70.96% VCR
  • Android: 79.37% VCR
  • iOS: 90.95% VCR

Kevin's Assessment (Discord)

Working on it currently, also expecting next week release. Android is going to get a bump, iOS will most likely stay the same. When streaming, we always have AV1 as stream option too, but it might be that some older Android devices don't have hardware support for it and try to do software decoding, which results in too much CPU usage and ad is closed coz of it. Apple won't pick AV1 at all, if it doesn't have harware support

Another option would be to turn off AV1 and just go with good old h264. It's rather reliable, but it's also more costly to deliver, especially on longer videos

Another option is to create separate playlist file that has only h264 media in there and that's used for VAST only. Then primary desktop ads can still pick either AV1 or h264. Kinda best of both words, but requires most dev time to figure out how to handle it

Available Data

The VCR/CTR comparison Excel (8 Jun 2026) contains:

  • Creative Report (16 rows): per-creative daily data comparing DSP Cavai, DSP Non-Cavai, and Cavai Report numbers
    • Example: Pfizer Prevenar campaign (Sweden) -- lower CTR and VCR on Cavai vs non-Cavai with identical settings
  • Exchange App Report (1937 rows): per-exchange, per-app breakdown with impressions, clicks, complete views
    • Exchanges include: Google Ad Manager, Digital Turbine, and more
    • Apps include: eFootball, Dream League Soccer, Top Eleven, Head Ball, etc.
    • Massive dataset for analysis

Min Hein (9 Jun) shared comprehensive app and exchange breakdown reports with Haakon.

Cavai Feasibility Assessment

Can we fix this from our side? Yes, Kevin is actively working on it.

Root cause (Kevin's analysis): AV1 codec on older Android devices.

  • AV1 is offered as a streaming option alongside h264
  • Older Android devices lack hardware AV1 decoding, fall back to software decoding
  • Software decoding causes excessive CPU usage, device kills the ad
  • iOS avoids this problem entirely by never picking AV1 without hardware support

Three potential solutions:

OptionImpactCostDownside
Turn off AV1 globallyHigh -- fixes AndroidLow dev timeHigher delivery cost (h264 larger files), loses AV1 benefits on capable devices
Separate VAST-only h264 playlistHigh -- fixes VAST AndroidMedium dev timeNeed to figure out playlist routing
Keep current + waitNoneNoneProblem persists

Kevin recommends option 2 (separate VAST playlist) as "best of both worlds" but notes it requires the most dev time.

Next Steps

  1. Kevin expects a release next week (from 26 Jun, so ~early July)
  2. Android VCR should improve; iOS will stay the same
  3. The exchange/app data (1937 rows) could help identify which specific publishers/apps have worst VCR
  4. GAM's low VCR (70.96%) may have additional causes beyond codec -- worth investigating GAM-specific behavior
  • #15 (completion rate drop -- overlaps significantly)
  • #23a (rewarded video transcoding -- released)
  • #23b (VAST tag stack fixes -- released)
  • #23e (malformed VAST rejections)

Internal documentation