Set up Davanci Nexus in your game
Unity SDK 1.4.0 · iOS & Android · from import to your first build.
Jump to a step
1Before you start
One Unity package sets up analytics, attribution, ads, purchases and remote config for iOS and Android. You need:
- Your game added on Davanci Nexus, and its game token.
- Firebase config files:
GoogleService-Info.plist(iOS) andgoogle-services.json(Android). - GameAnalytics game key and secret key (iOS and Android).
- AppsFlyer dev key.
- Ads: AppLovin MAX SDK key and ad unit IDs (or LevelPlay app keys).
2Add your game & get the token
- On Davanci Nexus, add the game (store bundle ID or App Store ID, platform).
- Copy the game token shown once after creation.
- Lost it? Developers can see it again on Studio → Game tokens.
3Install the package
- Download the package with the button above (or below).
- In Unity: Assets → Import Package → Custom Package… and import everything.
- Paste the game token when asked. The installer downloads the modules enabled for your game.
- The Nexus Setup wizard opens. Later: menu Davanci Nexus → Nexus Setup.
4Platform & SDKs
- Platform: choose iOS, Android or both.
- Install SDKs: click Install All (Firebase, GameAnalytics, AppsFlyer, External Dependency Manager, ads, CMP).
- Use Refresh status if an SDK still shows as missing.
5Keys & IDs
- Configure → Create NexusConfig.
- AppsFlyer: paste the Dev Key.
- GameAnalytics: Game Key and Secret Key for iOS and Android, then Apply to GameAnalytics.
- If your game has currencies, list them and click Register economy resource types.
6Firebase
- Firebase console → Project settings → download the config files for your iOS and Android apps.
- Put
GoogleService-Info.plistandgoogle-services.jsonin the root ofAssets/. - Click Refresh. On macOS, use Fix macOS plugin quarantine if Unity blocks the plugin.
Firebase starts by itself at launch. No code needed.
7Privacy (GDPR & ATT)
Install and enable the InMobi CMP in the Privacy step (account from the InMobi Choice portal). The SDK then runs, in order: consent → iOS tracking prompt (ATT) → SDKs → notifications.
Nothing to call. Read AuthorizationManager.IsATTAuthorized if you need it.
8Remote config & A/B tests
In the Remote Config step paste the game's Game ID from Davanci Nexus. Values are edited on the Nexus Remote Config page.
int lives = DavanciNexus.GetInt("start_lives", 3);
bool sale = DavanciNexus.GetBool("sale_on", false);
string arm = DavanciNexus.GetVariant("shop_layout");9Ads
- Monetization step: import and enable AppLovin MAX (or LevelPlay).
- Paste the SDK key, click Apply SDK key to AppLovin, then fill the rewarded, interstitial and banner ad unit IDs.
DavanciMonetization.InitializeAds(() => { /* ads ready */ });
if (DavanciMonetization.IsRewardedReady())
DavanciMonetization.ShowRewardedAd("double_coins", rewarded => {
if (rewarded) GiveCoins();
});
DavanciMonetization.ShowInterstitialAd("level_end", _ => { });
DavanciMonetization.ShowBanner();Ad revenue is reported to every tool automatically.
10In-app purchases
- Same step: Install Unity IAP → Enable.
- Android: paste the Google Play licensing key, then Regenerate receipt tangles.
- Add each product with + Add product. IDs must match the store consoles.
DavanciNexus.InitializeIAP(() => { });
string price = DavanciNexus.PriceString("remove_ads");
DavanciNexus.Buy("remove_ads", result => { /* check result */ });
DavanciNexus.RestorePurchases(_ => { });11Tutorial & progress
Same calls for every game, so Nexus can draw the funnels. Give each tutorial step a number (from 0) and a stable short name. Never rename it after release.
using Davanci.Nexus;
DavanciNexus.TutorialBegin();
DavanciNexus.TutorialStep(0, "tap_to_move"); // step shown
DavanciNexus.TutorialStepDone(0, "tap_to_move"); // step finished
DavanciNexus.TutorialComplete();Progress is anything ordered the player moves through. index is the step (1, 2, 3…), kind a short label (default level).
DavanciNexus.Progress.Start(5);
DavanciNexus.Progress.Complete(5);
DavanciNexus.Progress.Fail(5, "out_of_moves");
DavanciNexus.Progress.Complete(2, "world", "candy_forest");
DavanciNexus.Progress.Complete(3, "milestone", "bakery_unlocked"); // idle games- Names: lowercase letters, digits and
_, up to 40 characters. - Each step is sent once per player; replays are skipped. Attempts and time are measured for you.
- Don't use
tutorialas a kind, and don't call GameAnalytics or Firebase directly for these. TutorialStep(int)andLevelStart(int)still work but are deprecated.
12Economy & custom events
DavanciNexus.CurrencyEarned("coins", 100, "level_reward", "level_5");
DavanciNexus.CurrencySpent("coins", 50, "shop", "booster");
DavanciNexus.Unlocked("character", "ninja");
DavanciNexus.Upgraded("shop", "bakery", 3);
DavanciNexus.Custom("photo_shared", ("where", "gallery"));
DavanciNexus.SetUserProperty("vip", "true");13Notifications, ratings & cloud save
- Notifications: set the D1 / D3 / D7 reminder texts in the wizard. They schedule themselves.
- Ratings: call
NexusReview.TryAsk()after a good moment (e.g. a won level). - Cloud save (Android, Google Play Games): paste the resources XML, then
DavanciNexus.Save(json, ok => {})/DavanciNexus.Load(json => {}).
14Splash screen
The Davanci Nexus splash is mandatory. NexusSplash is kept as scene 0 in Build Settings and a build whose first scene is different fails. Your first scene goes at index 1.
15Verify & build
- Verify step: any event marked "not called" is missing in your code.
- Play the game with Davanci Nexus → Nexus Event Monitor open to see every event.
- Run Davanci Nexus → Davanci Doctor and fix everything it reports.
- Build. Data appears on Davanci Nexus the next day (Live page: within minutes).
16Updates
Use Davanci Nexus → Check for Updates. The wizard also shows an "Update available" step when a new version is published.