Модуль SPaySdkDynatrace
Обзор
SPaySdkDynatrace — отдельный опциональный модуль, который включает отправку метрик SberPay SDK в Dynatrace. Модуль поставляется отдельным артефактом и не входит в основной SPaySdk.
Если Dynatrace в вашем приложении не используется — подключать модуль не нужно. Основной SPaySdk работает без него и не содержит зависимости от Dynatrace.
Требования
Для работы модуля необходимо:
-
Подключённый
SPaySdkверсии 3.2.5 и выше. -
Dynatrace OneAgent iOS SDK версии 8.343.2.
Модуль собран и протестирован против Dynatrace OneAgent iOS SDK версии 8.343.2. Совместимость с другими версиями не гарантируется.
Подключение модуля
Для работы модуля в проекте должны быть подключены два артефакта: сам SPaySdkDynatrace и Dynatrace OneAgent iOS SDK.
Подключение SPaySdkDynatrace
Перетащите файл SPaySdkDynatrace.xcframework, переданный вам вместе с основным артефактом SDK, в Frameworks, Libraries, and Embedded Content, а также выставите Embed & Sign.
Подключение Dynatrace
Перейдите в файл вашего проекта, во вкладке Package dependancies нажмите + и в строке поиска введите:
https://github.com/Dynatrace/swift-mobile-sdk
В качестве правила зависимости укажите версию 8.343.2, выберите продукт Dynatrace и добавьте пакет в приложение.
Настройка Info.plist
Добавьте в Info.plist вашего приложения ключ DTXAutoStart со значением false:
<key>DTXAutoStart</key>
<false/>
Без этого ключа агент Dynatrace попытается запуститься автоматически и в логах появятся ошибки Missing mandatory property applicationId! и Missing mandatory property beaconUrl!. SDK инициализирует Dynatrace самостоятельно, автозапуск агента не требуется.
Начало работы
Импортируйте модули в проект и зарегистрируйте провайдер аналитики до вызова SPay.setup(...):
import SPaySdk
import SPaySdkDynatrace
SPay.registerAnalyticsProvider(SPayDynatraceAnalytics())
SPay.setup(bnplPlan: true,
spasiboBonuses: true,
resultViewNeeded: true,
helpers: true,
needLogs: true,
helperConfig: SBHelperConfig(sbp: true, creditCard: true),
environment: .prod) { error in
if let error {
print(error.errorDescription)
}
}
Порядок вызовов важен: registerAnalyticsProvider должен быть вызван до SPay.setup(...). Если провайдер зарегистрирован после инициализации SDK, метрики отправляться не будут.
Больше ничего делать не требуется — идентификатор пользователя и параметры подключения к Dynatrace SDK передаёт в модуль самостоятельно.
Публичный API
SPay.registerAnalyticsProvider
public static func registerAnalyticsProvider(_ provider: SPayAnalyticsProvider)
Регистрирует внешний провайдер аналитики. Единственный метод, который требуется вызвать для подключения модуля.
SPayDynatraceAnalytics
public final class SPayDynatraceAnalytics: SPayAnalyticsProvider {
public init()
}
Реализация провайдера аналитики для Dynatrace. Создаётся без параметров.
SPayAnalyticsProvider
public protocol SPayAnalyticsProvider: AnyObject {
var toggleName: String { get }
var userId: String { get set }
func sendEvent(_ event: String)
func sendEvent(_ event: String, with string: String)
func sendEvent(_ event: String, with dictionary: [String: String])
func sendError(_ event: String, error: Error, with context: [String: Any]?)
func config()
func startSession()
func finishSession()
func applyRemoteConfig(_ config: [String: String])
}
Методы и свойства протокола SPayAnalyticsProvider вызываются SDK автоматически. Не обращайтесь к ним напрямую из кода приложения.