admob - 用 admob ane 看不到广告
问题描述
我关注了 https://github.com/lilili87222/admob-for-flash
我仍然无法看到带有 admob ane 的广告。
步骤:
1.初始化Admob ANE
将 Admob ane 添加到 air 项目构建路径中,并在脚本文件中添加以下代码
import so.cuo.platform.admob.*;
Admob.getInstance().initAdmobSDK("your admob app ID");
2.在adobe Air App中添加Admob Banner
这是显示 admob 横幅所需的最少代码。
Admob.getInstance().showBanner("your banner ID ",AdmobSize.BANNER_320x50,AdmobPosition.BOTTOM_CENTER);
AdmobPosition 类指定放置横幅的位置。AdmobSize 指定要显示的横幅尺寸
3.删除横幅默认情况下,横幅是可见的。要隐藏横幅,
Admob.getInstance().hideBanner();
4.Admob ANE 显示插页式广告
这是将插页式广告集成到 Air ios 应用程序或 flex android 应用程序的最少代码。
Admob.getInstance().cacheInterstitial("your Interstitial ID ");
在显示之前检查插页式广告是否已加载:
if (Admob.getInstance().isInterstitialReady()) {
Admob.getInstance().showInterstitial();
}
5.自定义 Admob 横幅广告尺寸
除了 AdSize 上的常量外,您还可以创建自定义尺寸:
//Create a 320x250 banner.
AdSize adSize = new AdSize(320, 250);
Admob.getInstance().showBannerAbsolute(adSize,0,30);
6.设置Admob目标参数
如果您希望广告针对儿童:
extraParam=new ExtraParameter();
extraParam.testDeviceID="true";
extraParam.isChildApp=true;//if is tagForChildDirectedTreatment,set true
extraParam.isDesignedForFamilies=true;
extraParam.nonPersonalizedAds=true;//if want to load non Personalized ads set true
Admob.getInstance().showBanner("Your banner ID",AdmobSize.BANNER_320x50,AdmobPosition.BOTTOM_CENTER,80,extraParam);
7.广告事件
横幅广告和插页式广告都包含许多您可以注册的广告事件。要在插页式广告上设置广告事件并在广告成功加载时显示插页式广告:
Admob.getInstance().addEventListener(AdmobEvent.onInterstitialReceive, onAdEvent);
private function onAdEvent(event:AdmobEvent):void
{
if (event.type == AdmobEvent.onBannerReceive)
{
trace(event.instanceName,event.data.width, event.data.height);
}
if (event.type == AdmobEvent.onInterstitialReceive)
{
Admob.getInstance().showInterstitial();
}
}
8.Admob 奖励视频
视频 api 与 Interstitial 类似
要在视频上设置广告事件并在成功加载广告时显示视频:
if(admob.isVideoReady()){
admob.showVideo();
}else{
admob.cacheVideo(videoID);
}
Admob.getInstance().addEventListener(AdmobEvent.onVideoReceive, onVideoEvent);
private function onVideoEvent(event:AdmobEvent):void
{
if (event.type == AdmobEvent.onVideoReceive)
{
trace("load video success,you can show video now");
}
}
9.IOS最低版本配置
admob 需要 ios 8 及更高版本
<key>MinimumOSVersion</key>
<string>8.0</string>
简单的例子
<iPhone>
<InfoAdditions><![CDATA[
<key>UIDeviceFamily</key>
<array>
<string>1</string>
<string>2</string>
</array>
<key>MinimumOSVersion</key>
<string>8.0</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSAllowsArbitraryLoadsForMedia</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
<true/>
</dict>
]]></InfoAdditions>
<requestedDisplayResolution>high</requestedDisplayResolution>
</iPhone>
10.android权限配置
从 admob 17 需要 Meta Config com.google.android.gms.ads.APPLICATION_ID 请用您的 admob ID 替换 ca-app-pub-3940256099942544~3347511713
<android>
<manifestAdditions><![CDATA[
<manifest android:installLocation="auto">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application>
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent"/>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>
</manifest>
]]></manifestAdditions>
</android>
解决方案
这个 ANE 非常陈旧和过时。从那时起,AdMob SDK 已经多次更改,2018 年进行了一次重大更新。您可以使用这个几乎总是更新的 SDK。
推荐阅读
- javascript - 更改状态变量的状态后如何重新呈现页面?
- c# - 来自 viewmodel 的数据不会进入数据库 C# MVC
- c# - 值更改时如何让 WPF DataGrid 求助?
- python - “从 django ......导入......”未解决的导入错误
- typescript - TypeScript:“文档”类型上不存在属性“slug”
- python - (python)具有可变参数的函数
- ios - 设置 UICollectionViewCompositionalLayout 时未调用 UIScrollView 委托方法
- bellman-ford - Bellman-Ford 算法短前驱数组
- python - 在 Display 和 Textfile 中输出序列 (Collatz)
- google-sheets - 需要根据excel中的每周生产数量返回订单的生产完成日期