Как отображать промежуточные заголовки admob несколько раз?

#ios #iphone #objective-c #xcode #admob

#iOS #iPhone #objective-c #xcode #admob

Вопрос:

У меня есть небольшое игровое приложение, в котором есть одна раскадровка, и внутри него создаются такие сцены, как меню «Пуск»-игровая зона-оценки. Я добавил в него просмотр баннера admob и промежуточные заголовки.Мой просмотр баннера работает нормально, но мой интерстициал работает только один раз.

Я загружаю свой промежуточный файл в свой viewdidload и запускаю его в функции, которая вызывает завершение игровых сеансов, и, как я уже сказал, это работает, но только один раз, когда пользователь запускает другую игру и терпит неудачу, на этот раз промежуточного файла нет (ошибка ниже).Итак, что я должен сделать, чтобы исправить это Я хочу, чтобы моя игра показывала промежуточные заголовки несколько раз, когда я захочу.

Ошибка: Ошибка запроса: не будет отправлен запрос, поскольку был использован промежуточный объект.

Заголовок:

 #import "GADBannerView.h"
#import "GADInterstitial.h"
@class GADInterstitial;
@class GADRequest;
////////////code UIviewcontroller//////////
        GADBannerView *bannerView_;
        GADInterstitial *interstitial_;
 

Реализация

 -(void)viewdidload
{
//////////////////gaming code///////////

interstitial_ = [[GADInterstitial alloc] init];
    interstitial_.delegate = self;

    interstitial_.adUnitID = @"ca-app-pub-6280395701552972/5217388242";
    GADRequest *request = [GADRequest request];
    [interstitial_ loadRequest:request];

}
 

Внедрение

 -(void)failgame
{
//////////////////gaming code///////////

    [interstitial_ presentFromRootViewController:self];

}
 

На странице googleadmob SDK говорится, что промежуточные заголовки являются объектами одноразового использования, поэтому я на 100% уверен, что это проблема, но там нет ничего, чтобы объяснить, как вызывать их несколько раз, поэтому, пока вы указываете ответ, пожалуйста, не говорите go read, я прочитал его 5 раз.

Комментарии:

1. Промежуточный тип рекламы доступен не для всех. просто проверьте, отображает ли приложение объявление или нет.. Для промежуточных вам нужна некоторая цена за клик…

Ответ №1:

Ну, никто не дал ответа, но я уверен, что есть и другие, у которых была такая же проблема, поэтому для тех, кто хочет вызывать заголовки несколько раз, вот хитрость.

Поместите его в свой собственный метод и вызовите метод из вашего основного метода (который отвечает много раз)

Сохраняйте промежуточные заголовки в вашем viewdidload (или там, где вы хотите запустить первым), потому что, если вы этого не сделаете, вы пропустите первый запуск, остальные будут работать.

Полный код для этого.

 - (void) callint
{
    int rNumber1 = arc4random() % 45   1;
    int rNumber2 = arc4random() % 45   1;
    if((rNumber1%2==1) amp;amp; (rNumber1%1==0))
    {
    [interstitial_ presentFromRootViewController:self];
    interstitial_ = [[GADInterstitial alloc] init];
    interstitial_.delegate = self;
    interstitial_.adUnitID = @"ca-app-pub-6280395701552972/5217388242";
    GADRequest *request = [GADRequest request];
    [interstitial_ loadRequest:request];

    }

}
 

Я создаю случайное число, и если есть, потому что я не хочу, чтобы пользователи видели эти промежуточные звенья каждый раз, когда запускается даже вызов int, каждый раз, когда у него есть 4/1 шанс срабатывания, поэтому он показывает 1 промежуточное звено для 4-5 срабатываний.

Комментарии:

1. Спасибо, что генератор случайных чисел полезен. Не хотите подробнее объяснить, как это работает?

Ответ №2:

 - (void)viewDidLoad {
  [super viewDidLoad];
  self.interstitial = [self createAndLoadInterstitial];
}

- (GADInterstitial *)createAndLoadInterstitial {
  GADInterstitial *interstitial = [[GADInterstitial alloc] initWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"];
  interstitial.delegate = self;
 [interstitial loadRequest:[GADRequest request]];
  return interstitial;
}

- (void)interstitialDidDismissScreen:(GADInterstitial *)interstitial {
  self.interstitial = [self createAndLoadInterstitial];
}
 

GADInterstitial — это объект одноразового использования. Чтобы запросить другой промежуточный элемент, вам нужно выделить новый объект GADInterstitial .

Лучшее место для выделения другого промежуточного элемента — в методе interstitialDidDismissScreen: в GADInterstitialDelegate, чтобы следующий промежуточный элемент начинал загружаться, как только предыдущий был удален. ссылка: ссылка на сайт admob

Ответ №3:

Если вы будете следовать рекомендуемому коду Admob, как показал Sonu VR, у вас не возникнет проблем. Просто обратите внимание, что, несмотря на использование кода Admob с наилучшей практикой, будет ошибка регистрации, это отвлекающий маневр. Вероятно, это ошибка в ведении журнала Admob, но не ошибка в коде Admob для показа рекламы. Вы можете проверить это, используя нетестовый телефон, и разные объявления будут показываться в разное время.