---
title: 'Simplest way to Remove Ads via IAP'
excerpt: 'Simple tutorial on removing ads via in-app purchases on Android.'
date: 2018-04-14
categories: android
featureImage: '/images/remove-ads-via-iap.webp'

prev:
  text: 'Disabled Ads & No Appeal Form!'
  link: '/blog/admob-disabled-ads-no-appeal-form'

next:
  text: 'Bluehost India (Review)'
  link: '/blog/bluehost-india-review'
---

There are plenty of tutorials on the internet bout how to Remove Ads in your App via IAP on Android, but all are way
harder & difficult for a beginner to understand.
Someone with a little bit of Experience in Android will also find it a tad difficult.

In the beginning, even I faced problems with Android's Own IAP library!

So here's a simple tutorial for it.\
This tutorial doesn't include parts like getting App's API key & SKU (in app product
name) from Play Developer Console.

* Add the dependency as follows to grab the library –
    ```groovy
    compile 'com.anjlab.android.iab.v3:library:+'
    ```

* Next step, create a private variable like below in your `Activity` -
  ```java
  private BillingProcessor mBillingProcessor;
  ```

* Initialize the `BillingProcessor` in the `onCreate()` like this –
  ```java
  mBillingProcessor = new BillingProcessor(MainActivity.this, "Your App's API String Key here", new BillingProcessor.IBillingHandler() {
      @Override
      public void onProductPurchased(String productName, TransactionDetails transacDetails) {
          if (productName.equals("Product / SKU Name that you Created on Developer Console")) {
              relativeLayout.removeView(mAdView);
          }
      }

      @Override public void onBillingInitialized() {}
      @Override public void onPurchaseHistoryRestored() {}
      @Override public void onBillingError(int errorCode, Throwable throwable) {}
  });
  ```

  What we did above was to Remove Ads when the payment is successful.

* Now, init the library and remove ads if already purchased –
  ```java
  mBillingProcessor.initialize();
  if(mBillingProcessor.isPurchased("Your SKU Name")) {
      relativelayout.removeView(mAdView);
  }
  ```

* You also need to override the `onActivityResult()` like this -
  ```java
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (!mBillingProcessor.handleActivityResult(requestCode, resultCode, data)) {
          super.onActivityResult(requestCode, resultCode, data);
      }
  }
  ```
  Simple, isn't it!?

  Okay, we have learnt how to handle AdView removal with purchase flow,
  but how do we start or call the Purchase?? Well, simply call below method and that's it ✌️ –
  
  ```java
  mBillingProcessor.purchase(MainActivity.this, "Your SKU Name");
  ```