1. Why do you need to update the latest SDK’s version?

The latest version of SDK has multiple features that effective to grow products better. Besides, the latest version of SDK will be optimize and fix bugs.

2. Why do you need to use 2 Firebase for your application?

  1. Currently, we have an app data analysis system based on app metrics via firebase. Using firebase production to test and debug the application may affect the metrics analyzed on our system.
  2. Using Admob real IDs for test & debug versions can also adversely affect Admob accounts. Therefore, you need to use the Admob ID tests to check whether the Ads are displayed correctly or not. Along with using Admob test ID will also affect the metrics on our data analytics system.

Therefore you need to use separate firebase and Admob ID test for test and debug versions. Only use Firebase production and Admob real IDs for cases where it is absolutely necessary.

3. Does iKame Apps’s SDK support Java?

Currently, our SDK is built on Kotlin platform so it is fully backward compatible with Java.

4. Does iKame Apps’s SDK support Billing?

Currently, our SDK has built-in support for Google’s billing methods including: subscribe, and purchase.

Now the support functions are available in the SDK and you can follow the SDK’s Document to implement.

5. Does iKame Apps’s SDK use Ad Mediation?

We currently use multiple Ad Mediation networks in conjunction with many different partners.

6. What ad formats does your SDK support?

Our SDK currently supports 5 major ad formats:

  1. Open ads
  2. Interstitial ads
  3. Banner ads
  4. Native ads
  5. Rewarded ads

Note: you can use all of these ad formats or just use one of them. We described all the implementation methods in the SDK’s Document

7. Why does your Ads not show?

There are following main reasons why your ads are not showing

  1. Ads load failed
  2. You did not follow the SDK implementation instructions
  3. Ads have not been set up by iKame Applications side.

Most of the ads that are not displayed have error codes to help you guess the cause

     CONTEXT_NOT_VALID(8001, "The provided context is not valid."),
    OTHER_ADS_SHOWING(8002, "Another ad is currently being displayed."),
    SHOW_ADS_FAST(8003, "Attempted to show ads too quickly."),
    NOT_VALID_ADS_TO_SHOW(8004, "No valid ad available to show."),
    ITEM_AD_BLOCK_SHOW(8005, "Ad block is being shown."),
    USER_PREMIUM(8006, "User is a premium member."),
    RUNNING_EXCEPTION(8007, "An exception occurred."),
    DISABLE_SHOW(8008, "Ad display is disabled in this position."),
    SHOWING_FAIL(8009, "Failed to display the ad."),
    SHOWING_TIME_OUT(8010, "Ad display timed out."),
    LOAD_ADS_NOT_VALID(8011, "The ad load request is not valid."),
    LOAD_ADS_NAME_NULL(8012, "Ad name is null in the load request."),
    LOAD_ADS_ERROR(8013, "Error occurred while loading ads."),
    VIEW_AD_NULL(8016, "Ad view is null."),
    CONTEXT_NOT_ALIVE(8017, "The context is not alive."),
    NO_SCREEN_ID_AD(8018, "No screen ID associated with the ad."),
    DISABLE_PRELOAD(8019, "Preloading ads is disabled."),
    UNIT_AD_NOT_VALID(8020, "Ad unit is not valid."),
    VIEW_GROUP_NULL(8021, "View group is null."),
    READY_CURRENT_AD(8022, "Ad is ready to be shown."),
    CANT_LOAD_AD(8023, "Unable to load ad."),
    NO_DATA_TO_LOAD_AD(8024, "No data available to load ad."),
    NETWORK_AD_NOT_VALID_TO_LOAD(8025, "Network ad is not valid for loading."),
    VIEW_GROUP_NOT_VISIBLE(8026, "View group is not visible."),
    CURRENT_AD_LOADING(8027, "An ad is currently loading."),
    AD_NETWORK_NULL(8028, "Ad network is null."),
    NO_AD_FROM_SERVER(8030, "No ad received from the server."),
    LOADING_AD_TIMEOUT(8031, "Loading ad timed out."),
    AD_LAYOUT_NOT_SHOWN(8032, "Ad Layout not shown."),
    OTHER(9000, "An unknown error occurred."),
  

8. Why does your application have a bigger size after implementing iKame Apps’s SDK?

We currently use different ad libraries to optimize ad revenue, which may increase your app’s size a bit. Don’t worry too much about this.

9. Why do you need to change some files when publishing new app’s versions?

There is some necessary information that needs to be changed when updating new versions of the product as follows:

