2012-10-02 50 views
2

似乎蘋果只向極少數國家/地區提供iAds。因此,我希望在非iAd支持的國家/地區使用應用程序時停止發送iAd請求。那麼做到這一點的最好方法是什麼?僅向受支持的國家/地區顯示iOS iAds

我在問這個問題,因爲我最近通過iAd網絡的消息部分收到了Apple發送的以下消息。

iAd網絡最近在加拿大推出。廣告現在在 服務於美國,加拿大,英國,德國,意大利,西班牙, 法國和日本應用程序商店的應用程序。請將您的應用配置爲僅在這些國家/地區提供服務的廣告 。

+0

你怎麼知道哪些iAd國家被支持,哪些不支持? – Jessedc

+0

iAd廣告目前在美國,加拿大,日本,法國,德國,意大利,西班牙和英國投放 來源:https://developer.apple.com/iad/#developers – sleepwalkerfx

+0

什麼特別的優化/好處您是否希望通過在某些國家/地區不發送iAd請求獲得收益? – Jessedc

回答

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]; 
} 
+1

我相信「英國」應該是「GB」,國家代碼來自http://en.wikipedia.org/wiki/ISO_3166-1 – Mike

+0

是的,你必須取代英國GB – sleepwalkerfx

+1

currentLocale與當前國家/地區之間沒有1-1連接。這是錯誤的。 – user1105951

1

iAd框架是一個黑盒子。它的用例是在文檔中定義的,您打算按預期使用它或根本不使用它。

恕我直言,有一個與iAd的,唯一不好的方式來做到這一點沒有最好的辦法

你不得不做這樣的事情:

  1. 制定出從當前支持的國家內,你的應用程序,因爲他們可以隨時間而改變。
  2. 找出你的用戶可以隨時間變化的地方。

上述兩個選項都有不良的副作用。

  1. 網絡請求/解析來檢查支持的iAd國家將比iAd請求更多的工作。
  2. 從你的應用程序中使用用戶的位置必須符合Apple's App Store Review Guidelines

您可能屬於犯規太多:

4.4位置數據只能使用時由應用程序提供的功能和服務直接相關用戶或支持批准的廣告使用

+1

是的使用位置數據肯定是一個壞主意。由於AFAIK iAd展示次數是根據哪個商店用戶已從中下載應用來計算的。不是他們當前的位置。 – sleepwalkerfx

+0

我在想,使用本地化信息會是一個好方法。但我想知道這是否是最好的方法。我不認爲'沒有最好的辦法',因爲我問這個問題是因爲蘋果鼓勵它。我已經更新了這個問題,請看。感謝您的答案無論如何:) – sleepwalkerfx

相關問題