用 admob ane 看不到广告

Posted

技术标签:

【中文标题】用 admob ane 看不到广告【英文标题】:Cannot see advertisement with admob ane 【发布时间】:2019-08-01 09:01:57 【问题描述】:

我关注了https://github.com/lilili87222/admob-for-flash

我仍然无法使用 admob ane 看到广告。

步骤

1.Init 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 需要元配置 com.google.android.gms.ads.APPLICATION_ID 请将 ca-app-pub-3940256099942544~3347511713 替换为您的 admob ID

<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>

【问题讨论】:

【参考方案1】:

这个 ANE 非常陈旧和过时。自那以后,AdMob SDK 发生了数次更改,并在 2018 年进行了一次重大更新。您可以使用几乎总是更新的this one。

【讨论】:

以上是关于用 admob ane 看不到广告的主要内容,如果未能解决你的问题,请参考以下文章

使用 MoPub 进行中介时看不到任何原生 AdMob 广告

在@capacitor-community/admob 中找不到广告的发布商数据

Admob Milkman Games ANE 在 Flex View Android 中的位置

iPad AdMob 集成问题 - 广告显示但仅此而已

AdMob 未在 iOS 版本上投放广告。错误代码 8,找不到名称为 ("com.google.DummyAdapter") 的广告网络适配器

Google Admob原生广告