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) and google-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

  1. On Davanci Nexus, add the game (store bundle ID or App Store ID, platform).
  2. Copy the game token shown once after creation.
  3. Lost it? Developers can see it again on Studio → Game tokens.

3Install the package

  1. Download the package with the button above (or below).
  2. In Unity: Assets → Import Package → Custom Package… and import everything.
  3. Paste the game token when asked. The installer downloads the modules enabled for your game.
  4. The Nexus Setup wizard opens. Later: menu Davanci Nexus → Nexus Setup.

4Platform & SDKs

  1. Platform: choose iOS, Android or both.
  2. Install SDKs: click Install All (Firebase, GameAnalytics, AppsFlyer, External Dependency Manager, ads, CMP).
  3. Use Refresh status if an SDK still shows as missing.

5Keys & IDs

  1. Configure → Create NexusConfig.
  2. AppsFlyer: paste the Dev Key.
  3. GameAnalytics: Game Key and Secret Key for iOS and Android, then Apply to GameAnalytics.
  4. If your game has currencies, list them and click Register economy resource types.

6Firebase

  1. Firebase console → Project settings → download the config files for your iOS and Android apps.
  2. Put GoogleService-Info.plist and google-services.json in the root of Assets/.
  3. 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

  1. Monetization step: import and enable AppLovin MAX (or LevelPlay).
  2. 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

  1. Same step: Install Unity IAP → Enable.
  2. Android: paste the Google Play licensing key, then Regenerate receipt tangles.
  3. 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 tutorial as a kind, and don't call GameAnalytics or Firebase directly for these.
  • TutorialStep(int) and LevelStart(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

  1. Verify step: any event marked "not called" is missing in your code.
  2. Play the game with Davanci Nexus → Nexus Event Monitor open to see every event.
  3. Run Davanci Nexus → Davanci Doctor and fix everything it reports.
  4. 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.