Skip to main content
Version: SDK 4.6.x

Revenue

The justtrack SDK can track advertisement and in-app purchase revenue for you. In-app purchase revenue is always tracked automatically, advertising revenue can be tracked automatically from the IronSource SDK right now (see Enable real-time revenue data with ironSource). If you are using another SDK to deliver ads for your users, you can track the impressions manually.

Forwarding in-app purchases

If the user performs an in-app product or subscription purchase, you can forward the purchase via the justtrack SDK to our backend. By default, this is already enabled and every purchase of the user will be forwarded automatically. You can enable or disable the integration by calling set(automaticInAppPurchaseTracking:) when creating the SDK instance or on the SDK:

let builder = /* create the builder somehow */ JustTrackSdkBuilder(apiToken: "prod-...")
let sdk = builder
// configure the SDK when creating an instance:
.set(automaticInAppPurchaseTracking: forwardPurchasesAutomatically)
// other options...
.build()
// configure an already existing SDK instance:
sdk.set(automaticInAppPurchaseTracking: forwardPurchasesAutomatically)

When enabled, all purchases will be reported automatically to the justtrack backend and, if you have correctly configured purchase validation, show up as revenue for your app.

You have to configure a shared secret to correctly validate purchases.

Forwarding ad impressions

Our SDK can forward ad impression data to the justtrack platform so you can track your app's ad revenue.

Automatic impression forwarding

We can automatically forward ad impressions for several partners. Use these methods to integrate the partner SDK:

AdColony

integrateWithAdColony()

AppLovin

integrateWithAppLovin(userIdSource: UserIdSource, listenFor: AppLovinAdEvent)

Chartboost

integrateWithChartboost()

adjoe WAVE

adjoe WAVE is integrated automatically if you use their SDK.

ironSource

Refer to our ironSource integration guide.

Unity

integrateWithUnityAds()

Manual impression forwarding

If your ad network isn't available for automatic ad impression forwarding, you can manually forward impression data using .forward():

sdk.forward(adImpression: AdImpression(format: "format", sdkName: "sdk_name")
.set(network: "network")
.set(placement: "placement")
.set(testGroup: "test_group")
.set(segmentName: "segment_name")
.set(instanceName: "instance_name")
.set(bundleId: "bundle_id")
.set(revenue: Money(value: 10.0, currency: "USD"))
)

This method accepts an AdImpression whose parameters are:

  • format: The format of the ad.
  • sdkName: The name of the SDK you used to fill the ad space, for example ironsource or admob. When using ad mediation, this is the name of the mediation platform.
info

The SDK name must be lowercase. So, for example, you would use ironsource, not IronSource.

Additionally, you can use .set() with the following parameters to set more dimensions:

MethodArgumentAcceptable values
networkThe name of the ad network that provided the ad. When using ad mediation, this is the ad network that won the bid for the ad space.String value or null.
placementThe placement of the ad.String value or null.
testGroupThe test group of the user, if you are A/B testing.String value or null.
segmentNameThe name of the segment of the ad.String value or null.
instanceNameThe name of the instance of the ad.String value or null.
bundleIdThe bundle ID for the app being advertised.String value or null.
revenueThe amount of revenue this ad generated.Money object with a non-negative amount. The currency must be a three-letter uppercase ISO 4217 string.

Upon success .forward() returns true. If a parameter is invalid, false is returned.