iOS ガイドライン | ネイティブ広告

InMobiネイティブ広告は、アプリのコンテンツにシームレスに調和することによって、ユーザーにより良い印象や体験を提供できます。アプリのデザインに最も合うレイアウトを選択し、カスタマイズすることができます。ニュース、ユーティリティー、コミュニケーション系のアプリにとっては理想的な広告フォーマットです。

InMobiネイティブ広告は、動画、静止イメージのどちらにも対応できます。プレースメントに応じて以下の選択が可能です。

  • インフィード広告 - ミュートされた自動再生のHD動画またはシンプルな静止イメージ広告です。
  • スプラッシュ広告 - アプリの起動画面にブレンドし、バックグラウンドでのアプリの読み込み時にユーザー時間を収益化します。これらの広告も、ミュートされた自動再生のHD動画広告またはシンプルな静止イメージ広告になります。

静的フィード広告

インフィード動画広告

スプラッシュ動画広告

以下の手順に従い、ネイティブ広告での収益化を開始してください。

ネイティブ広告プレースメントの設定

  1. ネイティブコンテンツプレースメントを作成します。

  2. インフィード動画広告プレースメント

    1. STREAM(ストリーム)をネイティブ広告レイアウトとして選択します。

    2. インフィード動画の場合、アスペクト比256:135または16:9のいずれかを選択します。どちらのアスペクト比も、同様のアスペクト比で有効にされたデフォルトの静的ネイティブフォールバックを有します。


    静的フィード広告プレースメント

    1. FEED(フィード)をネイティブ広告レイアウトとして選択します。

    2. インテグレーションコードで、-(UIView*)primaryViewOfWidth:(CGFloat)width <br>を確認してください。 primaryViewの取得時にwidth = 25を指定します。AdChoicesアイコンが表示され、広告レンダリングイベントが発生します。


    スプラッシュ動画広告プレースメント

    • オプション1 - 320*568スプラッシュ広告の場合:

      SPLASH(スプラッシュ)をネイティブ広告レイアウトとして選択します。

    • オプション2 - 320*480スプラッシュ広告の場合:
      1. STREAM(ストリーム)をネイティブ広告レイアウトとして選択します。

      2. アスペクト比2:3を選択します。この場合、同様のアスペクト比で有効にされたデフォルトの静的ネイティブフォールバックを有します。

ネイティブ広告API

IMNativeクラスには、次のオブジェクトが含まれています。

  • NSString* adTitle - 広告のタイトルを返します。
  • NSString* adDescription - 広告の説明を返します。
  • UIImage* adIcon - 広告のアイコンイメージを返します。
  • NSString* adCtaText - 広告のClick to actionテキストを返します。
  • NSString* adRating - 広告の評価を返します(オプション)。
  • NSURL* adLandingPageUrl - 広告のランディングURLを返します。
  • BOOL isAppDownload - 広告がアプリをダウンロードするかどうかを返します。
  • NSString* customAdContent - これには、広告のプライマリビューの周囲にカスタムUIを作成する際に使用できる追加情報(説明、イメージURLなど)が含まれています。

IMNativeクラスは、次の機能をサポートしています。

  • -(UIView*)primaryViewOfWidth:(CGFloat)width - 指定された幅のUIViewを返します。これはネイティブ広告のメインの広告コンテンツです。ネイティブプレースメントの作成時にInMobiダッシュボードで選択したのと同じアスペクト比のビューを返します。このプライマリビューが画面に表示されると、すべてのインプレッションレンダリングイベントも自動的に発生します。

    プレースメントの作成中にフィードレイアウトを選択した場合は、primaryViewの取得時にwidth = 25を指定します。AdChoicesアイコンが表示され、広告レンダリングイベントが発生します。

  • -(void)load - 広告をメモリに読み込む機能
  • -(BOOL)isReady - Trueは、広告を表示する準備が完了していることを意味します。
  • -(void)reportAdClickAndOpenLandingPage - この関数はクリックイベントを発生させ、ランディングページを開きます。この関数の使用中はランディングページを自分で開く必要はありません。
  • -(void)recyclePrimaryView - 広告が画面上の可視領域から外れるたびにこの関数を呼び出します。また、同じオブジェクトにネイティブ広告を再度読み込む前にこれを呼び出します。

