Android package build instructions

Please follow the build procedure below.

  1. Library addition with gradle
  2. Manual library addition
  3. Edit AndroidManifest.xml
  4. Build procedure

1. Addition of library with gradle


Introducing libraries with gradle

  1. Open File>Build Settings on the menu bar and set the following.

    • Platform: Android
    • Build System: Gradle
  2. Make sure that the following library is created under Assets> Plugins> Android file to be used.

    • AndroidManifest.xml
    • GNSExtendsUnityPlayerActivity.jar
    • mainTemplate.gradle
  3. Make sure that the Android Library file to be used has generated the following library in Assets/Plugins/Android/mainTemplate.gradle.

implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.multidex:multidex:2.0.1'
1
2
3
  1. Open PlayServicesResolver/Editor/GNDependencies and get the following to get GNAdSDK.
<!-- GNAdSDK -->
<androidPackage spec="jp.co.geniee.gnadsdk:GNAdSDK:8.5.1">
<androidSdkPackageIds>
    <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
  </androidSdkPackageIds>
  <repositories>
    <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
  </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10
  1. Make sure that the following libraries are generated in the Geneese SDK file to be used in Assets/Plugins/Android/mainTemplate.gradle.
implementation 'jp.co.geniee.gnadsdk:GNAdSDK:8.5.1'
1
2
  1. Open PlayServicesResolver>Editor> GNDependencies and addGNSRewardAdapter by adding the following. We will change the description by Ad Network.
When introducing all ad networks at once
<!-- GNSRewardAdapter All ADNW-->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter:6.4.1">
<androidSdkPackageIds>
    <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
  </androidSdkPackageIds>
  <repositories>
    <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
    <repository>http://fan-adn.github.io/nendSDK-Android-lib/library/</repository>
    <repository>https://imobile-maio.github.io/maven/</repository>
    <repository>https://adcolony.bintray.com/AdColony/</repository>
  </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10
11
12
13

Make sure that the following libraries are generated in the Geneese SDK file to be used in Assets/Plugins/Android/mainTemplate.gradle.

implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-AdColony:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Amoad:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-AppLovin:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-CAReward:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Maio:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Nend:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Tapjoy:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-TikTok:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-UnityAds:6.4.1'
implementation 'jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Vungle:6.4.1'
1
2
3
4
5
6
7
8
9
10
11

Please confirm that the following network is created under Assets>Plugins>Android for the ad network SDK file to be used.

  • com.adcolony.sdk-4.7.1.aar
  • com.applovin.applovin-sdk-9.14.5.aar
  • com.maio.android-sdk-1.1.13.aar
  • com.tapjoy.tapjoy-android-sdk-12.7.0.aar
  • com.unity3d.ads.unity-ads-3.4.8.aar
  • net.nend.android.nend-sdk-5.4.2.aar
  • com.vungle.vungle-android-sdk-6.8.0.aar
  • com.moat.analytics.mobile.mpub.androidx-vng-moat-mobile-app-kit-2.6.3.jar
  • com.google.code.gson.gson-2.8.6.jar
  • com.squareup.okhttp3.okhttp-3.12.12.jar
  • com.squareup.okio.okio-1.15.0.jar

Please add the library of the ad network to be used from RewardVideo-Adnws-Android-SDK to Assets>Plugins>Android.

  • AMoAd-playable-1.0.0.jar
  • MediaSDK_ver_2_4_0.jar
  • tiktok_ad_sdk-2.0.0.0.jar

※ For details on RewardVideo-Adnws-Android-SDK, please contact your sales representative.

Implementation of Maio
<!-- GNSRewardAdapter Maio -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Maio:6.4.1">
    <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
      <repository>https://imobile-maio.github.io/maven/</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10
11

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-Maio-6.4.1.aar

Please confirm that the following network is created under Assets>Plugins>Android for the ad network SDK file to be used.

  • com.maio.android-sdk-1.1.1.aar
