Apple は、IDFA にアクセスするための App Tracking Transparency 認証リクエストを表示することをアプリに要求しています (パーソナライズされた広告を使用するか、パーソナライズされていない広告を使用するかはユーザーに選択を委ねます)。
開発環境(Expo Bare)
- “typescript”: “^5.2.2”
- “expo”: “~49.0.13”,
- “react”: “18.2.0”,
- “react-native”: “0.72.6”,
- “expo-router”: “^2.0.0”,
- “react-native-paper”: “^5.10.6”,
- “react-native-google-mobile-ads”: “^12.3.0”,
- “expo-tracking-transparency“: “~3.1.0”,
セットアップ
パッケージを設置する
$ npx expo install expo-tracking-transparency $ npx pod-install
iOS設定(Expo Bare用)
// ios/<proejct-name>/Info.plist ... <key>NSUserTrackingUsageDescription</key> <string>Your custom usage description string here.</string> ...
Android設定(Expo Bare用)
// android/app/src/main/AndroidManifest.xml ... <!-- Added permissions --> <uses-permission android:name="com.google.android.gms.permission.AD_ID"/> ...
実装する
import React, { useEffect } from 'react';
import { Text, StyleSheet, View } from 'react-native';
import { requestTrackingPermissionsAsync } from 'expo-tracking-transparency';
export default function App() {
useEffect(() => {
(async () => {
const { status } = await requestTrackingPermissionsAsync();
if (status === 'granted') {
console.log('Yay! I have user permission to track data');
}
})();
}, []);
return (
<View style={styles.container}>
<Text>Tracking Transparency Module Example</Text>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
},
});
iOS 17.4 & iPhone 15 Proでは、requestTrackingPermissionsAsync() の実行タイミングはアプリが アクティブ状態 になってからではないとランダムでAppTrackingTransparencyのプロンプトが表示されないことがあります! 24/5/25(月)追記




コメント