インフィード広告インテグレーション

  1. InMobi SDKヘッダーをインポートします。
    #import <InMobiSDK/InMobiSDK.h>
    		
  2. 広告を表示する際のフィード内の位置を宣言します。例は、4番目の位置に広告を表示する場合です。
    #define IM_AD_INSERTION_POSITION 4
    		
  3. 以下でネイティブ広告インスタンスを宣言します。 ViewController.m
    @interface TableViewController () <IMNativeDelegate>
    @property(nonatomic,strong) IMNative *InMobiNativeAd;
    @end
    		
  4. 最終的なViewDidLoadコードは次のようになります。
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.InMobiNativeAd = [[IMNative alloc] initWithPlacementId:<Insert InMobi 
                              placement ID here>];
        self.InMobiNativeAd.delegate = self;
        [self.InMobiNativeAd load];
        //Your app content
    }
    		
  5. コールバックに成功するためにIMNativeDelegateメソッドを実装します。コールバックに成功すると、広告を画面上に表示する準備が整ったことを表示します。ここでは、InMobiNativeAdオブジェクトをTableViewのデータソースに追加する必要があります。
    -(void)nativeDidFinishLoading:(IMNative*)native{
        [self.tableData insertObject:native atIndex:IM_AD_INSERTION_POSITION];
        [self.tableView reloadData];
        NSLog(@"Native Ad did finish loading");
    }
    		
  6. ネイティブ広告のレンダリングとインプレションの計測

    nativeAdDidFinishLoadingのコールバックを取得すると、ネイティブ広告を正常に受信したことになります。次の例は、adViewをtableViewデリゲートcellForRowAtIndexPathにフェッチする方法を示しています。

    注意:インプレッションイベントは、ネイティブ広告のプライマリビューが画面の表示領域にある場合にのみ発生します。

     - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    	InFeedTableCell *cell = (InFeedTableCell *)[tableView 
                           dequeueReusableCellWithIdentifier:@"InFeedTableCell"];
    	NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"InFeedTableCell" 
                            owner:self options:nil];
    	cell = [nib objectAtIndex:0];
    	id slide = [self.tableData objectAtIndex:indexPath.row];
    	if ([self isAdAtIndexPath:indexPath]) {
            	IMNative * currentNativeAd = slide;
            	cell.iconImageView.image = currentNativeAd.adIcon;
           		cell.titleLabel.text = currentNativeAd.adTitle;
            	cell.subTitleLabel.text = @"Sponsored";
           		cell.descriptionLabel.text = currentNativeAd.adDescription;
            	cell.ctaLabel.text = currentNativeAd.adCtaText;
    		//Calculate your feed's primaryImageViewWidth and use it to fetch and
                     Ad Primary view of same width.
            	UIView* AdPrimaryViewOfCorrectWidth = [currentNativeAd 
                   primaryViewOfWidth:primaryImageViewWidth];
    		//Set the frame of Ad Primary View same as that of your feed's Primary 
                     View
    		AdPrimaryViewOfCorrectWidth.frame = primaryImageViewFrame;
                  [cell addSubview:AdPrimaryViewOfCorrectWidth];
                  UITapGestureRecognizer *singleTapAndOpenLandingPage = 
                  [[UITapGestureRecognizer alloc] initWithTarget:currentNativeAd 
                  action:@selector(reportAdClickAndOpenLandingPage)];
            	cell.ctaLabel.userInteractionEnabled = YES;
            	[cell.ctaLabel addGestureRecognizer:singleTapAndOpenLandingPage];
        	}
    	else{
    		//Your Appâ??s TableCell implementation
    	}
            return cell;
    }
    		
  7. 広告が画面領域から外れるたびに、ネイティブ広告のプライマリビューをリサイクルする必要があります。これは、メモリ使用量を最適化し、AdViewがアプリのネイティブビューと競合しないようにするためです。広告が画面上の可視領域から外れるたびにInMobiNativeAdオブジェクト上にrecyclePrimaryViewメソッドを呼び出します。TableViewでは、didEndDisplayingCellメソッドでこれを呼び出すことができます。
    - (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
        if([self isAdAtIndexPath:indexPath]){
            [self.InMobiNativeAd recyclePrimaryView];
        }
    }
    		

    注意:recyclePrimaryViewを呼び出したあとで、画面上に再度ビューを追加する場合は、[self.InMobiNativeAd primaryViewOfWidth:<custom width>]からビューを取得する必要があります。前のビューがリサイクルされてしまっているからです。これをcellForRowAtIndexPathデリゲートに追加した場合は(手順8を参照)、ここで何も行う必要はありません。

  8. 広告の更新 - ユーザーへの広告の表示を最適化するには、さまざまな時点で広告を更新する必要があります。広告を更新するには、以下の関数を同じ順序で呼び出す必要があります。

    注意:IMNativeオブジェクトをtableDataから削除し、現在の広告オブジェクトを破棄することは重要なことです。次に、新しいオブジェクトを作成し、そのオブジェクトにloadを呼び出す必要があります。また、既存のオブジェクトを破棄する前にプライマリビューをリサイクルする必要があります。

    -(void)refreshInMobiStrandAd {
       [self.tableData removeObject:self.InMobiNativeAd];
       [self.tableView reloadData];
       [self.InMobiNativeAd recyclePrimaryView];
       self.InMobiNativeAd = [[IMNative alloc] initWithPlacementId:<Insert InMobi 
       placement ID here>];
       self.InMobiNativeAd.delegate = self;
       [self.InMobiNativeAd load];
    }
    		
  9. オリエンテーションの変更を処理 - 広告のプライマリビューの新しい幅を方向変更で計算し、 [self.InMobiNativeAd primaryViewOfWidth:<custom width>]メソッドを再度呼び出して、現在の広告のプライマリビューを新しいビューに置き換える必要があります。
  10. ViewControllerクラスのdeallocメソッドで、InMobiNativeAdオブジェクトとそのデリゲートをnilに設定する必要があります。割り当てを解除してadViewへの参照をすべて削除するには、ビューのリサイクルの確認後に行います。
    -(void)dealloc {
    	[self.InMobiNativeAd recyclePrimaryView];
    	self.InMobiNativeAd.delegate = nil;
    	self.InMobiNativeAd = nil;
    }
    		

