仅向受支持的国家显示iOS iAds

看起来苹果只向极less数国家的iAds提供服务。 所以我想停止发送iAd请求,当应用程序正在非iAd支持的国家使用。 那么做这件事的最好方法是什么?

我问这个问题,因为我最近收到来自苹果的消息,通过iAdnetworking的消息部分。

iAdnetworking最近在加拿大推出。 现在,广告已经投放到美国,加拿大,英国,德国,意大利,西class牙,法国和日本的应用程序商店。 请仅在这些国家/地区为您的应用configuration广告投放。

(我的第一个post在StackOverflow!)

我也试图解决这个问题。 似乎没有一个完美的方式来做到这一点。 我的方法是使用用户区域的国家。 (见下文)

任何改善build议?

// Indicate if the iAds framework is supported for this particular device + (bool) iAdsIsSupported { // List of supported countries for iAds static NSSet* supportedCountries = nil; if (supportedCountries == nil) { supportedCountries = [[NSSet setWithObjects: @"ES", // spain @"US", // usa @"UK", // united kingdom @"CA", // canada @"FR", // france @"DE", // german @"IT", // italy @"JP", // japan nil] retain]; } // Check if the country is in the supported countries // http://stackoverflow.com/questions/3940615/find-current-country-from-iphone-device NSLocale* currentLocale = [NSLocale currentLocale]; // get the current locale. NSString* countryCode = [currentLocale objectForKey:NSLocaleCountryCode]; return [supportedCountries containsObject:countryCode]; } 

iAd框架是一个黑匣子。 它的用例是在文档中定义的,而您打算按预期使用它,或根本不使用它。

恕我直言,没有最好的方式来做到这一点与iAd,只有不好的方法。

你必须做一些事情:

  1. 从您的应用程序中找出当前支持的国家,因为它们可以随时间变化。
  2. 研究你的用户可以随时间改变的地方。

上述两个选项都有不良的副作用。

  1. networking请求/parsing来检查支持的iAd国家将比iAd请求更多的工作。
  2. 从您的应用程序中使用用户位置必须符合苹果的App Store评论指南

你也可能犯规

4.4位置数据只能在与应用程序向用户提供的function和服务直接相关的情况下使用,或者用于支持经批准的广告使用