GIG value-based bidding — the explainer.
A ~65-second internal team film: why GIG must tell Google what a motor policy is worth — and how many it sells — to unlock value-based bidding. Animated data slides in the left two-thirds, a fixed presenter (Arjun) lip-syncing in the right third.
The film — v5
Direct link: explainer-v5.mp4 · all figures are from GIG's live Google Ads account.
01 — The goal
Make the case, to GIG's own team, in one short film: today Google Ads is told to buy leads, because that's the only signal it gets — so budget floods PMax (cheap leads) and we vanish from Search. The fix is one signal change: tell Google a policy's value, and how many we actually sell. The film had to be clear, on-brand (GIG blue + bronze), presenter-led, and built on real account data — nothing invented.
02 — What we did
Pulled the real numbers from GIG's Google Ads account — cost-per-lead vs cost-per-customer, the PMax-vs-Search spend trend, and generic-motor impression share. Built the eight data slides as animated HTML (charts that draw in, bars that build, numbers as the hero). Generated the voiceover (ElevenLabs) and a lip-synced presenter from a single still (HeyGen Avatar). Composited the talking presenter into a fixed right-third panel over the slides, laid a gentle music bed under the narration, and cut it in ffmpeg. The whole pipeline is now a reusable, gated skill — render every screen, check it with code, watch a short composite, then commit the full render.
03 — Versions
Each version shipped a defect that got caught and fixed. Logged, not hidden:
| Version | What it was | Caught |
|---|---|---|
| v1 | Cinematic black/red cut, talking head via a generic video model | lip-sync never synced (1/10) |
| v2 | Switched to HeyGen lip-sync; presenter as a bordered corner box | box competed with the message |
| v3 | GIG brand; presenter moved to a fixed right-third panel | presenter ran taller than the slide |
| v4 | Full-bleed alignment fixed; white background, flat blue | animations wrongly stripped; presenter squished |
| v5 | Animations restored (chart draws, bars build, text bounce); presenter native size | current — verified by motion check |
04 — What we learned
Five things, the hard way:
- Lip-sync needs a real avatar engine. Generic video models add mouth motion and staple audio on top — they don't actually sync. HeyGen's photo-avatar does.
- Verify the rendered artifact, not the intent. "Looks good" is a measured claim — it requires having looked at the pixels, not the plan.
- A still cannot prove motion. Sampling stills passed a cut that had no animation. The watch now measures frame-to-frame change inside each slide.
- Confirm ambiguous feedback before acting. "No animations" meant they were missing and wanted — read as "remove them," it cost a whole version.
- The presenter is an accent, not the subject. Native crop, no scale; fixed right third; message owns the left two-thirds.
Honest footnote: this took about four hours for a 7/10 — most of it rework from shipping before looking. The upside is the gated pipeline, the deterministic checker and the deck template now exist, so the next explainer should be a fraction of that.