スプラッシュ広告インテグレーション

  1. スプラッシュエクスペリエンスは、同じIMNativeクラスを使用して実装できます。
  2. self.InMobiNativeAd.isReady関数を使用して、広告の表示の準備が完了しているかどうかを判断する必要があります。メインスレッドが占有されていて、時間どおりにnativeDidFinishLoadingを受信できない場合もあります。このため、カットオフ時間が経過した直後に広告が準備完了になっているかどうかをプロアクティブにチェックするのが得策です。
  3. 重要事項:広告の2番目の画面が表示されている場合は、広告を破棄しないでください。nativeWillPresentScreenでこれをチェックし、このデリゲートが発生した場合は広告を閉じることはできません。サンプル実装を以下に示します。
    @property(nonatomic,strong) bool *isSecondScreenDisplayed;// Use this to check if second screen has to be shown or not 
    -(void)nativeWillPresentScreen:(IMNative*)native{
        NSLog(@"Native Ad will present screen");
        isSecondScreenDisplayed = YES;
    }
    		
  4. プライマリビューをリサイクルしてから、広告を破棄します。これは次のように実装できます。
    @property (nonatomic, strong) UIView* SplashAdView; // Use this view to check for visibility of splash screen 
    -(void)dismissAd{
        if(isSecondScreenDisplayed){
            NSLog(@"DO NOT DISMISS THE AD WHILE THE SCREEN IS BEING DISPLAYED");
        }
        else{
            self.SplashAdView.hidden = true;
            [self.InMobiNativeAd recyclePrimaryView];
            self.InMobiNativeAd = nil;
        }
    }
    		

