Выберите метод и доступ
В справке Admitad по партнёрским программам описан запрос к advcampaigns/, параметры limit, offset и доступные фильтры. Сверьте права токена для выбранного метода и условия площадки. Программа в каталоге ещё не означает, что она подключена вашему проекту. Перед публичным показом проверьте, где в ответе или кабинете видно разрешение.
Пример первого запроса, который нужно запускать только из закрытой среды:
curl --fail-with-body --silent --show-error \
--header "Authorization: Bearer ${AFFILIATE_API_TOKEN}" \
'https://api.admitad.com/advcampaigns/?limit=1&offset=0'
Токен предварительно получает владелец интеграции по официальным правилам. Не передавайте его в браузер. Не выводите в публичный каталог закрытые ссылки, ставки и поля кабинета, которые не предназначены для размещения.
Сделайте слой приведения данных
Для каждой программы храните ключ «сеть + ID программы», название, статус, дату получения и только разрешённые публичные поля. Если сеть переименует продукт, сохраните старый URL карточки и обновите заголовок. Дубли с одинаковым ключом выводите в журнал. Если есть несколько площадок, допуск храните отдельно, чтобы не считать оффер доступным для всех.
Сначала загрузите весь набор в промежуточное хранилище. Если одна страница запроса не получена, не заменяйте рабочий каталог неполным. При успешной загрузке проверьте, что количество записей и число активных программ выглядят ожидаемо. Не принимайте исчезновение оффера за окончательное без проверки статуса и правил выборки.
Проверьте повтор, обрыв и смену статуса
Учебный сценарий. Сеть возвращает 120 программ по 50 на страницу. Первые две страницы получены, третья вернула ошибку. Действующий каталог остаётся прежним. После повторной полной загрузки программа с тем же ID изменила название. Обновите её карточку с сохранением URL. Если статус стал неактивным, выключите ссылку или покажите актуальный статус и замену там, где она полезна.
После сравнения опубликуйте новую версию одним переключением. Сохраните время, число страниц, список изменений и предыдущую выгрузку для отката.
Установите лимит числа страниц для теста и проверьте поведение при повторе страницы. Если API возвращает число записей, сверяйте его с итоговой выгрузкой. Если новый ответ меняет формат поля, остановите обработку с понятной причиной. Так несовместимый ответ не превратит весь каталог в список пустых карточек.