Implementation, at.js/Web SDK, APIs, and Mobile/Offline Channels
Implementation questions test whether you know the request/response lifecycle. With at.js 2.x: targetPageParams/targetPageParamsAll supply parameters, getOffers fetches decisions, applyOffers renders them, and triggerView fires for SPA views. With Web SDK: sendEvent with decisionScopes, renderDecisions: true, and applyPropositions for manual rendering. Server-side uses the Delivery API (/v1/deliver or /v2/deliver) with authentication via IMS/OAuth.
Mobile: the Adobe Experience Platform Mobile SDK (formerly Mobile Services) with the Target extension; offline scenarios require caching offers or on-device decisioning. Understand that offline decisions can't call the edge, so rules must be pre-fetched.
APIs: know the Admin API (activities, offers, audiences), the Profile API (read/update visitor profile), and the Reporting API. Understand authentication and rate limits.
Traps: forgetting renderDecisions behavior differences; assuming mbox parameters are available server-side without passing them; confusing triggerView with a page load; expecting real-time profile updates from the Profile API to be instant everywhere.
Rule of thumb: for SPAs, fire a view on every route change and request decisions for the scopes that view needs - don't re-request the whole page.
Worked example: a React app uses Web SDK. On each route, sendEvent with the view's decision scopes and renderDecisions: true; for a custom component, fetch propositions and applyPropositions manually.