プレロール広告インテグレーション

  1. プレロール動画エクスペリエンスは、同じIMNativeクラスを使用して実装できます。以下のデリゲートで広告ビューを閉じる必要があります。
    -(void)nativeDidFinishPlayingMedia:(IMNative *)native{
        [self dismissAd];
    }
    		
  2. プレロール広告は、以下のように閉じることができます。
    @property (nonatomic, strong) UIView* PrerollAdView; //Use this to store the primaryView returned by the IMNative instance.
    -(void)dismissAd{
        self.PrerollAdView.hidden = true;
        [self.InMobiNativeAd recyclePrimaryView];
        self.InMobiNativeAd = nil;
    }
    		

高度な設定

以下の手順を実行して追加のコールバックを取得できます。お客様の ViewController.mファイルで以下のデリゲートメソッドを実装します。

/*Indicates that the naive has received the ad markup. */
- (void)nativeAdIsAvailable:(IMNative *)native {
NSLog(@"nativeAdIsAvailable");
}
-(void)nativeDidFinishLoading:(IMNative*)native{
    NSLog(@"Native Ad load Successful"); // Ad is ready to be displayed
}
-(void)native:(IMNative*)native didFailToLoadWithError:(IMRequestStatus*)error{
    NSLog(@"Native Ad load Failed"); // No Fill or error
}
-(void)nativeWillPresentScreen:(IMNative*)native{
    NSLog(@"Native Ad will present screen"); //Full Screen experience is about to be presented
}
-(void)nativeDidPresentScreen:(IMNative*)native{
    NSLog(@"Native Ad did present screen"); //Full Screen experience has been presented
}
-(void)nativeWillDismissScreen:(IMNative*)native{
    NSLog(@"Native Ad will dismiss screen"); //Full Screen experience is going to be dismissed
}
-(void)nativeDidDismissScreen:(IMNative*)native{
    NSLog(@"Native Ad did dismiss screen"); //Full Screen experience has been dismissed
}
-(void)userWillLeaveApplicationFromNative:(IMNative*)native{
    NSLog(@"User leave"); //User is about to leave the app on clicking the ad
}
-(void)native:(IMNative *)native didInteractWithParams:(NSDictionary *)params{
    NSLog(@"User clicked"); // Called when the user clicks on the ad.
}
-(void)nativeAdImpressed:(IMNative *)native{
    NSLog(@"User viewed the ad"); // Called when impression event is fired.
}
-(void)nativeDidFinishPlayingMedia:(IMNative*)native{
    NSLog(@"The Video has finished playing"); // Called when the video has finished playing. Used for preroll use-case
}
-(void)native:(IMNative *)native rewardActionCompletedWithRewards:(NSDictionary *)rewards{
    NSLog(@"Rewarded"); // Called when the user is rewarded to watch the ad.
}
-(void)userDidSkipPlayingMediaFromNative:(IMNative*) native {
    NSLog(@"User has skipped playing media"); // Called when the user has opted to skip the media being shown. 
}
-(void)native:(IMNative*)native adAudioStateChanged:(BOOL)audioStateMuted {
     if (audioStateMuted) {
        NSLog(@"Inline video-ad audio state changed to mute");
    } else {
        NSLog(@"Inline video-ad audio state changed to unmute");
    }
   //This is called when inline video audio state changes.
}
	

バックフィルの実装

InMobiのSDKは、ネイティブプレースメントに対してHTMLとネイティブユニットの両方を実行できます。ネイティブプレースメント用に予約されているリソースに応じて、以下の広告サイズを実行できます。

  • 320x50 HTMLバナー
  • 300x250 HTMLバナー
  • 320x480 HTML全画面バナー
  • 320x568 HTML全画面バナー
