Skip to content
:docs

Troubleshooting

Find solutions to common problems that occur when integrating placements.

An error code appears

When a BuzzAd Android SDK method fails, an error code is returned through the onError callback. Use the table below to identify and resolve the cause.

Error codeCauseResolution
SERVER_ERRORAn error occurred on the Buzzvil server.Send the error code to your Buzzvil representative.
INVALID_PARAMETERSThe request did not meet the requirements.
(For example, an ad was requested before the user logged in.)
Check that the request arguments contain valid values.
CONNECTION_TIMEOUTThe network request timed out.Check the network connection.
EMPTY_RESPONSEThe network response is empty.
(For example, an ad request succeeded but returned zero ads.)
Send the error code to your Buzzvil representative.
WAITING_FOR_RESPONSEAnother preload request was made while Pop Feed was processing an existing request. Ad allocation still proceeds normally.Check for duplicate preload requests.
GOOGLE_AGE_POLICYThe user is below the minimum age allowed to receive ads under platform policy.Set an age of 15 or older when calling setProfile.
PRIVACY_POLICY_NOT_ALLOWEDThe user has not agreed to the privacy policy.Check that the user agreed to the privacy policy before requesting ads.
UNKNOWNAn unidentified error occurred.Check for errors in the SDK integration and app build.

Compilation error

  • Cause: This error occurs when integrating a BuzzScreen Android SDK version earlier than 3.11 alongside BuzzAd.

  • Solution: Use BuzzScreen Android SDK 3.11.+.

App build errors

Several issues can cause build failures after integrating the BuzzAd Android SDK. Use the solutions below to troubleshoot them.

Incompatible Kotlin version

  • Cause: Your app uses Kotlin 1.3 or earlier, which is incompatible. BuzzAd Android SDK uses Kotlin 1.5 from v3.0.
  • Solution: Set the Kotlin version to 1.4 or later.

The kotlin-android-extensions Gradle plugin is deprecated

Cannot reference the android.view.DisplayCutout getCutout() method

  • Cause: The android.view.DisplayCutout getCutout() method was added in API 29.
  • Solution: Set compileSdkVersion to 31 or later, or add -dontwarn android.view.Display to your ProGuard rules.

Cannot register a repository in the project-level build.gradle

  • Cause: Configuration that belonged in build.gradle in older Android Studio versions has moved to settings.gradle in newer versions.

  • Solution: Use either of the following methods.

    Method 1. Add maven { ... } to settings.gradle.

    settings.gradle · Java
    // settings.gradle
    
      pluginManagement {
          repositories {
              gradlePluginPortal()
              google()
              mavenCentral()
          }
      }
      dependencyResolutionManagement {
          repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
          repositories {
              google()
              mavenCentral()
              maven { url "https://dl.buzzvil.com/public/maven" } // 버즈빌 저장소
          }
      }
    

Method 2. Delete lines 10–17 from the settings.gradle file above, then add the dependencies in the project-level build.gralde.

build.gradle · Java
// build.gradle(proejct)
  allprojects {
      repositories {
          maven { url "https://dl.buzzvil.com/public/maven" } // 버즈빌 저장소
      }
  }

Manifest merger failure

  • Cause: You are using a BuzzAd Android SDK version earlier than 3.5.x with targetSdkVersion set to 31.
  • Solution: Update to BuzzAd Android SDK v3.5.x.

Ads are not allocated correctly

Ad allocation can fail for several reasons even after the app builds successfully with the BuzzAd Android SDK. Use the solutions below to troubleshoot.

No ads are allocated

  • Cause: The user profile required for ad allocation was not registered during SDK initialization.
  • Solution: Follow Register a user profile.

No ads are allocated despite a valid user profile

  • Cause: Registering user information through setUserProfile triggers creation of a session key required for ad allocation. A request made after setUserProfile but before the key is issued may fail.
  • Solution: Register a receiver to check when the session key has been issued, as follows.
  1. Register BroadcastReceiver.

  2. Register SessionReadyBroadcastReceiver through BuzzAdBenefit.registerSessionReadyBroadcastReceiver.

  3. Unregister the receiver once ads are allocated successfully.

Java
// 1. BroadcastReceiver를 등록하세요
private BroadcastReceiver sessionReadyReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // 세션이 완료되었습니다
    }
};

// 2. SessionReadyBroadcastReceiver 를 등록하세요
private void registerSessionReadyReceiver() {
    BuzzAdBenefit.registerSessionReadyBroadcastReceiver(this, sessionReadyReceiver);
}

// 3. 광고가 정상적으로 할당되면 receiver 등록을 해제하세요 
private void unregisterSessionReadyReceiver() {
    BuzzAdBenefit.unregisterSessionReadyBroadcastReceiver(sessionReadyReceiver);
}

Video ads are not allocated after setup is complete

  • Cause: BuzzAd SDK uses Covi SDK for video ads. Various compatibility issues can prevent this module from working, most commonly using an ExoPlayer version other than 2.11.8.
  • Solution: Use a compatible ExoPlayer version. If that is not possible, exclude Covi SDK to prevent unexpected errors. See Exclude Covi SDK from dependencies.

The BuzzAd SDK in-app browser does not work correctly

  • Cause: The SDK's in-app browser may be affected by functions that respond globally to other activities' lifecycles.

  • Solution: Register BuzzAdBrowser.LifecycleObserver in BuzzAdBrowser to run actions according to the in-app browser's own lifecycle. This observer lets the browser run its configured actions at the appropriate points in its independent lifecycle. Observer functions also provide the browser's context, which you can use while its containing activity is alive.

The following example creates a WebView object to handle a case where [WebView.pauseTimers()](https://developer.android.com/reference/android/webkit/WebView#pauseTimers() is called while the app is onPause(), stopping JavaScript in all app WebViews and freezing the SDK browser.
Register BuzzAdBrowser.LifecycleObserver in BuzzAdBrowser to manage the browser lifecycle and resume or pause JavaScript in onResume() and onPause() respectively.

Java
BuzzAdBrowser.getInstance(context).setBrowserLifecycleObserver(new BuzzAdBrowser.LifecycleObserver() {
    @Override
    public void onResume(@NonNull Context context) {
        (new WebView(context)).resumeTimers();
    }

    @Override
    public void onPause(@NonNull Context context) {
        (new WebView(context)).pauseTimers();
    }
});

Exclude Covi SDK from dependencies

BuzzAd SDK uses Covi SDK for video ads. If you need to exclude it for compatibility or another reason, exclude the buzz-covi module when declaring the buzzad-benefit dependency in build.gradle, as shown below.

Groovy
implementation ("com.buzzvil:buzzad-benefit:3.29.+") {
    exclude (group: "com.buzzvil", module: "buzz-covi")
}