Skip to main content
Version: 1.1.x

Integration

FEATURES version: 1.2.10 (2024-03-21)

  • Authenticate
  • Billing
  • Tracking

Download the official version: click here

INSTALLATION

1. In your root-level (project-level) Gradle file <project>/build.gradle, add more plugins dependency to your build.gradle file:

allprojects {
repositories {
google()
mavenCentral()
maven { url "https://sdk-download.airbridge.io/maven" }
}
}
dependencies {
// ...
// google service (use firebase tracking)
classpath 'com.google.gms:google-services:4.3.15'
}

2. In your module (app-level) Gradle file <project>/<app-module>/build.gradle, add more plugins dependency to your build.gradle file:

// google service plugin (use firebase tracking)
apply plugin: 'com.google.gms.google-services'

dependencies {
// ...
// GosuSDK
implementation files('libs/gosusdk_v1.2.6.aar')
//for in app billing
implementation 'com.android.billingclient:billing:6.0.1'
// FacebookSDK
implementation 'com.facebook.android:facebook-android-sdk:latest.release'
//for sigin GG SDK
implementation 'com.google.android.gms:play-services-auth:20.6.0'
//for firebase
// Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:31.1.0')
implementation 'com.google.guava:guava:31.1-android'
implementation 'com.google.firebase:firebase-messaging:23.2.1'
implementation 'com.google.firebase:firebase-analytics'
//airbridge
implementation "io.airbridge:sdk-android:2.22.2"
}

-Move config file (google-services.json) into the module (app-level) root directory of your app.

app/
google-services.json

- Add gosu-service.json file to folder main/assets

{
"client_id": "",
"airb_app_name": "sdkgosutest",
"airb_app_token": "d878da2af447440385fe9a4fe37b06a0"
}

4. Edit Your Resources and Manifest

- Open the /app/res/values/strings.xml file.

<string name="facebook_app_id">1234</string>
<string name="fb_login_protocol_scheme">fb1234</string>
<string name="facebook_client_token">56789</string>

-Open the /app/manifest/AndroidManifest.xml file.

<!-- ============ PERMISSION ============== -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- use for Push GSM -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- use for iab -->
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

<!-- ============ Facebook Login SDK ============== -->
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
<meta-data
android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token" />
<provider android:authorities="com.facebook.app.FacebookContentProvider116350609033094"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>

<service
android:name="com.gosu.gstracking.GFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

<!-- ======= AF Tracking ======= -->
<receiver
android:name="com.appsflyer.MultipleInstallBroadcastReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

<receiver
android:name="com.appsflyer.SingleInstallBroadcastReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

USAGE GOSU LOGIN SDK

  1. Initialize configuration for GosuSDK

    protected void onCreate(Bundle savedInstanceState)()
{
// ...
//Initialize SDK
Gosu.getSharedInstance().initialize( this);
Gosu.getSharedInstance().showFloating18Plus(this); //optional
Gosu.getSharedInstance().getVersion(); //GET SDK Version
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == GosuSDKConstant.IAP_RQ_CODE) {
super.onActivityResult(requestCode, resultCode, data);
} else if(requestCode == GosuSDKConstant.FLOATING_RQ_CODE){
Gosu.getSharedInstance().checkResultForFloatingView(requestCode, resultCode, data);
} else {
Gosu.getSharedInstance().onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
}

NOTE

  • Login with Google: You send SHA-1 us click here
  • Login with Facebook: You send hash key us more here
  1. GosuSDK Basic Functions

//login
Gosu.getSharedInstance().showLogin(new DialogLoginID.OnLoginListener() {
@Override
public void onLoginSuccessful(String UserId, String UserName, String accesstoken) {
//invoked when login successfully
}

@Override
public void onLoginFailed() {
//invoked when login failed
}
});
//Logout
Gosu.getSharedInstance().logOut(new OnLogoutListener() {
public void onLogoutSuccessful() {

}

public void onLogoutFailed() {

}
});

  1. Paying on Google Play with GosuSDK

public void call_billing()
{
Gosu.getSharedInstance().payment_iap(
context,
username,
sku,
server,
orderid,
orderInfo,
amount,
character,
extraInfo,
new Gosu.OnPaymentIAPListener() {
public void onPaymentSuccessful(String msg) {

}

@Override
public void onPaymentFailed(String msg, int errCode, String iapToken) {

}
});

/**
* context: Context Context for a activity window on the given Display.
* username: String Username after login in onLoginSuccessful
* sku: String ProductID
* server: ID of the server
* orderid: String OrderId your create
* orderinfo: String Note information your
* amount: Price of the item
* character: ID of the character
* extraInfo: Additional information that partners can send, which will be sent to the API to add gold after IAP payment.
*/
}

USAGE GOSU TRACKING SDK

GTrackingManger.getInstance().trackingStartTrial();
GTrackingManger.getInstance().trackingTutorialCompleted();
GTrackingManger.getInstance().doneNRU(
"server_id",
"role_id",
"Role Name"
);
/* custom event */
GTrackingManger.getInstance().trackingEvent("level_20");
GTrackingManger.getInstance().trackingEvent("level_20", "{\"customer_id\":\"1234\"}");
/* example:
jsonContent = {"event": "event_name", "params": {"key": "value", "key2": "value2"} }
*/
JSONObject jsonContent = new JSONObject();
jsonRole.put("character", "CharacterName");
jsonRole.put("server", "ServerID");
GTrackingManger.getInstance().trackingEvent("event_name", jsonContent);