これをオンに切り替えるには、希望のバックフィルサイズでそれぞれのパートナーマネージャーに接触する必要があります。また、以下のようにコード内でこれを処理する必要があります。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
	InFeedTableCell *cell = (InFeedTableCell *)[tableView 
                       dequeueReusableCellWithIdentifier:@"InFeedTableCell"];
	NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"InFeedTableCell" 
                        owner:self options:nil];
	cell = [nib objectAtIndex:0];
	id slide = [self.tableData objectAtIndex:indexPath.row];
	if ([self isAdAtIndexPath:indexPath]) {
		if ([currentNativeAd.customAdContent rangeOfString:@"isHTMLResponse"].location != NSNotFound)
		 {
			IMNative * currentNativeAd = slide;
			//Depending on the selected backfill size, provide accurate width below
			UIView* AdPrimaryViewOfCorrectWidth = [currentNativeAd primaryViewOfWidth:250];
			AdPrimaryViewOfCorrectWidth.frame = primaryImageViewFrame;
           		[cell addSubview:AdPrimaryViewOfCorrectWidth];
		}
		else
		{
        		IMNative * currentNativeAd = slide;
        		cell.iconImageView.image = currentNativeAd.adIcon;
       			cell.titleLabel.text = currentNativeAd.adTitle;
        		cell.subTitleLabel.text = @"Sponsored";
       			cell.descriptionLabel.text = currentNativeAd.adDescription;
        		cell.ctaLabel.text = currentNativeAd.adCtaText;
			//Calculate your feed's primaryImageViewWidth and use it to fetch and Ad Primary view of same width.
        		UIView* AdPrimaryViewOfCorrectWidth = [currentNativeAd primaryViewOfWidth:primaryImageViewWidth];
			//Set the frame of Ad Primary View same as that of your feed's Primary View
			AdPrimaryViewOfCorrectWidth.frame = primaryImageViewFrame;
           		 [cell addSubview:AdPrimaryViewOfCorrectWidth];
           		 UITapGestureRecognizer *singleTapAndOpenLandingPage = 
              		[[UITapGestureRecognizer alloc] initWithTarget:currentNativeAd 
              		action:@selector(reportAdClickAndOpenLandingPage)];
        		cell.ctaLabel.userInteractionEnabled = YES;
        		[cell.ctaLabel addGestureRecognizer:singleTapAndOpenLandingPage];
    		}
	}	
	else {
		//Your Appâ??s TableCell implementation
	}
        return cell;
}
	

注意:

  • レスポンスがバックフィルであるかどうかを検出するために、customAdContentには文字列isHTMLResponseが含まれます。
  • HTMLバナーレスポンスの幅を調整しないでください。例えば、300x250のバックフィルを選択した場合は、指定された幅がハードコーディングされた250であることを確認してください。
  • バックフィルレスポンスの場合は、CTAボタンを追加しないでください。このボタンを広告の横に追加した場合、クリックは収益化されません。

取得CreativeID

時には、広告品質のチェックをすべて逃れた不正な広告主様が、無関係で不快なものや混乱するものをユーザーに表示することで、アプリのユーザーエクスペリエンスを損なうことになります。 このような状況への対応策として、広告インスタンスのcreativeIDを取得し、InMobiの連絡先に暗号化されたクcreativeIDでレポートし直します。

mNativeAd.creativeId // mNativeAdはサンプルインスタンスです。

インテグレーションのテスト

  1. InMobiポータルでテストモードを設定します。

    [ツール] - [診断]に進み、テストモードを グローバルオンセレクティブオンのどちらかに切り替えます。

    アプリに対する広告インテグレーションが初めての場合 テストモードグローバルオンに設定します。
    特定のテスト用デバイスにのみテスト用広告を配信したい場合

    アプリに対してSDKを実装済みで、特定の更新部分などのテストをテスト用のデバイスに限定して実施する必要がある場合。
    テストモードセレクティブオンに設定します。

    デバイスセクションでテスト端末を登録します。

    1. デバイスIDボックスに、デバイスIDを入力します。
    2. デバイス名ボックスで、任意の名前を設定します。
    3. [デバイスを追加]をクリックしてテスト端末を追加登録します。

    すでに登録済みのデバイスがある場合は、その端末を選択し、テストモードを有効に設定できます。

    注意:テスト完了後、本番稼働する前にテストモードをオフにしなければなりません。そうしないと、お客様のアプリは収益化できません。

    これで、テスト広告を取得するための準備が整いました。

    デバイスIDの取得

    ここでのデバイスIDは基本的にIDFAまたはIFA(広告の識別子)を指します。デバイスIDを取得するための、最も簡単なアプローチは、SDKのログレベルを「デバッグ」に設定することです。デバッグログを有効にするには、以下に示すように、これを 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;
    }
    		

    デバッグモードでは、デバイスIDは以下の様にXCode開発者コンソールに出力されます。 â?œPublisher device ID is <device-id>â??

    お客様はこのデバイスIDを デバイスIDボックスに入力できます。

  2. [診断]タブ上でテストモード時の広告ユニット別のレポート値を確認できます。実装が正しく行われたか確認するのに役立ちます。

  3. また、ネイティブ広告の読み込みに成功すると、コンソール内に以下のInMobi SDKのログも出力されるはずです。

    [InMobi] アカウントIDで初期化されたInMobi SDK:<your account id here>

    [InMobi] プレースメントIDのネイティブ広告を取得しています。<your placement id here>

    [InMobi] パブリッシャーのデバイスIDは、<device id here>です。

    [InMobi] ネイティブ広告のプレースメントIDが正常に取得されました。<your placement id here>

  4. これで、InMobiテスト広告もアプリケーション上で表示できます。
  5. 広告の作成前にSDKが正しく初期化されない場合は、通常以下のログが表示されます。

    ** エラー ** [InMobi] ___ <ad format>広告を作成する前にSDKを初期化 してください。

    ** エラー ** [InMobi] ___ アカウントIDはNULLでも空でもかまいません。有効なアカウントIDを入力してください。

    [InMobi] initに渡されたアカウントIDが無効です。有効なアカウントIDを入力してください。

