General
Troubleshooting When No Ads To Show
You can try to troubleshoot why are ads not showing via the Log in your console after you sent ad requests from your application or website.
You can find Log as below in your IDE or the tool for Web Developers in your browser. Take the tool for Web Developer as an example, you can see Log as below after you sent an ad request:
Vpadn-Status-Code -> -2
Vpadn-Status-Desc -> banner position with ad format not consistent
Vpadn-Status -> INVALID_REQUEST
Please find the message below to troubleshoot:
- SERVER_ERROR: The ad request was unsuccessful since the server was unabilable temporary. Please contact Vpon FAE if you see this message.
- NO_FILL: The ad request was successful. But you won’t see Vpon ad since there was no appropriate ad to deliver in the period. Please try to send the request later or request our test ads for your testing.
- INVALID_REQUEST: The ad request was invalid. Please confirm that you have applied a correct License Key with right platform and ad format setting to request ads.
Please send the Log to Vpon FAE if you have any further question about these.
Android
Is It Necessary To Add All Vpon Recommend Privacy Permissions To My App?
No, please refer to Android SDK Permission Setting to add required permissions. And you can add the optional permissions for your requirement.
Since that the optional permissions will help us to optimize ad performance and user experience, we recommend that you can add the optional permissions on the occasion that can be complicant with the platform restrictions and privacy regulation.
I Can’t See Vpon Ads After I Published My App, And Here Is Log I Got:
...
W/System.err: java.lang.ClassNotFoundException: c.Device
W/System.err: at java.lang.Class.classForName(Native Method)
W/System.err: at java.lang.Class.forName(Class.java:453)
W/System.err: at java.lang.Class.forName(Class.java:378)
W/System.err: at vpadn.ec.a(SourceFile:102)
W/System.err: at vpadn.ec.a(SourceFile:78)
W/System.err: at vpadn.ed.a(SourceFile:359)
W/System.err: at vpadn.ed.a(SourceFile:317)
W/System.err: at b.i.exec(SourceFile:46)
W/System.err: at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err: at android.os.MessageQueue.next(MessageQueue.java:325)
W/System.err: at android.os.Looper.loop(Looper.java:142)
W/System.err: at android.os.HandlerThread.run(HandlerThread.java:65)
W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "c.Device" on path: ......
W/System.err: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
W/System.err: ... 12 more
I/System.out: Error adding plugin c.Device.
...
Please help to check if you have finished your Progurad setting on our demand in Vpon Proguard Configuration.
Errors Occurred While Importing Vpon SDK
Please refer to the instruction below to simply troubleshoot and fix the errors.
Retrofit Library
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:353)
...
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lretrofit2/Retrofit$Builder;
at vpadn.bt.a(RestUtil.java:161)
at vpadn.af$c.a(VponNativeAdController.java:1747)
...
Caused by: java.lang.ClassNotFoundException: Didn't find class "retrofit2.Retrofit$Builder" on path:...
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
...
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.lilylee.vpon.vponnative-djN4vBXtkLUW-YF0pezrHQ==/split_lib_resources_apk.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:353)
at dalvik.system.DexFile.<init>(DexFile.java:100)
...
Vpon SDK start to import 3rd-party Library - Retrofit from 4.8.0, please follow Import 3rd-party Library to import Retrofit Library.
minSdkVersion
Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 17 declared in library [com.vpon:vpadnSDK:4.9.1]
vpadnSDK-4.9.1.aar/bc33461699d404214699093ae210c1ba/AndroidManifest.xml as the library might be using APIs not available in 15
Suggestion: use a compatible library with a minSdk of at most 15,
or increase this project's minSdk version to at least 17,
or use tools:overrideLibrary="com.vpon.sdk" to force usage (may lead to runtime failures)
Vpon SDK now supoort minSdkVersion Android 4.3 (API Level 18). Please make sure you have adjusted the minSdkVersion to API Level 18.
Can I Display Native Ad Via AdMob (Google Ad Manager)?
Vpon support to display Native Ad via AdMob (Google Ad Manager) Custom Event. Please refer to Android Mediation Instruction to finish your setting on AdMob.
How Can I Test The Ads Uf I Got NO_FILL?
Please try to request Vpon Test Ads for your testing. To display Vpon Test Ads, please refer to Android Test Ads.
iOS
Can I Display Native Ad Via AdMob (Google Ad Manager)?
Vpon support to display Native Ad via AdMob (Google Ad Manager) Custom Event. Please refer to iOS Mediation Instruction to finish your setting on AdMob.
Please make sure the SDK you’re using meet below requirements:
- Google Mobile Ad SDK 4.47.0 or above
- Vpon iOS SDK 4.9.1 or above
- Vpon AdMob Adapter 1.1.3 or above
Can I Integrate Vpon Web SDK To Display Ads In iOS Webview?
Yes, and please confirm below items if you’re trying to display Vpon ads in iOS Webview:
- Create a new License Key for
Mobile Web
in Vpon Publisher Panel - Make sure the Landing Page will be opened in the browser if the ads be clicked
You must implement WKUIDelegate
to handle the click action if you’re trying to display WKWebView
to display Vpon ads.
// WKUIDelegate Sample Code
(WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures {
if (navigationAction.request.URL) {
NSURL *url = navigationAction.request.URL;
NSString *urlPath = url.absoluteString;
if ([urlPath rangeOfString:@"https://"].location != NSNotFound ||
[urlPath rangeOfString:@"http://"].location != NSNotFound) {
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
}];
}
}
return nil;
}
How Can I Test The Ads Uf I Got NO_FILL?
Please try to request Vpon Test Ads for your testing. To display Vpon Test Ads, please refer to iOS Test Ads.
Error Occur When Using SDK v5.3.0 Or Above
If you see an error as below
Please try to modify the Embed setting of VpadnSDKAdKit.framework from Do Not Embed to Embed & Sign in the Project Setting.
Unable to connect IBOutlet to VponNativeAdView
Please add a new .h file in Objective-C project / a new .swift file in Swift project. And add below content in it:
Objective-C (VponNativeAdViewCopy.h)
#indef VponNativeAdViewCopy_h
#define VponNativeAdViewCopy_h
#endif /* VponNativeAdViewCopy_h */
SWIFT_CLASS("_TtC13VpadnSDKAdKit16VponNativeAdView" )
@interface VponNativeAdView : UIView
@property (nonatomic, weak) IBOutlet UView * _Nullable iconView;
@property (nonatomic, weak) IBOutlet UIView * _Nullable coverImageView;
@property (nonatomic, weak) IBOutlet UIView * _Nullable ratingValueView;
@property (nonatomic, weak) IBOutlet UIView * _Nullable ratingScaleView;
@property (nonatomic, weak) IBOutlet UView * _Nullable headlineView;
@property (nonatomic, weak) IBOutlet UView * _Nullable bodyView;
@property (nonatomic, weak) IBOutlet UIView * _Nullable callToActionView;
@property (nonatomic, weak) IBOutlet UView * _Nullable socialContextView;
@property (nonatomic, weak) IBOutlet VponMediaView * _Nullable mediaView;
@property (nonatomic, strong) VponNativeAd * _Nullable nativeAd;
- (nonnull instancetype)initWithFrame:(CGRect) frame OBJC_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder * _Nonnul1)coder OBJC_DESIGNATED_INITIALIZER;|
@end
Swift (VponNativeAdViewCopy.swift)
import UIKit
import VpadnSDKAdKit
@MainActor @objc @objcMembers open class VponNativeAdView: UIView {
@MainActor @objc @IBOutlet weak public var iconView: UIView?
@MainActor @objc @IBOutlet weak public var coverImageView: UIView?
@MainActor @objc @IBOutlet weak public var ratingValueView: UIView?
@MainActor @objc @IBOutlet weak public var ratingScaleView: UIView?
@MainActor @objc @IBOutlet weak public var headlineView: UIView?
@MainActor @objc @IBOutlet weak public var bodyView: UIView?
@MainActor @objc @IBOutlet weak public var callToActionView: UIView?
@MainActor @objc @IBOutlet weak public var socialContextView: UIView?
@MainActor @objc @IBOutlet weak public var mediaView: VpadnSDKAdKit.VponMediaView?
@MainActor @objc public var nativeAd: VpadnSDKAdKit. VponNativeAd?
}
Back to xid file, you can see IBOutlet in Outlets panel.
Error Occured After Update AdMob Adapter v2.1.0
If you see error when you update to AdMob Adapter v2.1.0:
ld: warning: Could not find or use auto-linked library 'swiftCompatibility56': library 'swiftCompatibility56' not found ld: warning: Could not find or use auto-linked library 'swiftCompatibilityConcurrency': library 'swiftCompatibilityConcurrency' not found ld: warning: Could not find or use auto-linked library 'swiftCompatibilityPacks': library 'swiftCompatibilityPacks' not found ld: warning: Could not find or use auto-linked framework 'CoreAudioTypes': framework 'CoreAudioTypes' not found ld: Undefined symbols: __swift_FORCE_LOAD_$_swiftCompatibility56, referenced from: __swift_FORCE_LOAD_$_swiftCompatibility56_$_AdMobMediationAdapterVpadn in AdMobMediationAdapterVpadn[arm64][3](GADVpadnNativeAdCustomEvent.o) __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency, referenced from: __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_AdMobMediationAdapterVpadn in AdMobMediationAdapterVpadn[arm64][3](GADVpadnNativeAdCustomEvent.o) clang: error: linker command failed with exit code 1 (use -v to see invocation)
Please follow the steps below:
- New File -> Swift File, create a new .swift any empty content
- Click Create Bridging Header (Default) while Xcode ask if you want to add Objective-C Bridging Header
- Build again
Web
How Can I Test The Ads If I Got NO_FILL?
Please follow the sample code below to replace the parameter of vpon_ad_test from 0
to 1
to get Vpon Test Ads for your testing.
<vpon vpon_ad_test="1"
vpon_ad_licensy_key="License Key"
vpon_ad_format="320x50_mb"
debug="true"></vpon>
<script type="text/javascript" src="https://m.vpon.com/sdk/vpadn-sdk.js"> </script>
Can I Set Up Passback Ad For Vpon Mobile Web Ads?
Please refer to Web SDK Callback Function to implement the Passback Ad.
<vpon vpon_ad_test="0"
vpon_ad_licensy_key="License Key"
vpon_ad_format="320x50_mb"
debug="true"
ad_request_callback="vponCallBackMethod"></vpon>
<script type="text/javascript" src="https://m.vpon.com/sdk/vpadn-sdk.js"> </script>
<script>
function vponCallBackMethod(adStatus) {
if (adStatus != 0) {
// No ads, do something here.
} else {
// Ad Received.
}
}
</script>