# Cross-platform application

Cross-platform is a new type of devtodev project for applications designed to run on different operating systems using a shared codebase. The project combines user data from multiple platforms.

{% hint style="info" %}
**Please note that you cannot switch previously created devtodev projects to a cross-platform type!**
{% endhint %}

{% hint style="warning" %}
**Prerequisite**

Cross-platform projects use identification by User ID. You need to use your own custom identifiers and set them using the [setUserID](https://docs.devtodev.com/integration/integration-of-sdk-v2/setting-up-events/user-profile#user-id) method during SDK initialization.&#x20;

**Required SDK version**: 2.6.0 (Unity 3.10.0) and higher.
{% endhint %}

## Limitations

For now, cross-platform projects **do not support**:

* Push Notifications, A/B tests or Remote Configuration;
* Store integrations for market data (Google Play, Apple App Store etc.);
* Cohort export;&#x20;
* Subscription tracking and Subscriptions report.&#x20;

## Adding a cross-platform application&#x20;

1. Select **Cross-platform application** as your app type and click `Next`.&#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FPtkbqBq1jhxRv3PTxrmL%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-12-18%20%D0%B2%2015.48.33.png?alt=media&#x26;token=c5cda593-490a-40fc-ad4f-e1ec5656bdfc" alt=""><figcaption></figcaption></figure>

2. Give your project a name and select an app type. \
   If you choose the “app” type, gaming events will not be tracked and displayed in the interface, even if they are integrated. Game-related reports will be hidden in the interface. \
   \
   Optionally, you can enable a [Test mode](https://docs.devtodev.com/integration/test-devices) to exclude data received during integration. \
   \
   Click `Next` to proceed.

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2F0tmGpOyuWj9aaIXxBlKc%2Fimage.png?alt=media&#x26;token=2b0cd72a-652d-4280-999b-0cef76ce9d6c" alt=""><figcaption></figcaption></figure>

3. Click `Finish` to add the project ot devtodev. Next, you will need to add at least one platform. You will be redirected to Settings to complete the process.&#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2Fwqp9ZqyQ2lxPZ4jXZnDz%2Fimage.png?alt=media&#x26;token=ea61779e-a0bb-4a92-921b-a9ce32332788" alt=""><figcaption></figcaption></figure>

### Adding a platform

1. Click `Add Platfrom` to select a platform for your app.&#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FlFnLMbeBapalkASd1oNB%2Fimage.png?alt=media&#x26;token=2554e3fa-5203-42fe-8bb7-09e947e7ee2a" alt=""><figcaption></figcaption></figure>

2. Select a platform type from the drop-down list and add a name. This name will appear in the report filters and in project settings.&#x20;

{% hint style="info" %}
Note: You will not be able to change the platform after creation, however, you will be able to delete it.&#x20;
{% endhint %}

Click `Save` to finish.&#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FfhUFXvAvglD87nmPQ8Ck%2F%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202025-12-23%20%D0%B2%2012.38.22.png?alt=media&#x26;token=c299429e-0236-48b2-bcd4-4192544ab221" alt=""><figcaption></figcaption></figure>

### Edit platform&#x20;

Click on the `pencil icon` to make changes. &#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FXluGV70NuWPaIbFqfbW4%2Fimage.png?alt=media&#x26;token=7cf89293-d5e7-4a45-bdb9-11f78aeedcfc" alt=""><figcaption></figcaption></figure>

You can change the name of the platform.&#x20;

It is possible to delete a platform when there is more than one platform in the list. Click `Delete` and confirm the action.&#x20;

{% hint style="warning" %}
When you delete a platform, devtodev stops receiving events from this platform and hides historical data from the reports. \
If you would like to save the historical data, do not delete the platform; remove the `Platform ID` from your integration code. &#x20;
{% endhint %}

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FSBDsf6v1yQN0mzb50qax%2Fimage.png?alt=media&#x26;token=53e1ece1-3ca0-4660-bf80-14f028840784" alt=""><figcaption></figcaption></figure>

## Integration

The integration process is similar to a standalone type of application. The only difference is an additional Platform ID.&#x20;

* [**SDK**](https://docs.devtodev.com/integration/integration-of-sdk-v2/sdk-integration): simply copy the `App ID + Platform ID` in the initialization code of the corresponding platform app.
* [**Data API**](https://docs.devtodev.com/integration/server-api/data-api-2.0): you will need to send the `Platfrom Id` separately with every package as a `platform` field.&#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FdrUqsydfv58JCeKHEjlG%2Fimage.png?alt=media&#x26;token=420dcd16-032b-4adf-87b9-851348226bce" alt=""><figcaption></figcaption></figure>

## Revenue rate settings

You can set up revenue rate and transaction check rules for different platforms in Settings -> Payments integration -> [Payments settings](https://docs.devtodev.com/reports-and-functionality/project-related-reports-and-fuctionality/settings#payments-settings).

## Cross-platform features

### Platform filter&#x20;

In most of the reports you will see a **Platforms** filter at the top of the list. By default, the reports will show data from all platforms. You can select a specific platform to inspect it in more detail.

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FCIdYV16tTiJO8BtPyBvs%2Fimage.png?alt=media&#x26;token=232b838a-45fe-44a7-b1bb-7a633e7b961e" alt=""><figcaption></figcaption></figure>

Some reports, like Transactions, will allow you to select several platforms at once.&#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FM3CaFVPFb766ADMLVRCL%2Fimage.png?alt=media&#x26;token=63113b14-a4f2-4c02-985a-b37dfabc557a" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If the report does not have a platform filter, it will use the data from all platforms at once.&#x20;
{% endhint %}

### User card&#x20;

Here you can check all events the user performed on different platforms.&#x20;

The user has the same devtodev ID on all platforms.&#x20;

In the Basic properties tab you will see a dedicated list of properties for each platform and general information about the user in the General section. For example, *Install date* and device information are platform-specific, so they will be different for each platform section.&#x20;

The General section stores the *Install date* of the first-ever platform and updates the *Last seen* field according to the latest data from any platform.&#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FbZQhmWXGgTBqOwyc5jHG%2Fimage.png?alt=media&#x26;token=ba4ebd1d-cacf-4943-9a1c-32469b12eec1" alt=""><figcaption></figcaption></figure>

Cheater/Tester marks are connected to the User card and are **not** platform-specific. If you mark a user for a cheat transaction on one platform, the user becomes a cheater on **all platforms** and their transactions become invalid.&#x20;

### SQL&#x20;

Each table has a `platform` parameter, the value corresponds to `Platform ID` in project Settings.&#x20;

The cross-platform projects store users from all platforms in corresponding tables and also in one common `users` table. You can find a platform-specific users table by Platform ID in the name postfix.&#x20;

<figure><img src="https://2105883905-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LnGcP_ZeRJ1ipj9O8dF%2Fuploads%2FdTs9AIKV81wtIuOC54ak%2Fimage.png?alt=media&#x26;token=00ea88c7-8e36-4249-b0fa-38f056b0d888" alt=""><figcaption></figcaption></figure>