一般的なSDKの初期化メッセージ

ログレベル シナリオ 表示されるメッセージ
エラー SDKがインストールされていません。 xxx広告を作成する前にSDKを初期化してください。
エラー 広告サーバーURLのATS状態が無効です。 ATS設定がサポートされていません。例外リストからInMobiを削除してください。
エラー initializeSDKWithAccountIDに提供されたアカウントIDが空白またはNULLです。 アカウントIDをNULLまたは空にすることはできません。有効なアカウントIDを入力してください。
デバッグ 有効なアカウントIDを渡した場合。 以下のアカウントIDで初期化されたInMobi SDK:<Account-Id>
デバッグ アカウントIDの長さが無効な場合。 initに渡されたアカウントIDが無効です。有効なアカウントIDを入力してください。
デバッグ より新しいバージョンのSDKが入手可能な場合。 InMobi SDKの新しいバージョン(ver.6.0.1)が利用可能です!現在は古い方のバージョンです(バージョン6.0.0)。最新のInMobi SDKを http://www.inmobi.com/products/sdk/#downloadsからダウンロードしてください。

広告のライフサイクルで出力される主なログ

ログレベル シナリオ 表示されるメッセージ
エラー 提供されたプレースメントIDが無効(<=0)です。 有効なプレースメントIDを入力してxx広告を作成してください。
エラー 無効なバナープレースメントIDが呼び出されています。 読み込みを呼び出す前に有効なプレースメントIDを提供してください。
エラー 広告の現在の状態は読み込み中または広告利用可能です。 広告の読み込みはすでに進行中です。別の広告をリクエストする前にその読み込みが完了するまでお待ちください。プレースメントID:xxが拒否されました。
エラー 広告の現在の状態はアクティブです。 広告は現在ユーザーによって表示されています。別の広告をリクエストする前にそのユーザーが広告を閉じるまでお待ちくださいプレースメントID:xxが拒否されました。
エラー 設定に示す最小更新インターバルになる前に広告が更新されています。 広告はxxx秒たつまで更新できません。
エラー 広告の現在の状態は準備が整っていません。 広告の読み込みが完了していません。表示を呼び出す前に広告が準備完了状態になるのを待ってください
エラー 表示がインタースティシャル広告に呼び出されていますが、現在アプリはビューコントローラーを渡していません。 ビューコントローラーなしでフルスクリーン広告を表示することはできません。フルスクリーン広告を表示するには、ビューコントローラーを渡してください。
エラー 広告の現在の状態は添付されていない/レンダリングされていない、またはアクティブになっていない状態です。 reportAdClickの呼び出しが間違った状態で作成されました。
デバッグ デバイスID パブリッシャーデバイスIDは<Device-ID>です。
デバッグ 設定から収益化が無効になっている場合 SDKはこの読み込み操作を実行しません。収益化が無効になっているからです。詳細な情報に関しては、InMobiまでご連絡ください。