Я интегрирую SDK в свой проект Flutter для работы с приложениями для Android и iOS. Для Android я пока не обнаружил никаких проблем с этим. Однако для iOS необходим дополнительный шаг для отображения пользователям диалога авторизации отслеживания Apple для iOS 14+. Моя проблема в том, что AppsFlyer SDK неправильно считывает этот статус авторизации, SDK всегда инициализируется с этим статусом как «не определено» или «отказано». Из-за этой проблемы мои отслеживаемые данные не отображаются на панели управления AppsFlyer, поэтому вот правильный поток (что должно произойти) и подробный поток, который у меня есть (что происходит в конце):
Счастливый ход (что должно произойти):
- Откройте приложение.
- Отобразите авторизацию отслеживания Apple. li>
Принять отслеживание.
- AppsFlyer SDK инициализируется со статусом отслеживания: 2 — «авторизованный».
- AppsFlyer SDK отправляет события без ошибок, и данные корректно отражаются на информационной панели.
Текущий ход решения проблемы:
- Открыть приложение.
- Показать разрешение Apple на отслеживание.
- Принять отслеживание.
- AppsFlyer SDK инициализируется со статусом отслеживания: 0 — «не определено» или 3 — «отказано».
- AppsFlyer SDK отправляет события с ошибками, и данные не отражаются на Dashboard (поскольку для SDK пользователь, видимо, не разрешил отслеживание).
Здесь вы можете найти личную вилку ваш пример проекта с кодом для отображения диалогового окна авторизации отслеживания Apple:
https://github.com/Themakew/appsflyer-flutter-plugin. По сути, я настроил проект для запуска приложения iOS и добавил весь необходимый код для отображения оповещений отслеживания.
Что происходит с моей стороны:
После шага 2 я могу просмотреть журнал консоли Xcode из AppsFlyer SDK, который показывает, что статус отслеживания рассматривается как «0», а затем как «3»:
Код: Выделить всё
[com.appsflyer.serial] [ATT] Tracking authorization update from `oldStatus`: -255 to `newStatus`: 0
[com.appsflyer.serial] [ATT] Tracking authorization update from `oldStatus`: 0 to `newStatus`: 3
А в журналах флаттера VSCode статус ATT:
Код: Выделить всё
[log] ATT status: TrackingStatus.authorized
После шага 3 журналы показывают, что, когда SDK отправляет запрос API, полезная нагрузка также рассматривает статус ATT как отклоненный или неопределенный (что является ошибкой):
Код: Выделить всё
"af_iad_data":{"error":"ADClientErrorTrackingRestrictedOrDenied"}
После шага 4 журналы показывают, что SDK отправляет событие покупки, и в его полезных данных снова появляется ошибка:
Код: Выделить всё
"af_iad_data":{"error":"ADClientErrorTrackingRestrictedOrDenied"}
Даже если я перезапущу приложение снова и снова, AppsFlyer SDK никогда не обновит статус ATT на своем конце (даже если статус ATT «авторизован»). Таким образом, это проблема не только при первом запуске приложения, но и после него, когда приложение будет открываться бесчисленное количество раз после того, как AppsFlyer SDK неправильно установит статус ATT.
Вопрос: делаю ли я это? что-то не так с моей стороны, или это, возможно, ошибка Appsflyer, поскольку он неправильно распознает текущий ввод статуса ATT?
Подробнее здесь:
https://stackoverflow.com/questions/792 ... trictedord