The Appodeal SDK gives you tools to grow your mobile apps & games. Adjust is one of them.

Use the Adjust account for free to track your attribution & analytics metrics from your UA campaigns. 

Evaluate your soft launch and other marketing campaigns from the Appodeal Reports page that you will find inside your Appodeal Dashboard.

  • Compare Ads vs. IAPs vs. subscription revenues

  • Get Forecasted LTV based on UA campaigns

  • Find out which Ad Creatives bring top-paying users

  • Sync your retention metrics with your ARPU & revenues

  • Build deep granular reports to find out new growth opportunities

We have two options for linking Adjust :

  • Our Free Adjust account.
    If you are planning to run UA campaigns in near future, you can link our Adjust account for Free.
  • Your own Adjust account.

Adjust integration steps

To connect with Adjust, follow the steps:

Appodeal Free Adjust account

  Step 1: Import Adjust

Complete all the steps from our integration guide.

Make sure to integrate Adjust distributed via Appodeal SDK.

  Step 2: Contact us

Contact our support team via live chat or via email  support@appodeal.com with the following information:

  • The desired option.
  • Links to the apps in store, which you want to connect.
  • Traffic sources, where you are planning to run UA campaigns.

Support team will finish your Adjust integration from Appodeal side and let you know

Demo application

You can use our demo analytics app  as a reference project.

Validate in-app purchases

In-App purchase tracking will work only with connection with Adjust/Appsflyer. To connect them, follow the guide.

It's possible to track in-app purchase information and send info to Appodeal servers for analytics. It allows to group users by the fact of purchasing in-apps. This will help you to adjust the ads for such users or simply turn it off, if needed. To make this setting work correctly, please submit the purchase info via the Appodeal SDK.
To track in-app purchase, Appodeal SDK will need info about purchase provided by the Google Play Billing Library.


Add the following dependency into your module-level build.gradle:

dependencies {
    // ... other project dependencies
    implementation "com.android.billingclient:billing:5.0.0"
}

Get your Purchase and SkuDetails objects from the Google Play Billing Library using the guide. Get a price and currency from SkuDetails.

Create and validate in-app purchase.

// Purchase object is returned by Google API in onPurchasesUpdated() callback
public void validatePurchase(Purchase purchase) {
    
   // Create new InAppPurchase
   InAppPurchase inAppPurchase = InAppPurchase.newBuilder("PURCHASE_TYPE")
        .withPublicKey("YOUR_PUBLIC_KEY")
        .withSignature(purchase.getSignature())
        .withPurchaseData(purchase.getOriginalJson())
        .withPurchaseToken(purchase.getPurchaseToken())
        .withPurchaseTimestamp(purchase.getPurchaseTime())
        .withDeveloperPayload(purchase.getDeveloperPayload())
        .withOrderId(purchase.getOrderId())          
        //Stock keeping unit id from Google API  
        .withSku(...)
        //Price from Stock keeping unit         
        .withPrice(...)
        //Currency from Stock keeping unit 
        .withCurrency(...)
        //Appodeal In-app event if needed 
        .withAdditionalParams(...)
        .build();	 

   // Validate InApp purchase
   Appodeal.validateInAppPurchase(this, inAppPurchase, new  InAppPurchaseValidateCallback () {
        @Override
        public void onInAppPurchaseValidateSuccess(@NonNull InAppPurchase purchase,
                                                   @Nullable List<ServiceError> errors) {
            // In-App purchase validation was validated successfully by at least one
            // connected service
        }

        @Override
        public void onInAppPurchaseValidateFail(@NonNull List<ServiceError> errors) {
            // In-App purchase validation was failed by all connected service
        }
    });
}

ParameterDescriptionUsage
purchaseTypePurchase type. Must be InAppPurchase.Type.InApp or InAppPurchase.Type.SubsAdjust/AppsFlyer
publicKeyPublic key from Google Developer Console.AppsFlyer
signatureTransaction signature (returned from Google API when the purchase is completed).Adjust/AppsFlyer
purchaseDataProduct purchased in JSON format (returned from Google API when the purchase is completed).AppsFlyer
purchaseTokenProduct purchased token (returned from Google API when the purchase is completed).Adjust
purchaseTimestampProduct purchased timestamp (returned from Google API when the purchase is completed).Adjust
developerPayloadProduct purchased developer payload (returned from Google API when the purchase is completed).Adjust
orderIdProduct purchased unique order id for the transaction (returned from Google API when the purchase is completed).Adjust
skuStock keeping unit id.Adjust
priceIn-app event revenue.Adjust/AppsFlyer/Appodeal
currencyIn-app event currency.Adjust/AppsFlyer/Appodeal
additionalParametersAdditional parameters of the in-app event.

In-App purchase validation runs by FIFO queue in a single thread. 

Event tracking

Appodeal SDK allows you to send events to analytic services such as Firebase, AppsFlyer, Adjust and Meta using a single method:

// Create map of event parameters if required
Map<String, Object> params = new HashMap<>();
params.put("example_param_1", "Param1 value");
params.put("example_param_2", 123);

Appodeal.logEvent("appodeal_sdk_test_event", params);

Please note:

Event parameters can only be strings and numbers.