FusionAds-iOS/FusionAds/Classes/fusion/core/GuruBannerAd.swift

75 lines
2.0 KiB
Swift
Raw Normal View History

// GuruBannerAd.swift
// Base class for banner ad implementations
// Corresponds to GuruBannerAd.kt in Android implementation
import Foundation
import UIKit
public struct BannerShowRequest: Equatable {
public let placement: String?
public let position: BannerPosition?
public let offset: Float?
public init(placement: String? = nil, position: BannerPosition? = nil, offset: Float? = nil) {
self.placement = placement
self.position = position
self.offset = offset
}
}
open class GuruBannerAd: RelayAd {
public let adUnitId: String
public let adPlatform: AdPlatform
private let name: String
public let adType = AdType.Banner
public init(engineId: Int, adUnitId: String, adPlatform: AdPlatform) {
self.adUnitId = adUnitId
self.adPlatform = adPlatform
self.name = "[BANNER-\(adPlatform)]"
super.init(engineId: engineId)
}
// MARK: - Logging Methods
public func logWarn(_ message: String) {
Logger.w(tag: "BANNER-\(adPlatform.name)[\(adUnitId)]", message: message)
}
public func logDebug(_ message: String) {
Logger.d(tag: "BANNER-\(adPlatform.name)[\(adUnitId)]", message: message)
}
public func logInfo(_ message: String) {
Logger.i(tag: "BANNER-\(adPlatform.name)[\(adUnitId)]", message: message)
}
public func logError(_ message: String) {
Logger.e(tag: "BANNER-\(adPlatform.name)[\(adUnitId)]", message: message)
}
// MARK: - Methods to override
open func load() -> Bool {
fatalError("Subclass must implement")
}
open func show(_ request: BannerShowRequest? = nil) -> Bool {
fatalError("Subclass must implement")
}
open func hide() -> Bool {
fatalError("Subclass must implement")
}
open func destroy() -> Bool {
fatalError("Subclass must implement")
}
open func updateOrientation(orientation: ScreenOrientation) -> Bool {
fatalError("Subclass must implement")
}
}