Skip to documentation
AdQuestDocs

Video evidence

API type: video. Reward attention followed by a comprehension check.

On this page

Connect playback to verification

The participant starts the quest, watches the required media, answers the question and submits completion. In a custom player, startQuest(id, { watchDuration }) marks the session as media-driven. Feed actual player progress to syncMediaProgress(currentTime, duration); do not advance it with an unrelated timer or allow seeking to count as watching.

The public progress endpoint accepts watch_duration with external_user_id. Report actual watched time during playback, and include the applicable watch evidence on completion. Retain any delivery token from start when your environment requires it.

Headless progress — using questRequest from the Quest evidence overview
// Call from your playback integration with measured watch time.
await questRequest(config, questId, "progress", { watch_duration: watchedSeconds });
// After the required watch and the user's answer:
await questRequest(config, questId, "complete", {
  question_id: question.id,
  user_input: selectedOptionId,
  watch_duration: watchedSeconds,
});

Verify before publishing

  • Confirm the cover, playback and audio work on desktop and mobile.
  • A correct answer after sufficient watching can complete; an incorrect answer or insufficient watch evidence must not reward.
  • Test pause, seek, app backgrounding, expired sessions and a repeated completion. Do not grant rewards just because the video ended.

Next steps

Something unclear, missing or wrong here? Tell us