Implementation of AppLovin
<!-- GNSRewardAdapter AppLovin -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-AppLovin:6.4.1">
    <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-AppLovin-6.4.1.aar

Please confirm that the following network is created under Assets>Plugins>Android for the ad network SDK file to be used.

  • com.applovin.applovin-sdk-9.14.5.aar
Implementation of UnityAds
<!-- GNSRewardAdapter UnityAds -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-UnityAds:6.4.1">
  <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-UnityAds-6.4.1.aar

Please confirm that the following network is created under Assets>Plugins>Android for the ad network SDK file to be used.

  • com.unity3d.ads.unity-ads-3.4.8.aar
Implementation of AdColony
<!-- GNSRewardAdapter AdColony -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-AdColony:6.4.1">
    <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
      <repository>https://adcolony.bintray.com/AdColony/</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10
11

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-AdColony-6.4.1.aar

Please confirm that the following network is created under Assets>Plugins>Android for the ad network SDK file to be used.

  • com.adcolony.sdk-4.7.1.aar
Implementation of CAReward
<!-- GNSRewardAdapter CAReward -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-CAReward:6.4.1">
  <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-CAReward-6.4.1.aar

Please add the library of the ad network to be used from RewardVideo-Adnws-Android-SDK to Assets>Plugins>Android.

  • MediaSDK_ver_2_4_0.jar

※ For details on RewardVideo-Adnws-Android-SDK, please contact your sales representative.

Implementation of Tapjoy
<!-- GNSRewardAdapter Tapjoy -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Tapjoy:6.4.1">
  <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-Tapjoy-6.4.1.aar

Please confirm that the following network is created under Assets>Plugins>Android for the ad network SDK file to be used.

  • com.tapjoy.tapjoy-android-sdk-12.7.0.aar
Implementation of Vungle
<!-- GNSRewardAdapter Vungle -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Vungle:6.4.1">
  <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-Vungle-6.4.1.aar

Please confirm that the following network is created under Assets>Plugins>Android for the ad network SDK file to be used.

  • com.vungle.publisher-sdk-android-6.8.0.aar
  • com.google.code.gson.gson-2.7.jar
  • com.squareup.okhttp3.logging-interceptor-3.7.0.jar
  • com.squareup.okhttp3.okhttp-3.7.0.jar
  • com.squareup.okio.okio-1.12.0.jar
  • com.squareup.retrofit2.converter-gson-2.2.0.jar
  • com.squareup.retrofit2.retrofit-2.2.0.jar
  • com.tonyodev.fetch.fetch-1.1.5.aar
  • net.vrallev.android.cat-1.0.5.aar
Implementation of Nend
<!-- GNSRewardAdapter Nend -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Nend:6.4.1">
  <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
      <repository>http://fan-adn.github.io/nendSDK-Android-lib/library/</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10
11

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-Nend-6.4.1.aar

Please confirm that the following network is created under Assets>Plugins>Android for the ad network SDK file to be used.

  • net.nend.android.nend-sdk-5.4.2.aar
Implementation of AMoAd
<!-- GNSRewardAdapter Amoad -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-Amoad:6.4.1">
  <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-Amoad-6.4.1.aar

Please add the library of the ad network to be used from RewardVideo-Adnws-Android-SDK to Assets>Plugins>Android.

  • AMoAd-playable-1.0.0.jar

※ For details on RewardVideo-Adnws-Android-SDK, please contact your sales representative.

Implementation of TikTok
<!-- GNSRewardAdapter TikTok -->
<androidPackage spec="jp.co.geniee.gnsrewardadapter:GNSRewardAdapter-TikTok:6.4.1">
  <androidSdkPackageIds>
      <androidSdkPackageId>extra-geniee-repository</androidSdkPackageId>
    </androidSdkPackageIds>
    <repositories>
      <repository>https://raw.github.com/geniee-ssp/Geniee-Android-SDK/master/repository</repository>
    </repositories>
