JS SDK API

JS SDK API — клиентский интерфейс web-скрипта Gravity Field. Через него можно отправлять события, получать рекомендации и данные товаров, запускать embed-кампании, ждать появления элементов на странице и отправлять трекинг для API-driven сценариев.

Скрипт публикует один и тот же объект в window.GF и window.SL. В новом клиентском коде используйте GF; SL остается совместимым legacy-алиасом.


Что должно быть настроено

Перед использованием JS SDK проверьте базовую web-интеграцию:

  • на странице подключен core.js;
  • до загрузки скрипта объявлен window.GF;
  • задан GF.section;
  • задан GF.pageContext с типом страницы и данными контекста.

Подробнее: Установка скрипта и Контекст страницы.


С чего начать

Задача Куда перейти
Передать пользовательское действие: добавление в корзину, покупку, wishlist или кастомное событие Передача событий
Получить рекомендации и отрисовать собственный виджет Работа с рекомендательными виджетами
Получить данные товаров, social proof или product set Получение информации о товаре
Дождаться DOM-элемента, переменной, SDK-события или попадания элемента в экран Ожидание элементов, переменных
Запустить embed-кампанию из клиентского кода Вставка embed виджетов
Отправить трекинг API-кампании или использовать advanced-методы Другие полезные функции

Структура раздела


Готовность скрипта

После инициализации скрипт отправляет событие gf-ready. Используйте его, если код должен выполняться только после загрузки пользовательских данных, dynamic.js, кампаний и публичных методов SDK.

document.addEventListener('gf-ready', function () {
  // JS SDK is ready
});

Отправка событий и SPA

GF.API() добавляет действие в очередь скрипта. Если метод вызван до полной инициализации, действие будет выполнено после запуска очереди.

Вызов Назначение
GF.API('event', eventObject) Отправить пользовательское событие. Подробнее: Передача событий.
GF.API('pageview', data) Отправить pageview. Обычно вызывается скриптом автоматически.
GF.API('spa', params) Обновить контекст и перезапустить SPA-кампании. Подробнее: SPA.
GF.API('event', {
  name: 'Add to Wishlist',
  properties: {
    eventType: 'add-to-wishlist-v1',
    productId: 'item-34454',
  },
});

Карта методов

Сценарий Метод Подробнее
Получить товары рекомендаций GF.Recommendations.get(strategy, options, callback) Работа с рекомендательными виджетами
Разметить и отслеживать кастомный рекомендательный виджет GF.Recommendations.track(element, variationData) Работа с рекомендательными виджетами
Получить данные товаров и social proof GF.ServerUtils.getProductsData(skus, options) Получение информации о товаре
Получить product set GF.ServerUtils.getProductSets(ids) или GF.getProductSets(ids) Получение информации о товаре
Получить affinity-профиль GF.ServerUtils.getAffinity() Получение аффинити профиля пользователя
Ожидать DOM-элемент GF.waitForElement(selector, callback, minElements, interval, maximumRetries) Ожидание элементов, переменных
Ожидать переменную в window GF.waitForVariable(variable, interval, maximumRetries) Ожидание элементов, переменных
Подписаться на события SDK GF.PubSub.on(topic, callback) и GF.PubSub.once(topic, callback) Ожидание элементов, переменных
Запустить embed-кампанию GF.Utils.runCampaign(campaignId, params) Вставка embed виджетов
Создать overlay new GF.Overlay(codeObject, options) Другие полезные функции
Отправить трекинг API-кампании GF.ServerUtils.reportEngagement(token, type) Другие полезные функции
Получить аудитории текущего пользователя GF.Audiences.getCurrent() Другие полезные функции
Выполнить низкоуровневый HTTP-запрос GF.Ajax.get(url, withCredentials) / GF.Ajax.post(url, data, headers, withCredentials) Другие полезные функции
Работать с хранилищами скрипта GF.StorageUtils.get(...), GF.StorageUtils.set(...), GF.StorageUtils.remove(...) Другие полезные функции
Получить SHA-256 hash строки GF.digestString(string) Другие полезные функции
Получить базовые данные события GF.ServerUtils.getEventBaseData() Другие полезные функции
Отправить низкоуровневое событие GF.ServerUtils.logEvent(data, endpoint, shouldSave) Другие полезные функции
Отправить низкоуровневый engagement GF.ServerUtils.logEngagement(data, type) / GF.ServerUtils.logRecsEvent(data) Другие полезные функции
Выполнить низкоуровневые запросы рекомендаций GF.ServerUtils.getRecommendations(...) / GF.ServerUtils.getRecommendationsBatch(...) Другие полезные функции