KODA: Code Generator
"Codings Ruff... I can help!" 😄

SDK Integration

ByteBrew's lightwieght SDKs are compatible with every game engine and platform you use. Download our SDK's on file_download Github


Godot Integration tag

free_breakfast Before you start: ByteBrew only supports Android platform for Godot.

1: Import ByteBrew Godot Package to your project

Extract the contents of the android folder from the zip:

A. ByteBrew.gdap

B. bytebrew_godot.release.aar

Place the two files in your project file path res://android/plugins if you dont have this path create it in the root of your project file.

2: Enable ByteBrew in Project

Go to Project -> Export and select your android export settings. Scroll down to the Plugins section and enable ByteBrew by checking it.

3: Go to your ByteBrew Dashboard

Go to your game settings on the ByteBrew dashboard and find your game keys listed on the dashboard.

4: Initialize ByteBrew

You must initialize ByteBrew using the code below at the first scene of your game if you want to start capturing events and sessions.

priority_high Important: Place your game object on the first scene of your game. ByteBrew SDK does not support offline event caching.

Inside Godot, input the game keys from your game into parameters of the ByteBrew initialization.



var ByteBrew

func _ready():
    if Engine.has_singleton("ByteBrew"):
        ByteBrew = Engine.get_singleton("ByteBrew")
        //You must make sure add the last two parametes the GameMaker Version and your current version of your project so you can get deep cohort analytics.
        ByteBrew.InitializeByteBrew("GAME ID", "GAME KEY", Engine.get_version_info(), "YOUR GAME VERSION HERE ex(0.0.1)")



                  
5: Exporting Android Requirements

ByteBrew requires the following implementation for android:

A. Play Services Ads Identifier

We have already added requirements in the settings to add this implementation.

Push Notifications tag

priority_high Important: If you are using ByteBrew for Push Notifications, you must call InitializeByteBrew before calling StartPushNotifications.

1: Integrate Push Notifications

Integrating Push Notifications with ByteBrew is super simple. Just add this line of code below after the InitializeByteBrew line.


  ByteBrew.StartPushNotifications()

                  
2: Create Push Notification App on the Dashboard

Set up a Push Notification App in the Push Notification Dashboard. Find the documentation on setting up push notification apps on the Push Notification Documentation Page.

Push Notification Extras (Optional, Android Only)

Add a Custom Small Icon and Large Icon for push notifications.

free_breakfast The small icon automatically defaults to your app icon. We recommend that you add a small icon because your app icon may not appear correctly. If the large icon default is none, it will not show.

Make sure to add these icons to your res android folder. Keep note of the name of the icon, so you can set them in the dashboard when creating a notification.


Tracking Purchases tag

To track a basic in-app purchase event utilize the below method


  ByteBrew.TrackInAppPurchaseEvent("Apple App Store", "USD", float(amount), "currencyPack01", "Currencies")

                  
Validate Purchases

To validate and track the in-app purchase utilize the specific platform method.

Make sure the receipts have correct JSON string formatting.


  //JSON Format ex. string json = "{\"firstname\":\"john\", \"lastname\":\"doe\",\"age\":30}";

  //Retrieve the Android receipt and Signature from the purchase event that occurs. We will validate it server side so you can view valid purchases in you dashboard.
  var googleReciept = "..."
  var googleSignature = "..."
  ByteBrew.TrackGoogleInAppPurchaseEvent("Google Play Store", "USD", float(amount), "currencyPack01", "Currencies", googleReciept, googleSignature)

                  

Custom User Data Attributes tag

Add data attributes to your users such as: level, username, etc. These can be directly used for segmentation purposes in push notifications and more.


  ByteBrew.SetCustomDataWithStringValue("username", "michael_scarn")
  ByteBrew.SetCustomDataWithDoubleValue("total_hitpoints", 68.7)
  ByteBrew.SetCustomDataWithIntegerValue("dundees", 3)
  ByteBrew.SetCustomDataWithBooleanValue("loves_the_office", true)


                  

Custom Event Tracking tag