</androidPackage>
1
2
3
4
5
6
7
8
9
10

Please make sure that the Geniee SDK file to be used has the following library created under Assets>Plugins>Android.

  • jp.co.geniee.gnsrewardadapter.GNSRewardAdapter-TikTok-6.4.1.aar

Please add the library of the ad network to be used from RewardVideo-Adnws-Android-SDK to Assets>Plugins>Android.

  • tiktok_ad_sdk-2.0.0.0.jar

※ For details on RewardVideo-Adnws-Android-SDK, please contact your sales representative.

If you followed the Introducing libraries with Maven procedure, you do not need to do this step.

Manual introduction procedure here

Please add SDK below Assets>Plugins>Android directory.

  • GNAdSDK-8.5.1.jar
  • GNAdGoogleMediationAdapter-8.5.0.0.jar
  • GoogleMobileAds-v5.4.0.jar
  • GNSRewardAdapter-AdColony-6.4.1.jar
  • GNSRewardAdapter-Amoad-6.4.1.jar
  • GNSRewardAdapter-AppLovin-6.4.1.jar
  • GNSRewardAdapter-CAReward-6.4.1.jar
  • GNSRewardAdapter-Maio-6.4.1.jar
  • GNSRewardAdapter-Nend-6.4.1.jar
  • GNSRewardAdapter-Tapjoy-6.4.1.jar
  • GNSRewardAdapter-UnityAds-6.4.1.jar
  • GNSRewardAdapter-Vungle-6.4.1.jar
  • GNSRewardAdapter-TikTok-6.4.1.jar

Please add the library of the ad network to be used from RewardVideo-Adnws-Android-SDK to Assets>Plugins>Android.

  • AMoAd-playable-1.0.0.jar
  • MediaSDK_ver_2_4_0.jar
  • applovin-sdk-9.14.5.aar
  • maio-1.1.13.aar
  • nend-sdk-5.4.2.aar
  • tapjoyconnectlibrary-12.7.0.jar
  • unity-ads-3.4.8.aar
  • androidx-vng-moat-mobile-app-kit-2.6.3.jar
  • gson-2.8.6.jar
  • okhttp-3.12.12.jar
  • okio-1.15.0.jar
  • vungle-android-sdk-6.8.0.jar
  • tiktok_ad_sdk-2.0.0.0.jar

※ For details on RewardVideo-Adnws-Android-SDK, please contact your sales representative.

Add the following setting to dependencies of Assets/Plugins/Android/mainTemplate.gradle.

dependencies {
  compile 'com.adcolony:sdk:{{$version.android.mediationAdColony}}'
}
1
2
3

2. Edit AndroidManifest.xml

Edit Assets -> Plugins -> Android -> AndroidManifest.xml.

Join Unity Activity's life cycle to GNSAdSDK

Please add Activity below.

<activity android:name="jp.co.geniee.utgnsrewardvideo.ExtendsDfpUnityPlayerActivity"
        android:label="@string/app_name"
        >
  <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
  <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
</activity>
1
2
3
4
5
6
7
8
9
10

Add various ad networks

Add the following depending on the added ad network.

applovin

<!-- AppLovin -->
<meta-data
    android:name="applovin.sdk.key"
    android:value="YOUR_APPLOVIN_SDK_KEY_HERE" />
1
2
3
4
5
  • Please add AppLovinSDK key to android: value.
    • Name: applovin.sdk.key
    • Please check with your sales representative for Applovin key.
Manual introduction procedure here

adcolony

<!-- AdColony -->
<activity android:name="com.adcolony.sdk.AdColonyInterstitialActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:hardwareAccelerated="true"/>
<activity android:name="com.adcolony.sdk.AdColonyAdViewActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:hardwareAccelerated="true"/>
1
2
3
4
5
6
7
8

applovin

