苹果似乎只向极少数国家提供 iAd。因此,当应用程序在不支持 iAd 的国家/地区使用时,我想停止发送 iAd 请求。那么最好的方法是什么?
我问这个问题是因为我最近通过 iAd 网络的消息部分收到了来自 Apple 的以下消息。
iAd 网络最近在加拿大推出。广告现已投放到美国、加拿大、英国、德国、意大利、西班牙、法国和日本 App Store 上的应用程序。请配置您的应用以仅在这些国家/地区投放广告。
苹果似乎只向极少数国家提供 iAd。因此,当应用程序在不支持 iAd 的国家/地区使用时,我想停止发送 iAd 请求。那么最好的方法是什么?
我问这个问题是因为我最近通过 iAd 网络的消息部分收到了来自 Apple 的以下消息。
iAd 网络最近在加拿大推出。广告现已投放到美国、加拿大、英国、德国、意大利、西班牙、法国和日本 App Store 上的应用程序。请配置您的应用以仅在这些国家/地区投放广告。
(我在 StackOverflow 上的第一篇文章!)
我也在努力解决这个问题。似乎没有完美的方式来做到这一点。我的方法是使用用户语言环境的国家。(见下文)
有什么改进的建议吗?
// 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 没有最好的方法,只有不好的方法。
您必须执行以下操作:
上述两种选择都有不好的副作用。
你也可能犯规:
4.4 位置数据只能在与应用程序向用户提供的功能和服务直接相关或支持批准的广告用途时使用