# Moving from the legacy mobile export

For customers who integrated the mobile export before October 2026. The current mobile export is requested with `"version": "v2"` on [Create an export](/docs/api-reference#create-export). Your existing job keeps returning the legacy export, unchanged, until a retirement date we will agree with you. Desktop is unchanged.

## What changes

| Column | Change | What to do |
|---|---|---|
| `demographics.date_of_birth` | **Removed** | Use `age` in [`demographics`](/docs/data-dictionary#demographics). The current export carries no date of birth. |
| `evidence_metadata` | Removed | Use [`brand`](/docs/data-dictionary#brand), `brand_evidence` and `ad_text`. |
| `brand` | New | The advertiser by its public name. |
| `brand_evidence` | New | The exact text the brand was read from. |
| `other_brands` | New | Other brands named in the ad, `[]` when there are none. |
| `industry` | New | Top level of the IAB Ad Product Taxonomy 2.0. |
| `industry_path` | New | The full IAB category. |
| `ad_text` | New | The advertiser's own words in the ad. |
| `creative_url` | New | Link to the ad's image or video file. |

Every other column keeps its name and type.

## What the rows now mean

[`last_seen`](/docs/data-dictionary#last_seen) is when the ad left the screen: the device's next screen change after the ad was last captured, in the same app or another, at most 60 seconds later and 10 minutes after `first_seen`, and earlier when the camera stopped. In the legacy export it was the last capture of the ad. `duration_s`, `eyetracker_enabled`, `fixation_duration_ms` and `is_fixated` cover `first_seen` to `last_seen`, so the same impression shows longer time on screen and more fixation than in the legacy export. Compare within one export, not across the two.

`impression_id` values do not pair between the two exports, and a rebuilt day can give its rows new ids. Merge by day, not by id.

## How to switch

1. **Add `"version": "v2"`** to the create call. Same key, same endpoints, same files.
2. **Update your reader.** Drop `date_of_birth` and `evidence_metadata`; add the seven columns.
3. **Replace by day.** Delete the days in each batch from your table, then insert, as in [the loader](/docs/integration#5-load-and-replace-by-day).
4. **Fetch from 13 October 2026.** v2 data starts there. Earlier days are being added, and the first day moves back as they arrive; a `from_date` before it is a 400 `V2_FROM_DATE_NOT_AVAILABLE` with the first day in `available_from`.
5. **Keep the old job** until the retirement date. Tell us at data@attexdata.ai when you have switched.