<!-- AppLovin -->
<activity android:name="com.applovin.adview.AppLovinInterstitialActivity" android:configChanges="orientation|screenSize"/>
<activity android:name="com.applovin.adview.AppLovinConfirmationActivity" android:configChanges="orientation|screenSize"/>
<meta-data
    android:name="applovin.sdk.key"
    android:value="YOUR_APPLOVIN_SDK_KEY_HERE" />
1
2
3
4
5
6
7
  • Please add AppLovinSDK key to android: value.
    • Name: applovin.sdk.key

CAReward

<!-- CAReward-->
<activity
    android:name="jp.co.mediasdk.mscore.ui.videoAd.MSGVAActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:hardwareAccelerated="true" />
1
2
3
4
5
6

Tapjoy

<!-- Tapjoy -->
<activity
    android:name="com.tapjoy.TJAdUnitActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:hardwareAccelerated="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
<activity
    android:name="com.tapjoy.TJContentActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:hardwareAccelerated="true" />
1
2
3
4
5
6
7
8
9
10
11
12

It need to add the same configuration changes to the activities of the app

android:configChanges="orientation|keyboardHidden|screenSize"
1

Vungle

Describe the permissions that the SDK uses in the manifest file. (Please add only those without description.)

<!--Required Permissions-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

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

<!--Vungle Activities-->
<activity
android:name="com.vungle.warren.ui.VungleActivity"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
android:launchMode="singleTop"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<activity
android:name="com.vungle.warren.ui.VungleFlexViewActivity"
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
android:hardwareAccelerated="true"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

AMoAd

<!-- Amoad -->
<activity android:name="com.amoad.AMoAdInterstitialVideoActivity" />
1
2
3

TikTok

<!-- TikTok -->
<provider
	android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
	android:authorities="${applicationId}.TTMultiProvider"
	android:exported="false" />
1
2
3
4
5

3. Build procedure

  1. Select File -> Build Settings from the menu bar.
  2. Select Platform's Android.
  3. BuildSystem: Select "Gradle".
  4. If you have not edited Bundle Identifier etc., press Player Settings and edit the necessary setting items.
  5. You can check the package build by Build & Run.
  • Unity Preferences -> If you do not describe the paths of SDK andJDK of External Tools, please write before you create the package.

When using your own Activity

This UnityPlugin uses the Activity which inherited UnityPlayerActivity so that ad processing can be done when OnStart, OnResume, OnPause of Android Lifecycle. . If you want to use your own Activity, add the following method and interface to your own Activity. . And please set the interface name before doing ad processing (loading advertisement etc.).

  • Method, interface to add to Activity
private LifecycleListener lifecycleListener;

// Method to set the Listener. Method names and parameters are as follows and do not change.
public void setLifecycleListener(LifecycleListener listener) {
  this.lifecycleListener = listener;
}

// Add listener processing to do processing on onStart.
@Override
protected void onStart() {
  if (this.lifecycleListener != null) {
    this.lifecycleListener.onStart();
  }
  super.onStart();
}

// Add listener processing to do processing with onResume.
@Override
protected void onResume() {
  if (this.lifecycleListener != null) {
    this.lifecycleListener.onResume();
  }
  super.onResume();
}

// Add listener processing to do processing with onPause.
@Override
protected void onPause() {
  if (this.lifecycleListener != null) {
    this.lifecycleListener.onPause();
  }
  super.onPause();
}

// Add listener processing to do processing with onStop.
@Override
protected void onStop() {
  if (this.lifecycleListener != null) {
    this.lifecycleListener.onStop();
  }
  super.onStop();
}

// Please make a listener with the following three methods defined.
public interface LifecycleListener {
  void onStart();

  void onResume();

  void onPause();
  
  void onStop();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  • Setting the interface name
// The class name is defined in the example. Please replace it with the name of the created interface.
GNSAdSDK.Android.Utils.LifecycleListenerClassName = "jp.co.geniee.utgnsrewardvideo.ExtendsUnityPlayerActivity$LifecycleListener";
1
2
3
Last Updated: 11/11/2020, 9:41:13 AM