AppStore中使用IDFA后提交應用的注意事項


在ios7.0出來以前,我們都是通過wifi的mac來當作IOS設備的唯一標識符。如何在ios下獲取設備的MAC,你可以參數這篇文章:獲取ios的MAC地址

 

在沒有使用IDFA之前,我們在ios7及以上的版本中使用的是CFUUID

string createCUID()
{
string strRet = "";
CFUUIDRef uuid_ref = CFUUIDCreate(NULL);

CFStringRef uuid_string_ref= CFUUIDCreateString(NULL, uuid_ref);
CFRelease(uuid_ref);

NSString *uuid = [NSString stringWithFormat:@"%@",(NSString*)uuid_string_ref];
CFRelease(uuid_string_ref);

strRet = [uuid UTF8String];

return strRet;
}

然后將其存儲在Keychain上,這樣即使應用刪除了,下次安裝時值依然存在(跟MAC相似)。

--關於keychain的使用可以參考這里:

>>ios開發--密碼存儲之keychain的使用

>>IOS7:如何獲取不變的UDID

 

更多關於IOS唯一標示符的信息,可以參考這里:IOS唯一標識符引導

 

 

寫到這里,應用中依然沒有用到IDFA,直到后來需要接入CPA推廣。CPA廣告商在ios7上使用的就是IDFA,所以我們必須要用它,用它就無法繞開的一個問題就是:提交版本時如何選擇才不會被蘋果打回?

關於IDFA的相關資料,網上已經很多了,這里主要說明二點:

1、如何獲取IDFA並保存至keychain;

2、提交應用時如何選擇;

string strRet;

NSString *identifier = [[NSBundle mainBundle] bundleIdentifier];
NSString *keyName = [[NSString stringWithFormat:@"%@.adfa.name",identifier]init];
NSString *keyValue = [[NSString stringWithFormat:@"%@.adfa.value",identifier]init];

NSMutableDictionary *KeyNameValue = (NSMutableDictionary *)[CHKeychain load:keyName];
NSString *ValueADFA= [KeyNameValue objectForKey:keyValue];

if(ValueADFA)
{
strRet = [[ValueADFA uppercaseString] UTF8String];
}
else
{
NSString *adId =[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
//NSLog(@"adId: %@",adId);
strRet = [[adId uppercaseString] UTF8String];

NSMutableDictionary *usernamepasswordKVPairs = [NSMutableDictionary dictionary];
[usernamepasswordKVPairs setObject:adId forKey:keyValue];
[CHKeychain save:keyName data:usernamepasswordKVPairs];
}

return strRet;

這里盡量要保證IDFA的唯一性,如果廣告聯盟使用手工操作,每下載應用一次后手動去重置一下廣告跟蹤,然后再下載。這樣對於它來講是二次下載,對於我們來講,這樣的用戶其實屬於“作弊”了。所以沒有將IDFA存到UserDefault中,每次都從keychain上取

 

使用IDFA,程序中一定要引用Adsupport.Framework,因為我們項目並沒有使用到友盟或者其它第三方的SDK,所以提交的情況跟其它引用相關SDK的可能不太一樣。但網上關於這個提的問題倒很多,已經上線給出建議和解決方案的卻並不多。因為我們項目已經提交並審核通過了,這里只是記錄一下

首先一定要勾選申請項目內使用了IDFA,然后我們項目勾選的是“Serve advertisements within the app”

 

關於這個選項,stackoverflow有人提出了方案(原文鏈接:http://stackoverflow.com/questions/22979151/improper-advertising-identifier-idfa-usage

沒有涉及到廣告宣傳,僅僅只是跟蹤用戶轉換率之類的,勾選第一項。如何有顯示廣告就勾選第二、三項,如何都有用到就全部勾選吧。我暫時是這么理解的,如有不對的地方,歡迎斧正 :)

 

希望使用了IDFA的伙伴們,在提交應用的時候不用太苦惱,畢竟提交一次,waiting for review也需要一段時間,來來回回挺折騰的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM