— 広告ID(IDFA)を送信する

Usage

KARTE SDKによる広告ID(IDFA)の送信を有効にしたい場合は、本記事を参考に実装をしてください。

なおSDKには広告IDを直接取得する機能はありません。
そのためアプリケーション側に広告IDを取得する処理を実装する必要があります。

🚧

広告IDの送信について

広告IDの送信にはいくつか注意事項がございます。
送信処理を実装する前に、まず こちら の記事をご覧ください。

事前準備

AdSupport.framework をビルドターゲットに追加してください。

実装

  1. Delegateを実装する
    SDK が提供する IDFADelegate を実装します。
    ここでは例として AppDelegate に実装する形で進めます。
import AdSupport
import KarteCore
import AppTrackingTransparency

...

extension AppDelegate: IDFADelegate {
  var isAdvertisingTrackingEnabled: Bool {
    if #available(iOS 14, *) {
        return ATTrackingManager.trackingAuthorizationStatus == .authorized
    } else {
        return ASIdentifierManager.shared().isAdvertisingTrackingEnabled
    }
  }
    
  var advertisingIdentifierString: String? {
    return ASIdentifierManager.shared().advertisingIdentifier.uuidString
  }
}
#import "AppDelegate.h"
#import <AdSupport/AdSupport.h>
#import <AppTrackingTransparency/AppTrackingTransparency.h>
@import KarteCore;

@interface AppDelegate () <KRTIDFADelegate>
@end

@implementation AppDelegate
 
...
  
- (BOOL)isAdvertisingTrackingEnabled {
    if (@available(iOS 14.0, *)) {
        return ATTrackingManager.trackingAuthorizationStatus == ATTrackingManagerAuthorizationStatusAuthorized;
    } else {
        return [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled];
    }
}

- (NSString *)advertisingIdentifierString {
    return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
}

@end
  1. SDKの初期化を行う
    初期化オプションを指定してSDKの初期化を行います。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  let configuration = Configuration { (configuration) in
    configuration.idfaDelegate = self
  }
  KarteApp.setup(appKey: "アプリケーションキー", configuration: configuration)
  ...
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  KRTConfiguration *configuration = [KRTConfiguration configWithConfigurator:^(KRTConfiguration * _Nonnull configuration) {
    [configuration setIdfaDelegate:self];
  }];
  [KRTApp setupWithAppKey:@"アプリケーションキー" configuration:configuration];
  ...
}

確認

任意のイベントの app_info.system_info.idfa フィールドに値が含まれていれば、正しく実装されております。

詳細な確認方法については、イベント画面について をご覧ください。