The generated code gives you access to functions, each function representing an event, user identification, user properties update, page view, revenue or mix of those as they are defined in your tracking plan.
We call those functions Avo Codegen.
You invoke Avo Codegen, provide tracking parameters and
- Avo verifies that your tracking is correct according to the defined tracking plan. It verifies that all required properties are provided, correctly spelled and their value fit what's expected by your tracking plan. Preventing the time consuming back-and-forth required to align on what to track and how, and to verify the tracking is correctly implemented.
- Avo also tracks your functions usage in development and reports if a call of particular function was seen or not, both in your CI with the Avo CLI and in your Tracking Plan on avo.app.
- Eventually Avo sends the data to the destinations it manages and calls the callbacks (called custom destinations) you provided when initializing.
It's useful to get the overview of the tracking implementation when working on new tracking. You can also get more insights into dev implementation and actual production state of your tracking with Inspector implementation status
When tracking plan changes, you generate the file again and swap the old file with the new one. Avo manages the merge conflicts inside the file. Then, if the existing events changed, you'll have to update your Avo Codegen calls according to the new tracking plan to pass the runtime checks in the Avo file. You'll also get access to the new events defined in your tracking plan after the previous generated code update.
Avo supports multiple languages and platforms:
- TypeScript (Browser, Node.js, React Native)
- ReasonML (Browser, Node.js, React Native)
- Rescript (Browser, Node.js, React Native)
- Kotlin (Android)
- Java (Android, Server)
- Swift (iOS, macOS)
- Objective-C (iOS)
- C# (Unity, .NET)
Each platform/language combination supports a set of event destinations. We often add support for new destinations, and Avo also allows you to send to custom destinations. For an overview or implementation details please see the docs for Analytics Tools.
We've been looking into adding Codegen support for the following languages:
- Dart (Flutter)
- C# (Xamarin)
- Kotlin (Server)
Even if your favorite language isn’t currently listed it might be on our radar. In any case, please contact us to inquire or let us know what you’re looking for.