Banner Ads

横幅广告是一种图形广告,典型的横幅广告包含一系列静止或动态的影像及文字,传递营销信息或吸引用户采取行动。所有app都可以利用横幅广告盈利 。

按照以下步骤开始利用横幅广告盈利:

设置横幅广告

在添加app后,选择 BANNER AD,创建一个放置 ,将广告类型设置为Banner(横幅)。

创建横幅广告放置之后,将生成放置id。

创建横幅广告

IMBanner仅仅只是UIView的一个子类,根据用户操作显示HTML5广告。

InMobi SDK为展示横幅广告提供了两种机制:

a. 编程实例化

  1. 在你的 ViewController.h文件中导入头文件,并声明一个Banner(横幅)实例。 你的 ViewController头文件应该如下:

    #import <uikit uikit.h="">
    @import InMobiSDK;
    @interface ViewController : UIViewController <imbannerdelegate>
    @property (nonatomic, strong) IMBanner *banner;
    @end
    		</imbannerdelegate></uikit>
    
  2. 实例化横幅对象。你的ViewController.m文件应该如下:

    - (void)viewDidLoad {
     [super viewDidLoad];
    self.banner = [[IMBanner alloc] initWithFrame:CGRectMake(0, 0, 320, 50)
    placementId:@"Insert your placement ID here"];
    self.banner.delegate = self;
    [self.view addSubview:self.banner];
    [self.banner load];
    //[self.banner shouldAutoRefresh:YES];
    //[self.banner setRefreshInterval:90];
    }
    
    


    默认情况下, IMBanner每隔60秒刷新一次。你也可以自定义刷新时间间隔,或者关闭自动刷新,手动加载广告。不论是自动刷新还是手动加载,最小时间间隔应为20秒。

  3. UIViewControllerdealloc 函数中的委托值设为零,或是其他任何发布横幅的时间。

    -(void)dealloc {
    self.banner.delegate = nil;
    }
    
    
  4. 广告状态回调时,执行IMBanner的委托性能。支持以下回调函数:

    /*Indicates that the banner has received an ad. */
    - (void)bannerDidFinishLoading:(IMBanner *)banner {
        NSLog(@"bannerDidFinishLoading");
    }
    /* Indicates that the banner has failed to receive an ad */
    - (void)banner:(IMBanner *)banner didFailToLoadWithError:(IMRequestStatus *)error {
        NSLog(@"banner failed to load ad");
        NSLog(@"Error : %@", error.description);
    }
     /* Indicates that the banner is going to present a screen. */
    - (void)bannerWillPresentScreen:(IMBanner *)banner {
        NSLog(@"bannerWillPresentScreen");
    }
    /* Indicates that the banner has presented a screen. */
    - (void)bannerDidPresentScreen:(IMBanner *)banner {
        NSLog(@"bannerDidPresentScreen");
    }
    /* Indicates that the banner is going to dismiss the presented screen. */
    - (void)bannerWillDismissScreen:(IMBanner *)banner {
        NSLog(@"bannerWillDismissScreen");
    }
    /* Indicates that the banner has dismissed a screen. */
    - (void)bannerDidDismissScreen:(IMBanner *)banner {
        NSLog(@"bannerDidDismissScreen");
    }
    /* Indicates that the user will leave the app. */
    - (void)userWillLeaveApplicationFromBanner:(IMBanner *)banner {
        NSLog(@"userWillLeaveApplicationFromBanner");
    }
    /*  Indicates that the banner was interacted with. */
    -(void)banner:(IMBanner *)banner didInteractWithParams:(NSDictionary *)params{
        NSLog(@"bannerdidInteractWithParams");
    }
    /*Indicates that the user has completed the action to be incentivised with .*/
    -(void)banner:(IMBanner*)banner rewardActionCompletedWithRewards:(NSDictionary*)rewards{
        NSLog(@"rewardActionCompletedWithRewards");
    }
    
    
  5. 在刷新横幅对象时可使用以下转换命令:
    • UIViewAnimationTransitionNone
    • UIViewAnimationTransitionFlipFromLeft
    • UIViewAnimationTransitionFlipFromRight
    • UIViewAnimationTransitionCurlUp
    • UIViewAnimationTransitionCurlDown

     

    self.banner.transitionAnimation = UIViewAnimationTransitionCurlUp;
    
    

b. 使用界面构建器创建横幅实例

  1. UIView 放置到 ViewController 视图(view)中显示广告的放置 。
  2. 设置横幅框架。
  3. 设置UIViewIMBanner的类标识(Class Identity)。
  4. ViewController 头文件中,声明一个 IMBannerIBOutlet实例。
  5. 在故事板(Storyboard)ViewController界面的UIView(Banner)中,将其设置为你的输出。

