iOS

iMFAD iOS SDKv4.0.0

將強大的廣告功能整合到您的 iOS 應用程式中。iMFAD SDK 支援多種廣告形式,包括橫幅廣告、蓋板廣告、置底廣告、影音廣告等。

支援的廣告形式

橫幅廣告、蓋板廣告、置底廣告、摩天影音廣告、Pre-Roll 廣告

版本記錄

此表格列出各版本的發佈與淘汰狀態,請根據您的應用版本進行相應的更新與維護。

版本 發佈日期 淘汰日期 狀態 淘汰原因
4.0.0 2025/6/1 - 支援中 -

必要條件

開發工具

  • 使用 Xcode 12.0 以上版本
  • 指定 iOS 11.0 以上版本
重要提醒

請確保您的專案符合上述最低版本要求,否則 SDK 可能無法正常運作。

安裝 SDK

將 SDK 加入至您的專案中

下載 iMFAD.xcframework 後將它拖曳至專案中,並且在 Frameworks, Libraries, and Embedded Content 選項中將 iMFAD.xcframework 設定為 Embed & Sign 即可。

將 iMFAD.xcframework 加入專案
將 iMFAD.xcframework 加入專案並設定為 Embed & Sign
安裝步驟

1. 下載 iMFAD.xcframework
2. 拖曳至 Xcode 專案
3. 設定為 Embed & Sign

設定 Info.plist

App Transport Security Settings

iOS 9 後要求所有 iOS 9 以上裝置的 app 只能使用 HTTPS 傳輸,需增加 NSAllowsArbitraryLoads 規則並設定為允許。

加入步驟:新增 App Transport Security Settings,並在底下新增 Allow Arbitrary Loads,將其設為 YES

App Transport Security 設定步驟 1
步驟 1:新增 App Transport Security Settings
App Transport Security 設定步驟 2
步驟 2:新增 Allow Arbitrary Loads
App Transport Security 設定完成
步驟 3:將 Allow Arbitrary Loads 設為 YES
Info.plist
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

選用項目

Privacy - Tracking Usage Description

本 SDK 提供可選的廣告識別碼(IDFA)來提供更符合您興趣的廣告體驗,並用於廣告成效分析。此功能為選用,您可隨時在「設定」中管理權限。

Privacy - Location Usage Description

本 SDK 提供可選的定位功能,可用於個人化廣告投放、地理相關推薦與推播通知。應用程式開發者可以根據需求決定是否啟用該功能。

關於選用權限

此功能為選用,若應用程式未在 Info.plist 中設定相關權限,SDK 不會請求定位存取權限,亦不會影響應用程式的正常運作。

蓋板廣告

蓋版以大圖或影片擇一方式呈現,讓使用者能獲得更豐富的產品資訊。

支援 HTML/JS 素材

蓋板廣告支援 HTML/JS 素材,可呈現更豐富的互動內容。

支援尺寸

  • 圖片素材尺寸:2:3 (至少 320x480) 或 9:16 (900x1600)

MFInterstitialView API

初始化廣告物件

Swift
let fullbanner = MFInterstitialView(bannerId: "21951")

MFInterstitialViewDelegate 事件

事件 說明
requestAdSuccess() 當廣告請求成功時觸發
requestAdFail() 當廣告請求失敗時觸發
onClickAd(_ message: String) 當用戶點擊廣告時觸發
onCloseAd() 當用戶關閉廣告時觸發

完整範例 - Swift

Swift
import iMFAD

class ViewController: UIViewController {
    var fullbanner: MFInterstitialView?

    override func viewDidLoad() {
        super.viewDidLoad()

        fullbanner = MFInterstitialView(bannerId: "21951")
        fullbanner?.delegate = self
        fullbanner?.debugInfo("info")
    }

    @IBAction func reqAdAction(_ sender: UIButton) {
        fullbanner?.requestAd()
    }
}

extension ViewController: MFInterstitialViewDelegate {
    func requestAdSuccess() {
        print("請求廣告成功")
        fullbanner?.show()
    }

    func requestAdFail() {
        print("請求廣告失敗")
    }

    func onClickAd(_ urlStr: String) {
        print("點擊廣告 URL: \(urlStr)")
    }

    func onCloseAd() {
        print("關閉廣告")
    }
}

廣告展示效果

蓋板廣告展示效果
蓋板廣告在 iOS 應用程式中的展示效果

置底廣告

置底廣告提供多種特效,以增加使用者與廣告的互動。

特效類型

  • 上翻特效:廣告以上翻跳出的效果呈現,以提高使用者吸睛度。素材尺寸:640x360
  • 幻燈片特效:以置底的形式展現多商品素材成列,可利用點擊切換主要商品。素材尺寸:300x250
  • 跑馬燈特效:左右滑動即能連續看到1則影音及4張圖片。素材尺寸:640x360
  • 雙喜臨門:兩組素材向左右兩側收放同時展開另一組素材。素材尺寸:320x360/800x900 + 640x360

特效展示

上翻特效
上翻特效
跑馬燈特效
跑馬燈特效
幻燈片特效
幻燈片特效
雙喜臨門
雙喜臨門

MFAdBottomView API

初始化廣告物件

Swift
let adbottom = MFAdBottomView(bannerId: "21963")

完整範例 - Swift

Swift
import iMFAD

class ViewController: UIViewController {
    var adbottom: MFAdBottomView!

    override func viewDidLoad() {
        super.viewDidLoad()

        adbottom = MFAdBottomView(bannerId: "21963")
        adbottom.delegate = self
        adbottom.debugInfo("info")
    }

