2

苹果似乎只向极少数国家提供 iAd。因此,当应用程序在不支持 iAd 的国家/地区使用时,我想停止发送 iAd 请求。那么最好的方法是什么?

我问这个问题是因为我最近通过 iAd 网络的消息部分收到了来自 Apple 的以下消息。

iAd 网络最近在加拿大推出。广告现已投放到美国、加拿大、英国、德国、意大利、西班牙、法国和日本 App Store 上的应用程序。请配置您的应用以仅在这些国家/地区投放广告。

4

2 回答 2

8

(我在 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];
}
于 2012-10-23T06:33:19.877 回答
1

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

恕我直言,iAd 没有最好的方法,只有不好的方法。

您必须执行以下操作:

  1. 在您的应用程序中计算当前支持的国家/地区,因为它们会随着时间的推移而变化。
  2. 找出您的用户所在的位置,这会随着时间的推移而改变。

上述两种选择都有不好的副作用。

  1. 检查受支持的 iAd 国家/地区的网络请求/解析将比 iAd 请求工作更多。
  2. 在您的应用程序中使用用户位置必须符合Apple 的 App Store 审核指南

你也可能犯规:

4.4 位置数据只能在与应用程序向用户提供的功能和服务直接相关或支持批准的广告用途时使用

于 2012-10-02T05:45:38.803 回答