测试集成情况

  1. 在InMobi门户站点配置测试模式。

    选择工具(Tools)-诊断(Diagnostics),将测试模式设为 Global ON或者Selective ON

    如果你是第一次集成某个广告单元 将测试模式 ( Test Mode)设为 Global ON
    如果你希望有选择性地为某组设备打开测试流量

    你之前已经为某广告单元集成过SDK,因此你应该把测试局限于几个设备
    将测试模式( Test Mode)设为Selective ON

    设备部分:

    1. Device ID对话框里,输入设备ID。
    2. Device Name对话框里,输入任意用户名。
    3. 点击Add Device添加测试设备。

    如果你已经配置过某个设备,你可以选择这个设备,测试模式将激活。

    注意: 在启动前你必须关闭测试模式,否则你将无法通过你的app盈利。

    现在你已经准备好测试广告了。

    获取设备ID

    设备id就是IDFA或者IFA(广告标识符)。获取设备ID最简单的函数就是将SDK的日志级别设为“调试(debug)”。为激活这些调试日志,在 AppDelegate.m文件的didFinishLaunchingWithOptions函数中添加以下内容:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {    
    	//Initialize InMobi SDK with your account ID
    [IMSdk initWithAccountID:@"Insert InMobi account ID here"];
    //Set log level to Debug
    [IMSdk setLogLevel:kIMSDKLogLevelDebug]; 
    	// Do your stuff.
    	return YES;
    }
    
    


    处于调试模式时,在Xcode开发者控制台登陆的设备ID为: “Publisher device ID is <device-id>”</device-id>

    你可以在 Device ID对话框中输入该设备id。

  2. 你还能在诊断选项卡上得到关于广告单元和广告请求的反馈,这些反馈在集成期间将会很有帮助。
  3. 当成功加载一条横幅广告时,你还应该在控制台浏览一下这些关键的InMobi SDK日志:

    [InMobi] InMobi SDK初始化账户id: <这里是你的账户id>

    [InMobi] 读取横幅广告获知放置id: <这里是你的放置id>

    [InMobi] 发行者设备id是 <这里是设备id>

    [InMobi] 成功读取横幅广告获知放置id: <这里是你的放置id >

  4. 现在你会在你的app上看见InMobi测试广告。
  5. 如果在创建广告前SDK未能成功初始化,你会看到这些日志:

    ** 错误 ** [InMobi] ___ 请在创建 广告前初始化SDK。

    ** 错误 ** [InMobi] ___ 账户id不能为零或空值。请提供有效的账户id。

    [InMobi] 无效的账户id无法初始化。请提供有效的账户id。

下表中为全套关键日志。

初始化SDK

情境 日志级别 日志
发行者 传递零值或空值账户id 错误 账户id不能为零或空值。请提供有效的账户id。
发行者传递有效的账户id 调试 InMobi SDK初始化账户id: <账户id>
发行者传递无效的账户id 错误 无效的账户id无法初始化。请提供有效的账户id。
有更新版本的SDK可使用 调试 有新版本 (ver. 6.0.0) 的InMobi SDK可使用!你现在使用的为旧版(ver. 5.3.1)。从 http://www.inmobi.com/products/sdk/#downloads下载最新版本的InMobi SDK。

普通广告

情境 日志级别 日志
无网络连接时发送广告请求 错误 此时网络连接不可以。请重试。
广告处于加载中或广告可看时发送广告请求 错误 广告正在加载,请等待加载完成再请求下一个广告(放置id :<placement id="" />)。
用户浏览时发送广告请求 错误 用户正在浏览广告,请等待用户关闭再请求下一个广告(放置id :<placement id="" /> )。
发行者设备Id 调试 发行者设备id是 <device id="" />

横幅广告

情境 日志级别 日志
发行者在未初始化SDK时创建横幅 错误 请在创建横幅广告前初始化SDK
发行者使用无效或空的放置id创建横幅 错误 请提供有效的放置id以创建横幅广告
发行者使用错误的放置id从IB/xml访问加载某横幅广告 错误 请提供有效的放置id以创建横幅广告
发行者访问加载某横幅广告 调试 读取横幅广告获知放置id: <placement id="" />
成功读取广告 调试 成功读取横幅广告获知放置id: <placement id="" />
无法读取广告 调试 无法读取横幅广告获知放置id: <placement id="" /> 出错: <status code="" />
开始在web视图中加载横幅广告 调试 开始在web视图中加载横幅广告标记获知放置id: <placement id="" />
成功在web视图中加载横幅广告 调试 成功在web视图中加载横幅广告标记获知放置id: <placement id="" />
无法在web视图中加载横幅广告 调试 无法在web视图中加载横幅广告标记获知放置id: <placement id="" />
横幅刷新初始化 调试 初始化横幅刷新获知放置id: <placement id="" />

此页面有用吗?

在本页面

上次更新时间: 18 Sep, 2020