    @IBAction func requestAD(_ sender: Any) {
        self.view.addSubview(adbottom)
        adbottom.requestAd()
    }

    @IBAction func releaseAD(_ sender: Any) {
        adbottom.releseAD()
    }
}

extension ViewController: MFAdBottomViewDelegate {
    func requestAdSuccess() {
        adbottom.show()
        print("成功請求廣告")
    }

    func requestAdFail() {
        print("請求廣告失敗")
    }

    func onClickAd(_ urlStr: String) {
        print("點擊廣告 URL: \(urlStr)")
    }

    func onCloseAd() {
        print("關閉廣告")
    }
}

摩天影音廣告

影音摩天廣告以 300x250 尺寸呈現影音內容。

支援尺寸

  • 影音摩天 300x250(有圖)

使用方式

摩天影音廣告使用 MFBannerView,並指定適當的 adType。

Swift
let videoBanner = MFBannerView(
    adType: MFAdType.banner300x250,
    bannerId: "YOUR_BANNER_ID"
)

廣告展示效果

摩天影音廣告展示效果
摩天影音廣告在 iOS 應用程式中的展示效果

Pre-Roll 廣告

Pre-Roll 廣告在影片播放前顯示,提供更佳的廣告曝光效果。

MFPreRollView API

初始化廣告物件

Swift
let preroll = MFPreRollView(bannerId: "YOUR_BANNER_ID")

MFPreRollViewDelegate 事件

事件 說明
requestAdSuccess() 當廣告請求成功時觸發
requestAdFail() 當廣告請求失敗時觸發
onClickAd(_ message: String) 當用戶點擊廣告時觸發
onCloseAd() 當用戶關閉廣告時觸發

廣告展示效果

Pre-Roll 廣告展示效果
Pre-Roll 廣告在 iOS 應用程式中的展示效果

常見問題

1. 為什麼廣告沒有顯示?

可能的原因:

  • 廣告請求失敗:請檢查 requestAdFail() 是否被觸發
  • 廣告 ID 錯誤:請確認輸入的 bannerId 是否正確,或是否不小心切換為全形輸入
  • bannerView 未正確加入視圖:請確保使用 self.view.addSubview(bannerView) 將廣告加入畫面
  • 網路連線異常:請檢查目前的網路狀態
  • 開啟 debug 訊息:使用 bannerView.debugInfo("info") 以獲取詳細錯誤資訊

2. 如何請求廣告?

請確保正確初始化廣告物件,然後呼叫 requestAd()

Swift
let bannerView = MFBannerView(
    adType: MFAdType.banner,
    bannerId: "XXXXXX"
)
bannerView.requestAd()

3. 未收到廣告事件通知?

請確保初始化完成後正確設定 delegate,否則廣告事件回調將無法觸發:

Swift
bannerView.delegate = self

意見回饋

我們重視您的意見,您的反饋將幫助我們改進產品與服務。如果您在使用過程中遇到問題,或有任何建議,請透過以下方式聯繫我們。

提交反饋

請提供以下資訊,以便我們更快處理您的問題:

  • 您的聯絡方式(Email 或電話)
  • 遇到的問題描述(請盡量詳細說明)
  • 操作步驟(如何重現問題)
  • 設備與系統版本(例如 iOS 17)
  • 截圖或影片(如有)

反饋類別

  • 功能建議:您希望我們新增或改進哪些功能?
  • 問題回報:請描述您遇到的技術問題
  • 使用體驗:您的使用感受如何?有什麼可以提升的地方?
  • 其他建議:任何其他想法都歡迎與我們分享!

隱私權說明

我們的 SDK 依照 Apple 的隱私政策及 App Store 指南,以合法且透明的方式處理用戶數據。

廣告識別碼(IDFA)

IDFA(Identifier for Advertisers)是 Apple 提供的設備專屬廣告識別碼,允許開發者和廣告商進行匿名的使用者追蹤與廣告投放分析。

IDFA 的使用方式:

  • 個人化廣告,使廣告內容更符合您的興趣
  • 轉換追蹤,以分析廣告的成效
  • 防止廣告詐欺,避免不正常點擊與機器人流量
重要提醒

在 iOS 14 以上版本,SDK 只有在用戶允許「App 追蹤透明度」(ATT)授權的情況下才能存取 IDFA。若用戶選擇「不允許追蹤」,則 IDFA 會被設為全 0,SDK 不會收集任何可識別的個人資訊。

隱私保護措施

  • 透明處理:不會蒐集可識別個人身份的資訊(PII),所有數據皆經過匿名化處理
  • 用戶控制權:使用者可隨時變更 IDFA 及定位的存取權限
  • 符合 Apple 的隱私政策:SDK 遵守 Apple「App 追蹤透明度」(ATT)及「App Store 隱私要求」

服務使用安全性

SDK 是否存取使用者定位資訊?
本 SDK 僅在使用者明確授權同意後,才會依應用程式設定存取定位資訊。若應用程式未使用相關功能或使用者未授權,SDK 將不會存取或儲存任何定位資料。

SDK 是否使用廣告識別碼(IDFA)?
當應用程式啟用相關功能時,本 SDK 可能會在使用者允許「App 追蹤權限」後,存取裝置上的廣告識別碼(IDFA),以協助提供更合適的廣告內容與成效評估。

重要提醒

本 SDK 僅在應用程式執行時運作,不會在背景主動收集資料,也不會在未經使用者同意的情況下追蹤任何個人資訊。