FAQ
Short answers to the questions integrators ask most.
On this page
Can I use the Secret Key in my frontend?
No. The Secret Key creates participant sessions and must stay on your server. Your frontend only receives the participant token and uses the public API key.
Do my users need an AdQuest account?
No. Your backend tells AdQuest who the user is by creating a participant session with your own user ID. Users never sign in to AdQuest.
What should I use as external_user_id?
An opaque, stable ID from your own user system. Avoid phone numbers and emails when an internal ID will do, and never share one ID between users.
How long does a participant token last?
A participant token lasts 15 minutes. Each session response includes expires_in (900) and expires_at. Refresh the token through your backend before it ends, and discard it on logout.
The widget loads but shows no quests
Check that the platform is accepted and active, that the API key belongs to it, that a quest is active and visible to the platform, and that the API URL ends in /api/v1.
Which languages are supported?
English (en) and Persian (fa). Persian switches the widget to right-to-left. Anything else falls back to English.
When should I grant a reward in my own app?
Only after a verified server result or a signed webhook. A widget callback, a click or an animation is not proof of completion.
Can I build my own interface?
Yes. The headless JavaScript client and the public API give you the data and actions without the ready-made widget.