deltaDNA Analytics Integration for Mobile Games
deltaDNA—behavioral analytics platform chosen by game studios: purpose-built for game events, progression funnels, LTV segmentation, and in-console campaign management. Not Google Analytics with game widgets—different data model, different SDKs, different auth process.
Common Integration Stumbles
Most common issue—wrong SDK initialization before game session start. deltaDNA requires DDNA.Instance.StartSDK() call before any event sending, otherwise events queue endlessly and data is lost silently without log errors.
On Unity:
// GameAnalyticsManager.cs – call in Awake() of earliest GameObject
DDNA.Instance.SetLoggingLevel(DeltaDNA.Logger.Level.DEBUG);
DDNA.Instance.StartSDK(
"YOUR_ENVIRONMENT_KEY",
"https://collect.deltadna.net/YOUR_COLLECT_URL",
"https://engage.deltadna.net/YOUR_ENGAGE_URL"
);
Second issue—mandatory schema parameters. deltaDNA validates events against schema from Dashboard. Send missionStarted without required missionName field—event isn't rejected explicitly, it just doesn't land in reports. Only discovered days later in Event Browser.
Integration Building
Workflow: first create event schema in Dashboard per game cycle, then generate typed wrappers via deltaDNA Event Builder, then connect SDK.
For standard game events deltaDNA provides ready classes: GameEvent, Transaction, MissionStartedEvent, MissionCompletedEvent. For custom—inherit from GameEvent:
var missionEvent = new GameEvent("missionStarted")
.AddParam("missionName", "Level_05_Boss")
.AddParam("missionDifficulty", "hard")
.AddParam("playerLevel", 12)
.AddParam("timeSinceLastSession", sessionManager.SecondsSinceLast);
DDNA.Instance.RecordEvent(missionEvent).Run();
Wrap monetization events via Transaction—critical for LTV cohort analysis:
var transaction = new Transaction(
"Gem Pack Purchase",
"PURCHASE",
new Product().AddVirtualCurrency("Gems", "GRIND", 500),
new Product().SetRealCurrency("USD", 199) // in cents
);
transaction.AddParam("storeItemID", "gem_pack_small");
DDNA.Instance.RecordEvent(transaction).Run();
SetRealCurrency parameter—real currency in minimal units (cents, kopeks). Error here breaks all ARPU reports.
Engage—Personalization from Console
Separate deltaDNA module—Engage. Get A/B test params and personalized offers from server without release:
DDNA.Instance.RequestEngagement(
new Engagement("offerWall")
.AddParam("userSegment", playerSegment.ToString()),
response => {
if (response.IsSuccessful) {
var offerData = response.JSON["parameters"];
ShowOffer(offerData["gemPackDiscount"].Value<int>());
}
}
);
Important: Engage requests cached by SDK on device. If server unavailable, returns last successful response. Account for this in fallback logic.
What's Included
- Event schema creation and validation in deltaDNA Dashboard
- SDK integration (Unity / Unreal via C++ plugin / native iOS Swift / native Android Kotlin)
- All game events: sessions, progression, monetization, social
- Engage setup for A/B testing in-game offers
- Data verification in Event Browser and first reports
Timeline
Basic Unity integration with 10–15 events: 2–3 days. Full cycle with Engage, custom funnels and Event Browser QA: up to 5 days. Cost calculated individually after requirements analysis.







