【问题标题】:How to make the Facebook ads live?如何让 Facebook 广告直播?
【发布时间】:2016-12-09 05:50:44
【问题描述】:

我在我的 iOS 应用程序中添加了 Facebook 受众网络,用于原生广告集成。一切正常,但只有测试广告。

我添加了 testDeviceKey 来显示广告,如果我尝试删除它,那么不会显示任何广告,这也让我感到困惑。我的代码是 -

@implementation AdFeedsView

FBNativeAd *nativeAd;
static NSString *adPlacementId = @"xxxxxxxxx";

- (void)showNativeAd:(UIViewController *)vc
{
   nativeAd = [[FBNativeAd alloc] initWithPlacementID:adPlacementId];
   nativeAd.delegate = self;

   NSLog(@"isTestMode1: %d",[FBAdSettings isTestMode]);
   NSString *testDeviceKey = [FBAdSettings testDeviceHash];
   if (testDeviceKey) {
     [FBAdSettings addTestDevice:testDeviceKey];
   }
  [nativeAd loadAd];
}

所以我只想问一下,除了在我的实时应用中测试广告之外,我应该对我的代码进行哪些更改,以便我们可以看到正确的广告?

【问题讨论】:

    标签: ios objective-c facebook-audience-network


    【解决方案1】:

    终于找到了解决办法。其实我已经添加了代码

    NSString *testDeviceKey = [FBAdSettings testDeviceHash];
    if (testDeviceKey) {
     [FBAdSettings addTestDevice:testDeviceKey];
    }
    

    将所有活动设备作为测试设备,因此只有测试广告。我已经在 live 版本中删除了它并包含了代码

    [FBAdSettings clearTestDevices];
    

    我们也可以

    if ([FBAdSettings isTestMode]) {
        [FBAdSettings clearTestDevice:[FBAdSettings testDeviceHash]];
    }
    

    我对 testmode 有错误的认识。我认为当我的应用上线时这将是错误的,但实际上它只是告诉设备是否已添加为 testdevice。

    【讨论】:

      【解决方案2】:

      斯威夫特 3

      此代码将确保您的测试广告在 testflight 或模拟器/设备上展示,还将确保当您发布到应用商店时,您的广告将显示为 LIVE 广告,并且测试设备将被清除。

      如果你的广告在很多地方,你可以把这段代码放在 AppDelegate 中

      import FBAudienceNetwork
      
      private func facebookAdsControl() {
          #if RELEASE
               self.clearTestDevicesForFacebookAds()
          #else
               self.addTestDevicesForFacebookAds()
          #endif
      }
      
      ///remove for live mode
      private func addTestDevicesForFacebookAds(){
          let key = FBAdSettings.testDeviceHash()
          FBAdSettings.setLogLevel(FBAdLogLevel.Log)
          FBAdSettings.addTestDevice(key)
      }
      
      ///add for live mode
      private func clearTestDevicesForFacebookAds() {
          FBAdSettings.clearTestDevices()
      }
      

      didFinishLaunchingWithOptions中调用:facebookAdsControl()

      您也可以在有广告的代码中调用此代码,但请确保在 adView.load() 之前调用它

      为了使用宏,您必须在构建设置中将标志添加到您的 Swift 标志中

      我希望这对某人有所帮助,因为我发现 Facebook 文档不是很清楚。

      【讨论】:

      • 这段代码是否可以在临时构建中工作。?如果我们在 appdelegate 中添加这个代码和平。?
      • @MuhammadDanishQureshi 老实说,我没有从事我使用上述代码的项目,所以目前不确定它是否完全相关。
      猜你喜欢
      • 2017-12-22
      • 1970-01-01
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 2012-08-06
      • 1970-01-01
      相关资源
      最近更新 更多