似乎蘋果只向極少數國家/地區提供iAds。因此,我希望在非iAd支持的國家/地區使用應用程序時停止發送iAd請求。那麼做到這一點的最好方法是什麼?僅向受支持的國家/地區顯示iOS iAds
我在問這個問題,因爲我最近通過iAd網絡的消息部分收到了Apple發送的以下消息。
iAd網絡最近在加拿大推出。廣告現在在 服務於美國,加拿大,英國,德國,意大利,西班牙, 法國和日本應用程序商店的應用程序。請將您的應用配置爲僅在這些國家/地區提供服務的廣告 。
似乎蘋果只向極少數國家/地區提供iAds。因此,我希望在非iAd支持的國家/地區使用應用程序時停止發送iAd請求。那麼做到這一點的最好方法是什麼?僅向受支持的國家/地區顯示iOS iAds
我在問這個問題,因爲我最近通過iAd網絡的消息部分收到了Apple發送的以下消息。
iAd網絡最近在加拿大推出。廣告現在在 服務於美國,加拿大,英國,德國,意大利,西班牙, 法國和日本應用程序商店的應用程序。請將您的應用配置爲僅在這些國家/地區提供服務的廣告 。
(我的第一個職位在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];
}
我相信「英國」應該是「GB」,國家代碼來自http://en.wikipedia.org/wiki/ISO_3166-1 – Mike
是的,你必須取代英國GB – sleepwalkerfx
currentLocale與當前國家/地區之間沒有1-1連接。這是錯誤的。 – user1105951
iAd框架是一個黑盒子。它的用例是在文檔中定義的,您打算按預期使用它或根本不使用它。
恕我直言,有一個與iAd的,唯一不好的方式來做到這一點沒有最好的辦法。
你不得不做這樣的事情:
上述兩個選項都有不良的副作用。
您可能屬於犯規太多:
4.4位置數據只能使用時由應用程序提供的功能和服務直接相關用戶或支持批准的廣告使用
是的使用位置數據肯定是一個壞主意。由於AFAIK iAd展示次數是根據哪個商店用戶已從中下載應用來計算的。不是他們當前的位置。 – sleepwalkerfx
我在想,使用本地化信息會是一個好方法。但我想知道這是否是最好的方法。我不認爲'沒有最好的辦法',因爲我問這個問題是因爲蘋果鼓勵它。我已經更新了這個問題,請看。感謝您的答案無論如何:) – sleepwalkerfx
你怎麼知道哪些iAd國家被支持,哪些不支持? – Jessedc
iAd廣告目前在美國,加拿大,日本,法國,德國,意大利,西班牙和英國投放 來源:https://developer.apple.com/iad/#developers – sleepwalkerfx
什麼特別的優化/好處您是否希望通過在某些國家/地區不發送iAd請求獲得收益? – Jessedc