registerUser, профиль, аватар, гео — что видит Platform admin.

Пользователи в админке

После Auth пользователь попадает в админку Platform через членство application_users (не через «сырой» список Auth).

Обязательно

После signup/signin вызовите:

await platform.registerUser({
  platform: "web", // или android / ios / …
});

Без этого (и без других JWT-вызовов вроде registerDevice / getMyEntitlements) пользователь не появится в списке «Пользователи».

Профиль: имя и аватар

Передавайте публичный URL аватара и имя — они сразу видны в админке (список + карточка).

// при регистрации или сразу после
await platform.registerUser({
  platform: "android",
  display_name: "Иван",
  avatar_url: "https://cdn.example.com/avatars/u1.jpg",
  timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
  acquisition_source: "google_play",
});

// когда пользователь сменил аватар / имя в приложении
await platform.updateUserProfile({
  display_name: "Иван П.",
  avatar_url: "https://cdn.example.com/avatars/u1-new.jpg",
});

Flutter:

await platform.registerUser(
  platform: 'android',
  displayName: 'Иван',
  avatarUrl: 'https://cdn.example.com/avatars/u1.jpg',
  timezone: 'Europe/Moscow',
);

await platform.updateUserProfile(
  displayName: 'Иван П.',
  avatarUrl: 'https://cdn.example.com/avatars/u1-new.jpg',
);

Auth metadata

Если пишете аватар в Supabase Auth:

await supabase.auth.updateUser({
  data: { avatar_url: "https://…", full_name: "Иван" },
});
await platform.updateUserProfile({}); // подтянет metadata в application_users

Ключи metadata: avatar_url / picture / avatar, имя — full_name / name / display_name.

avatar_url должен быть публичным https://… (или data:image/…), не локальный путь на устройстве.

Гео (страна / город / timezone)

При первом контакте с API Platform заполняет:

ПолеИсточник
country_code, cityIP запроса (Cloudflare или GeoIP)
timezoneIP или поле timezone из SDK
acquisition_sourceтолько если передали в registerUser

В админке показывается флаг страны. Поля first-seen не перетираются при каждой поездке/смене VPN.

VPN: GeoIP видит страну выхода VPN, не «домашнюю» страну пользователя. Надёжно восстановить дом по IP нельзя.

HTTP

POST /v1/applications/{app_code}/users/register
Authorization: Bearer YOUR_ACCESS_TOKEN

{
  "platform": "web",
  "display_name": "Иван",
  "avatar_url": "https://…",
  "timezone": "Europe/Moscow",
  "acquisition_source": "organic"
}
PATCH /v1/applications/{app_code}/users/me
Authorization: Bearer YOUR_ACCESS_TOKEN

{
  "display_name": "Иван П.",
  "avatar_url": "https://…"
}

Далее: Чеклист · Справка API