⌨️SDK integration

Setup project

To integrate our SDK for Flutter, it is needed to add the following line inside the dependencies block of the pubspec.yaml file of your app:

dependencies:
  wortise: ^1.5.1

Next, execute the following command to proceed with the SDK installation:

$ flutter pub get

Now, you will be able to use the following import statements to access the classes provided by the SDK:

import 'package:wortise/ad_content_rating.dart';
import 'package:wortise/ad_settings.dart';
import 'package:wortise/ad_size.dart';
import 'package:wortise/banner_ad.dart';
import 'package:wortise/consent_manager.dart';
import 'package:wortise/data_manager.dart';
import 'package:wortise/interstitial_ad.dart';
import 'package:wortise/rewarded_ad.dart';
import 'package:wortise/user_gender.dart';
import 'package:wortise/wortise_sdk.dart';

Setup Manifest

To improve the eCPM of Google's Open Bidding partners, it is needed to add a <meta-data> element in the android/app/src/mainAndroidManifest.xml file, inside the <application> block.

This value can be found in our dashboard, inside the app details, under the name Google App ID.

<manifest>
    ...
    <application>
        ...
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>

Request permissions (Optional)

The next step is to request the permissions in any place of the app where you believe will be more convenient. These permissions are needed to collect device data so we can display the best ads based on their real location and various attributes. This step is recommended but completely optional.

First, add the following permissions in the android/app/src/main/AndroidManifest.xml file:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

Also, if your app targets Android 10 or higher (for example, if targetSdkVersion is 29 or higher), it is needed to add the following additional permission:

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

After adding the ACCESS_BACKGROUND_LOCATIONpermission, Google Play will force to fill the location permissions declaration to publish the app.

The recommended option is to obtain Google's approval to be able to use this permission.

In case it cannot be obtained, you can temporarily declare that the app does not comply with Google Play policies, to be able to use the permission until March 29th. When this date is reached, you must publish an app update without the permission, to comply with Google Play policies and avoid any kind of inconvenience.

And finally, request all the permissions so the users can grant them, using the mechanisms that Flutter provides for this purpose.

It is very recommended to request the user consent to be able to show personalised ads. This will allow to display content of more interest and generate higher revenues.

You can consult the following section to implement this request and obtain the user consent: User consent

Initialize SDK

To initialize the SDK, it is needed to add the following code inside the initState() method of your app:

import 'package:wortise/wortise_sdk.dart';

await WortiseSdk.initialize('your app key');

Test mode

To verify the integration, the SDK provides a test mode that allows the app to always receive ads.

Beside the option that is available in our dashboard, you can programatically enable this test mode, from the SDK itself, by using the following code:

import 'package:wortise/ad_settings.dart';

await AdSettings.setTestEnabled(true);

Share user data

If the application knows some user data (age, gender, etc.), that information can be shared with the SDK so we can show ads of more interests, and therefore obtain a higher eCPM.

To share this information, it is needed to use the methods provided by the DataManager class, just as shown below:

import 'package:wortise/data_manager.dart';
import 'package:wortise/user_gender.dart';

// Share age
DataManager.setAge(20);

// Share gender
DataManager.setGender(UserGender.male);

// Share email addresses
DataManager.setEmails(['email1@gmail.com', 'email2@gmail.com']);
DataManager.addEmail('email3@gmail.com');

Last updated