AdsConstant.kt: Contains information about Billing IAP system.

google-services.json: Contains information about Firebase production.

remote_config_defaults.xml: Contains information about identifying types of ADs in the Application.

strings.xml: Contains information about identifying types of ADs in the Application.

10. Why doesn’t iKame Apps package the SDK into a single file?

We also thought about this. However, we decided to make it a module so that applications can personalize the layout of ads: Native, Banner according to each app’s own style to personalize the layout of the ads as well as integrate the IAP system simpler.

11. Billing error code

      BILLING_ERROR_PRODUCT_ID_NOT_SPECIFIED(
        106,
        "BILLING_ERROR_PRODUCT_ID_NOT_SPECIFIED"
    ),
    BILLING_ERROR_OTHER_ERROR(
        110, "BILLING_ERROR_OTHER_ERROR"
    ),
    BILLING_ERROR_CONSUME_FAILED(
        111, "BILLING_ERROR_CONSUME_FAILED"
    ),
    BILLING_ERROR_SKUDETAILS_FAILED(
        112, "BILLING_ERROR_SKUDETAILS_FAILED"
    ),
    BILLING_ERROR_FAILED_LOAD_PURCHASES(
        100, "BILLING_ERROR_FAILED_LOAD_PURCHASES"
    ),
    BILLING_ERROR_FAILED_TO_INITIALIZE_PURCHASE(
        101, "BILLING_ERROR_FAILED_TO_INITIALIZE_PURCHASE"
    ),
    BILLING_ERROR_INVALID_SIGNATURE(
        102, "BILLING_ERROR_INVALID_SIGNATURE"
    ),
    BILLING_ERROR_INVALID_MERCHANT_ID(
        104, "BILLING_ERROR_INVALID_MERCHANT_ID"
    ),
    BILLING_ERROR_FAILED_TO_ACKNOWLEDGE_PURCHASE(
        115, "BILLING_ERROR_FAILED_TO_ACKNOWLEDGE_PURCHASE"
    ),
    BILLING_SERVICE_TIMEOUT(
        303, "BILLING_SERVICE_TIMEOUT"
    ),
    BILLING_FEATURE_NOT_SUPPORTED(
        302, "BILLING_FEATURE_NOT_SUPPORTED"
    ),
    BILLING_SERVICE_DISCONNECTED(
        301, "BILLING_SERVICE_DISCONNECTED"
    ),
    BILLING_OK(
        200, "BILLING_OK"
    ),
    BILLING_USER_CANCELED(
        201, "BILLING_USER_CANCELED"
    ),
    BILLING_SERVICE_UNAVAILABLE(
        202, "BILLING_SERVICE_UNAVAILABLE"
    ),
    BILLING_BILLING_UNAVAILABLE(
        203, "BILLING_BILLING_UNAVAILABLE"
    ),
    BILLING_ITEM_UNAVAILABLE(
        204, "BILLING_ITEM_UNAVAILABLE"
    ),
    BILLING_DEVELOPER_ERROR(
        205, "BILLING_DEVELOPER_ERROR"
    ),
    BILLING_ERROR(
        206, "BILLING_ERROR"
    ),
    BILLING_ITEM_ALREADY_OWNED(
        207, "BILLING_ITEM_ALREADY_OWNED"
    ),
    BILLING_ITEM_NOT_OWNED(
        208, "BILLING_ITEM_NOT_OWNED"
    ),
    BILLING_NETWORK_ERROR(212, "BILLING_NETWORK_ERROR"),
    BILLING_UNKNOWN_ERROR(
        299,
        "BILLING_UNKNOWN_ERROR"
    ),
    BILLING_CONTEXT_NOT_VALID(
        301, "BILLING_CONTEXT_NOT_VALID"
    ),
    BILLING_UPGRADE_NOT_VALID(
        302, "BILLING_UPGRADE_NOT_VALID"
    ),
    BILLING_PRODUCT_NOT_FOUND(
        302, "BILLING_PRODUCT_NOT_FOUND"
    ),
    BILLING_PRODUCT_NOT_VALID(
        303, "BILLING_PRODUCT_NOT_VALID"
    ),
    BILLING_PRODUCT_PURCHASE_TRANSACTION_ERROR(
        304, "BILLING_PRODUCT_NOT_VALID"
    ),
    BILLING_PRODUCT_PRODUCT_IS_PURCHASE(
        305, "BILLING_PRODUCT_PRODUCT_IS_PURCHASE"
    ),