Developer Zone

Quick-Start Guide

System Requirements

The C++ SDK can run on any Microsoft Windows machine from XP onwards. Both x64 and x86 builds of the Trackerbird DLL are provided. The DLLs are statically-linked in order to eliminate any further prerequisites.

Registering Your Product

Before you can use the Trackerbird Software Analytics service or integrate the Trackerbird SDK with your software, you must first register an account by visiting: Once you register a username and create a new product account for tracking your application, you can get your Product ID and callhome URL from the Developer Zone (within the login area). From here you can also download the latest version of the SDK.

Importing the SDK Files

Upon downloading the Trackerbird C++ SDK, you find a header file - Trackerbird.h, and 2 directories - one for x86 and another for x64. These directories contain the Trackerbird DLL and a .lib file that contains definitions for the functions inside the DLL. The .h and the required .lib file should be copied into your source directory. You must also do a #include to include the header file. The DLL file (x86 or x64) must be copied to your binary path, depending on the architecture that you are targeting.

In order to download the Trackerbird SDK, you may visit this page.

Basic Integration Steps

The most basic Trackerbird integration can be accomplished by following the steps below. It is however recommended to read the more advanced documentation as Trackerbird can do much more than the basic functionality that can be achieved by following these steps.

  1. Download the latest SDK and extract it to your preferred project location.

  2. Include the Trackerbird SDK into your application (see Importing the SDK Files).

  3. Initialize the SDK configuration similar to the below example. Your callhome URL and product ID can be retrieved from the Trackerbird Developer Zone (inside your login area). “Multiple Sessions Enabled” (multiSessionsEnabled parameter) is a boolean value where you specify whether your application can have multiple user sessions per runtime session. This is normally false for desktop applications. For further details, refer to Single vs. Multiple session modes.

    tbCreateConfig(L"<Callhome URL>", L"<Product ID>",
    L"<Your product's version>", L"<Your product's build number>",
    <Multiple Sessions Enabled>);
  4. Call the function tbStart(). You must call this function first, before making any other Trackerbird API calls. It is recommended that you place this call at the entry point of your application so the Trackerbird SDK knows exactly at what time your application runtime session was started. If using multi-session mode, you also need to call tbSessionStart() when a user session is started, and also provide a unique user session ID which you will then also use for closing the session or for Feature / Event Tracking.

  5. Call tbStop() when closing your application so the Trackerbird SDK knows when your application runtime session has been closed. If using multi-session mode, when user sessions are closed, you should call tbSessionStop() and send the ID of the session that is being closed as a parameter.

  6. All of the other functions in the Trackerbird API can be called at any point in your application as long as the Trackerbird SDK has been initialized by calling tbStart().

The following is an example of the basic integration outlined below. This example uses single-session mode.

//Initialize the Trackerbird Configuration
wchar_t* purl=L"http://INSERT-YOUR-URL";
wchar_t* pproduct_id=L"INSERT-YOUR-PROD-ID";
wchar_t* pproduct_version=L"1.2.3";
wchar_t* pproduct_build_number=L"4567";
BOOL pmulti_session_enabled=FALSE;
tbCreateConfig(purl, pproduct_id, pproduct_version, pproduct_build_number, pmulti_session_enabled);

//Inform Trackerbird that a new runtime session has been started.

//Your program logic...

//Program closing - inform Trackerbird that this runtime session is closing down.

//Your program logic...

Text encoding

In all cases where a text value is used, wchar_t* is the data type that is used. Also, if non-ASCII values are used, they are encoded by the SDK in UTF-16. If a non-ASCII text value needs to be passed as a parameter, it should be encoded in UTF-16 by the user application.

Next Steps

In the above section, we covered the basic integration steps. While these steps would work for most software products, it is recommended to do some further reading in order to get the most of what Trackerbird has to offer. It is recommended to go into more detail by reading the pages SDK Configuration and Basic SDK Control. Once you are familiar with the SDK, you may look at the advanced features.

Advanced Features

By following the Basic Integration Steps above, the Trackerbird SDK will be able to collect information about how often users run your product, how long they are engaged with your software as well as which versions and builds they are running. The SDK also collects information on what platforms and architectures your software is being run (i.e. OS versions, language, screen resolution, etc.). Once you have implemented the basic features, you may choose to use Trackerbird for more advanced features which include: