Использование «хешированного идентификатора устройства» для тестирования Admob, но возврат другого идентификатора
Я следую этой реализации для Google Mobile Ads, используя SDK платформы обмена сообщениями пользователей и пытаюсь указать географию, чтобы я находился за пределами ЕЭЗ.
Я следую их руководству и использую их код здесь:
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable error){
//do stuff
}];
Я использую этот ответ на StackOverflow, чтобы получить свой хешированный идентификатор, который предлагает использовать этот метод:
#import <AdSupport/ASIdentifierManager.h>
#include <CommonCrypto/CommonDigest.h>
- (NSString *) admobDeviceID {
NSUUID* adid = [[ASIdentifierManager sharedManager] advertisingIdentifier];
const char *cStr = [adid.UUIDString UTF8String];
unsigned char digest[16];
CC_MD5( cStr, strlen(cStr), digest );
NSMutableString *output = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2];
for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
И установите его так:
debugSettings.testDeviceIdentifiers = @[ myTestDeviceHashFromAdmobDeviceIDMethod ];
Вывод консоли для вышеуказанного метода имеет следующий формат:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Однако вывод консоли по-прежнему говорит мне:<UMP SDK> To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[ @"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" ];
Зачем нам нужен хешированный идентификатор из ответа, указанного выше, если SDK по-прежнему говорит мне использовать другой идентификатор тестового устройства? Какой из них правильно использовать? Или я неправильно устанавливаю? Спасибо.