For the most basic form of custom event tracking, use the follow code line. This will track the event name and default the value to 1.


  //Example 1
  ByteBrew.NewCustomEvent("shopOpen")

  //Format
  ByteBrew.NewCustomEventWithStringValue("CustomEventName", "Key=Value;")

  //Example 2
  ByteBrew.NewCustomEventWithStringValue("GamePurchaseVC", "currency=GOLD;amount=500;character=viking;")
  ByteBrew.NewCustomEventWithStringValue("LevelCompleted", "level=25;character=viking;")

                  
Basic value parameter custom event tag

To add more detail to an event you can add a secondary parameter, that can be a float or string value


  //string example
  ByteBrew.NewCustomEventWithStringValue("weapon_equip", "megablaster")

  //float example
  ByteBrew.NewCustomEventWithFloatValue("lives_earned", float(5))

                    
Dictionary parameter custom event tag

To add additional custom parameters to an event you can format a string with key=value; pairs. Checkout the example below.



  //Key Value format "key=value;"
  //It can take multiple pairs as well, "key1=pair1;key2=pair2;key3=pair3;"
  ByteBrew.NewCustomEventWithStringValue("level_started", "weapon=megablaster;powerup=extralife;")


                    

Progression Event Tracking tag

You can track a progression event using the parameters list below.

Progression events get tracked based on the following parameters:

1: ProgressionType

The type of event context that occured. Must use one of the following: Started, Completed or Failed

2: Environment

Area of the game or World it occurs (Ex. Tutorial, Arena, Level)

3: Stage

The stage of the environment (Ex. kings_arena, jungleLevel, level_02)

4: Value

This can be a string or float value attached to the event


  //Example Progression event where the user started a tutorial in arena 0 or first arena
  ByteBrew.NewProgressionEvent("Started", "Tutorial", "arena0")

  //Example progression event where the user has completed the kings arena and could be rewarded with 3 crowns
  ByteBrew.NewProgressionEventWithFloatScore("Completed", "Arena", "kings_arena", float(3))

                  

Ad Event Tracking tag

Track ad events that occur to get more detailed breakdowns in your monetization, especially when doing LTV and ROAS calculations.


  // Record the Placement Type, Location of the placement, ad unit ID, and Network (Recommended)
  ByteBrew.TrackAdEventWithAllOptions("Interstitial", "EndOfLevel", "3253k3302-3r3j4i343-3nij343-405403", "AdMob")

  //Some ad event paramters can be ommited like so
  ByteBrew.TrackAdEvent("Interstitial", "EndOfLevel")
  ByteBrew.TrackAdEventWithAdID("Interstitial", "EndOfLevel", "3253k3302-3r3j4i343-3nij343-405403")

                  

Remote Config & AB Testing tag

Remote configs help you edit your apps settings and configuration without needed to update your app on the store.

AB Testing is to cross track changes across a variety of users when they onboard to your game, we distribute AB Test variables from remote configs. So make sure to check for the AB test you are tracking

1: Loading the Remote Configs

When using Remote Config you must first call for the config to get updated. You can call this whenever you want to update the configs.

ByteBrew automatically calls LoadRemoteConfig on initialization but you can call it again when needed.


  //Call the loader to update configs 
  ByteBrew.LoadRemoteConfigs()

  //Check if the remote configs are ready and set
  ByteBrew.HasRemoteConfigsBeenSet()
  

                  

You can grab AB Test keys and values from this method as well, if the user is part of the control group it wont return anything but the default parameter value set.


  //Call to get the key specific value and if the key doesn't exist it will return the default variable specified, like if the AB test user is in the control group
  var configValue = ByteBrew.RetrieveRemoteConfigValue("KEY", "DEFAULT VALUE IF NOT AVAILABLE")

                  

To view your game's remote configs visit the remote config page on the ByteBrew dashboard.

Get User ID tag

Get the current userID of the user, use this to find specific user for ex. Push Notifications.


  // Get the string userID
  ByteBrew.GetUserID()


                  

Stop Tracking Current User tag

Call the ByteBrew StopTracking method to stop and disable tracking for a user. Alternatively, if you have your own consent prompt, you can delay the intialization of the ByteBrew SDK until your user has consented to be tracked.


  ByteBrew.StopTracking();