SDK说明


Flutter 入门指南

<h2>flutter SDK 示例源码<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#flutter-sdk-%E7%A4%BA%E4%BE%8B%E6%BA%90%E7%A0%81">​</a></h2> <ul> <li> <p>Demo示例中我们在AdSetting.dart 默认内置了一套iOS/Android 测试广告位代码, 开发者可根据需要替换为申请的广告参数</p> <p>/* adType:</p> <ul> <li>1:激励广告</li> <li>2:开屏广告 </li> <li>4:插屏广告</li> <li>5:原生信息流广告</li> <li>7:横幅广告 */ if(Platform.isIOS){ return AdSetting(appId: 16990,slotIds: [ SlotId(adSlotId: &quot;8373387208687695&quot;,adType: 1), // 激励广告位 SlotId(adSlotId: &quot;8374774642581842&quot;,adType: 2), // 开屏广告位 SlotId(adSlotId: &quot;9690693976929807&quot;,adType: 4), // 插屏广告位 SlotId(adSlotId: &quot;5756789376418096&quot;,adType: 5), // 原生信息流广告位 SlotId(adSlotId: &quot;9828667573411889&quot;,adType: 7), // 横幅广告位 ],otherSetting: OtherSetting());</li> </ul> <p>}else{ return AdSetting(appId: 16991,slotIds: [ SlotId(adSlotId: &quot;9387595158051935&quot;,adType: 1), // 激励广告位 SlotId(adSlotId: &quot;2009470615832232&quot;,adType: 2), // 开屏广告位 SlotId(adSlotId: &quot;4753286031006593&quot;,adType: 4), // 插屏广告位 SlotId(adSlotId: &quot;9224761251541712&quot;,adType: 5), // 原生信息流广告位 SlotId(adSlotId: &quot;6426940313333654&quot;,adType: 7), // 横幅广告位 ],otherSetting: OtherSetting()); }</p> </li> </ul> <h2>flutter SDK 开放源码<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#flutter-sdk-%E5%BC%80%E6%94%BE%E6%BA%90%E7%A0%81">​</a></h2> <h2>前提条件<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6">​</a></h2> <ul> <li>Flutter版本要求: Flutter: &quot;&gt;=2.12.0&quot; , Dart: &quot;&gt;=2.12.0&quot;</li> </ul> <h2>导入移动广告 SDK<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E5%AF%BC%E5%85%A5%E7%A7%BB%E5%8A%A8%E5%B9%BF%E5%91%8A-sdk">​</a></h2> <ul> <li> <p>手动导入:</p> <ol> <li>新建Plugins目录, 将下载的flutter sdk 放入到项目Plugins目录下</li> <li> <p>编辑 pubspec.yaml 文件</p> <p>yaml</p> <pre><code>dependencies: windmill_ad_plugin: path: Plugins/windmill_ad_plugin/</code></pre> </li> <li> <p>执行 <code>flutter pub get</code> 在使用类中引入头文件:</p> <pre><code>import 'package:windmill_ad_plugin/windmill_ad_plugin.dart';</code></pre> </li> </ol> </li> </ul> <h2>iOS平台导入说明<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#ios%E5%B9%B3%E5%8F%B0%E5%AF%BC%E5%85%A5%E8%AF%B4%E6%98%8E">​</a></h2> <h3>添加接入的渠道<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E6%B7%BB%E5%8A%A0%E6%8E%A5%E5%85%A5%E7%9A%84%E6%B8%A0%E9%81%93">​</a></h3> <ol> <li>更新plugins/windmill_ad_plugin/ios/windmill_ad_plugin.podspec文件,添加要接入的渠道pod内容</li> </ol> <p>dart</p> <pre><code> s.dependency 'ToBid-iOS', '3.3.0' s.dependency 'ToBid-iOS/TouTiaoAdapter', '3.3.0' s.dependency 'ToBid-iOS/CSJMediationAdapter', '3.3.0' s.dependency 'ToBid-iOS/AdmobAdapter', '3.3.0' s.dependency 'ToBid-iOS/MintegralAdapter', '3.3.0' s.dependency 'ToBid-iOS/GDTAdapter', '3.3.0' s.dependency 'ToBid-iOS/VungleAdapter', '3.3.0' s.dependency 'ToBid-iOS/UnityAdsAdapter', '3.3.0' s.dependency 'ToBid-iOS/KSAdapter', '3.3.0' s.dependency 'ToBid-iOS/BaiduAdapter', '3.3.0' s.dependency 'ToBid-iOS/KlevinAdapter', '3.3.0' s.dependency 'ToBid-iOS/AdScopeAdapter', '3.3.0' s.dependency 'ToBid-iOS/IronSourceAdapter', '3.3.0' s.dependency 'ToBid-iOS/AppLovinAdapter', '3.3.0' s.dependency 'ToBid-iOS/MSAdAdapter', '3.3.0' # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' =&amp;gt; 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' =&amp;gt; 'i386' }</code></pre> <h3>添加“ObjC”链接器标记<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E6%B7%BB%E5%8A%A0-objc-%E9%93%BE%E6%8E%A5%E5%99%A8%E6%A0%87%E8%AE%B0">​</a></h3> <p>在Xcode中选择项目的Targets-&gt;Build Settings,配置Other Link Flags 增加 <strong>-ObjC</strong>。</p> <h3>Admob 渠道接入说明<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#admob-%E6%B8%A0%E9%81%93%E6%8E%A5%E5%85%A5%E8%AF%B4%E6%98%8E">​</a></h3> <p>&gt; 如果作为聚合接入且接入了Google AdMob SDK,需要在info.plist 添加GADApplicationIdentifier字段,value为AppId,<code>&amp;lt;key&amp;gt;GADApplicationIdentifier&amp;lt;/key&amp;gt;&amp;lt;string&amp;gt;申请的admob的appid&amp;lt;/string&amp;gt;</code>,具体请参考Google AdMob 文档:<a href="https://developers.google.com/admob/ios/quick-start"><a href="https://developers.google.com/admob/ios/quick-start">https://developers.google.com/admob/ios/quick-start</a></a></p> <p><strong>来自Google文档参数,仅做参考。</strong></p> <p>xml</p> <pre><code>&amp;lt;key&amp;gt;GADApplicationIdentifier&amp;lt;/key&amp;gt; &amp;lt;string&amp;gt;ca-app-pub-3940256099942544~1458002511&amp;lt;/string&amp;gt;</code></pre> <h3>添加HTTP权限<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E6%B7%BB%E5%8A%A0http%E6%9D%83%E9%99%90">​</a></h3> <p>工程info.plist文件设置,点击右边的information Property List后边的 &quot;+&quot; 展开 添加 App Transport Security Settings,先点击左侧展开箭头,再点右侧加号,Allow Arbitrary Loads 选项自动加入,修改值为 YES。 SDK API 已经全部支持HTTPS,但是广告主素材存在非HTTPS情况。</p> <p>xml</p> <pre><code>&amp;lt;key&amp;gt;NSAppTransportSecurity&amp;lt;/key&amp;gt; &amp;lt;dict&amp;gt; &amp;lt;key&amp;gt;NSAllowsArbitraryLoads&amp;lt;/key&amp;gt; &amp;lt;true/&amp;gt; &amp;lt;/dict&amp;gt;</code></pre> <h3>添加定位权限<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E6%B7%BB%E5%8A%A0%E5%AE%9A%E4%BD%8D%E6%9D%83%E9%99%90">​</a></h3> <p>工程info.plist文件设置,点击右边的information Property List后边的 &quot;+&quot; 展开 添加Privacy - Location When In Use Usage Description。</p> <h3>iOS 14 适配<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#ios-14-%E9%80%82%E9%85%8D">​</a></h3> <h4>获取App Tracking Transparency授权<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E8%8E%B7%E5%8F%96app-tracking-transparency%E6%8E%88%E6%9D%83">​</a></h4> <p>xml</p> <pre><code>&amp;lt;key&amp;gt;NSUserTrackingUsageDescription&amp;lt;/key&amp;gt; &amp;lt;string&amp;gt;获取标记权限向您提供更优质、安全的个性化服务及内容,未经同意我们不会用于其他目的;开启后,您也可以前往系统“设置-隐私 ”中随时关闭&amp;lt;/string&amp;gt;</code></pre> <h3>SKAdNetwork 支持<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#skadnetwork-%E6%94%AF%E6%8C%81">​</a></h3> <ul> <li>从平台获取 SKAdNetwork IDs 代码列表信息 添加到 info.plist</li> </ul> <h2>Android平台导入说明<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#android%E5%B9%B3%E5%8F%B0%E5%AF%BC%E5%85%A5%E8%AF%B4%E6%98%8E">​</a></h2> <h3>导入Android原生SDK<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#%E4%B8%8B%E8%BD%BD%E5%B9%B6%E5%AF%BC%E5%85%A5android%E5%8E%9F%E7%94%9Fsdk">​</a></h3> <h3>1.将Android SDK压缩包中xml目录中的内容对应复制到工程的xml目录中<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_1-%E5%B0%86android-sdk%E5%8E%8B%E7%BC%A9%E5%8C%85%E4%B8%ADres%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%86%85%E5%AE%B9%E5%AF%B9%E5%BA%94%E5%A4%8D%E5%88%B6%E5%88%B0%E5%B7%A5%E7%A8%8B%E7%9A%84res%E7%9B%AE%E5%BD%95%E4%B8%AD">​</a></h3> <h3>2. 将下载的SDK AdNetworks 和core 放置到plugins/windmill_ad_plugin/android/的libs目录下<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_2-%E5%B0%86%E4%B8%8B%E8%BD%BD%E7%9A%84sdk-adnetworks%E5%88%B0plugins-windmill-ad-plugin-android-%E7%9A%84libs%E7%9B%AE%E5%BD%95%E4%B8%8B">​</a></h3> <p><img src="http://mn.sigmob.com/supportcenter_v2/windmill/SDK/flutter/android_tobid_sdk_dir.png" alt="" /></p> <h3>3. 修改android/app/build.gradle 根据需要添加依赖的渠道目录<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Flutter/SDK%E6%8E%A5%E5%85%A5%E9%85%8D%E7%BD%AE/#_3-%E4%BF%AE%E6%94%B9android-app-build-gradle-%E6%A0%B9%E6%8D%AE%E9%9C%80%E8%A6%81%E6%B7%BB%E5%8A%A0%E4%BE%9D%E8%B5%96%E7%9A%84%E6%B8%A0%E9%81%93%E7%9B%AE%E5%BD%95">​</a></h3> <p>如:</p> <p>java</p> <pre><code>dependencies { //AndroidX implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.android.support:multidex:1.0.3' implementation &amp;quot;androidx.appcompat:appcompat:1.2.0&amp;quot; implementation &amp;quot;androidx.recyclerview:recyclerview:1.2.0&amp;quot; implementation &amp;quot;com.android.support:support-annotations:28.0.0&amp;quot; // implementation 'com.android.support:recyclerview-v7:28.0.0' // implementation 'com.android.support:appcompat-v7:28.0.0' // implementation 'com.android.support:support-v4:28.0.0' implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: 'libs') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: '../../plugins/windmill_ad_plugin/android/libs/Core') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/csj') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/gromore') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/gdt') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/kuaishou') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/baidu') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/mintegral-cn') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,&amp;quot;*.aar&amp;quot;], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/adscope') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,'*.aar'], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/klevin') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;,'*.aar'], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/qumeng') implementation fileTree(include: [&amp;quot;*.jar&amp;quot;, '*.aar'], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/taptap') implementation &amp;quot;com.github.bumptech.glide:glide:4.9.0&amp;quot; implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' implementation 'io.reactivex.rxjava2:rxjava:2.0.1' implementation 'com.squareup.okhttp3:okhttp:3.12.1' implementation fileTree(include: [&amp;quot;*.jar&amp;quot;, '*.aar'], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/meishu') implementation 'com.squareup.okhttp3:okhttp:3.12.1' implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.googlecode.android-query:android-query:0.25.9' implementation 'androidx.cardview:cardview:1.0.0' implementation fileTree(include: [&amp;quot;*.jar&amp;quot;, '*.aar'], dir: '../../plugins/windmill_ad_plugin/android/libs/AdNetworks/oppoadn') implementation 'com.squareup.okio:okio:2.5.0' implementation 'org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.72' implementation 'android.arch.persistence:db-framework:1.1.1'//410版本新增 implementation 'androidx.palette:palette:1.0.0'//490版本新增 }</code></pre>

页面列表

ITEM_HTML