Я уверен, что где-то видел красивое решение задачи, но не могу найти. Суть в следующем:
- API нужен на странице только при наступлении некоторого условия,
- чтобы использовать API, его надо сначала загрузить.
Решение (если я не галлюцинирую) выглядело так:
- Как только API потребовался, мы начинаем его загрузку, а задания на его использование помещаем в аналог очереди (возможно, это был обычный массив);
- когда API готов, он обрабатывает все задания из очереди;
- все новые задания при загруженном API исполняются сразу или практически сразу.
Вроде бы похоже на то, как Метрика/Аналитика работают с window.dataLayer ...