네트워크별 API 사용
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
미디에이션 네트워크는 추가 광고 맞춤설정을 허용하는 API를 자체 Android 및 iOS SDK에 제공할 수 있습니다. 플랫폼 채널을 사용하여 Dart 코드에서 이러한 API를 호출할 수 있습니다.
다음 샘플은 Dart에서 AppLovin의 Android 및 iOS SDK에서 개인 정보 보호 API를 호출하는 방법을 보여줍니다.
Dart에서 메서드 채널 만들기
Dart 코드에서 메서드 채널을 만듭니다.
/// Wraps a method channel that makes calls to AppLovin privacy APIs.
class MyMethodChannel {
final MethodChannel _methodChannel =
MethodChannel('com.example.mediationexample/mediation-channel');
/// Sets whether the user is age restricted in AppLovin.
Future<void> setAppLovinIsAgeRestrictedUser(bool isAgeRestricted) async {
return _methodChannel.invokeMethod(
'setIsAgeRestrictedUser',
{
'isAgeRestricted': isAgeRestricted,
},
);
}
/// Sets whether we have user consent for the user in AppLovin.
Future<void> setHasUserConsent(bool hasUserConsent) async {
return _methodChannel.invokeMethod(
'setHasUserConsent',
{
'hasUserConsent': hasUserConsent,
},
);
}
}
Android 코드 수정
Android에서 AppLovin SDK에 API 호출을 실행하도록 메서드 채널을 설정합니다.
public class MainActivity extends FlutterActivity {
private static final String CHANNEL_NAME =
"com.example.mediationexample/mediation-channel";
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
super.configureFlutterEngine(flutterEngine);
// Set up a method channel for calling APIs in the AppLovin SDK.
new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
.setMethodCallHandler(
(call, result) -> {
switch (call.method) {
case "setIsAgeRestrictedUser":
AppLovinPrivacySettings.setIsAgeRestrictedUser(call.argument("isAgeRestricted"), context);
result.success(null);
break;
case "setHasUserConsent":
AppLovinPrivacySettings.setHasUserConsent(call.argument("hasUserConsent"), context);
result.success(null);
break;
default:
result.notImplemented();
break;
}
}
);
}
}
iOS 코드 수정
iOS에서 AppLovin SDK를 호출하는 API를 만들 메서드 채널을 설정합니다.
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GeneratedPluginRegistrant registerWithRegistry:self];
// Set up a method channel for calling methods in 3P SDKs.
FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController;
FlutterMethodChannel* methodChannel = [FlutterMethodChannel
methodChannelWithName:@"com.example.mediationexample/mediation-channel"
binaryMessenger:controller.binaryMessenger];
[methodChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {
if ([call.method isEqualToString:@"setIsAgeRestrictedUser"]) {
[ALPrivacySettings setIsAgeRestrictedUser:call.arguments[@"isAgeRestricted"]];
result(nil);
} else if ([call.method isEqualToString:@"setHasUserConsent"]) {
[ALPrivacySettings setHasUserConsent:call.arguments[@"hasUserConsent"]];
result(nil);
} else {
result(FlutterMethodNotImplemented);
}
}];
}
@end
Dart에서 MethodChannel 사용
이제 MyMethodChannel
를 사용하여 Dart에서 AppLovin 개인 정보 보호 API를 호출할 수 있습니다.
/// An example widget for the home page of your app.
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
// Keep a reference to your MyMethodChannel.
static MyMethodChannel platform = MyMethodChannel();
@override
void initState() {
super.initState();
_updateAppLovinSettingsAndLoadAd();
}
Future<void> _updateAppLovinSettingsAndLoadAd() async {
// Update the AppLovin settings before loading an ad.
await platform.setAppLovinIsAgeRestrictedUser(true);
await platform.setHasUserConsent(false);
_loadAd();
}
void _loadAd() {
// TODO: Load an ad.
};
@override
Widget build(BuildContext context) {
// TODO: Build your widget.
}
}
다른 네트워크에서 지원하는 API에 관한 자세한 내용은 Android 및 iOS 문서를 참고하세요.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-31(UTC)
[null,null,["최종 업데이트: 2025-08-31(UTC)"],[[["\u003cp\u003eMediation networks sometimes offer custom ad features through their Android and iOS SDKs.\u003c/p\u003e\n"],["\u003cp\u003eAccess these features in your Flutter app using platform channels to communicate with native code.\u003c/p\u003e\n"],["\u003cp\u003eThe provided example demonstrates calling AppLovin's privacy APIs for age restrictions and user consent.\u003c/p\u003e\n"],["\u003cp\u003eSet up method channels in your Dart, Android, and iOS code to enable this communication.\u003c/p\u003e\n"],["\u003cp\u003eRefer to individual mediation network documentation for specific API details and implementation.\u003c/p\u003e\n"]]],[],null,["# Use network specific APIs\n\nMediation networks may provide APIs in their own Android and iOS SDKs that allow\nfor further ads customization. You can call these APIs from dart code by using a\n[platform channel](https://flutter.dev/docs/development/platform-integration/platform-channels).\n\nThe following sample shows you how to call privacy APIs in AppLovin's\n[Android](/ad-manager/mobile-ads-sdk/android/mediation/applovin#eu_consent_and_gdpr) and\n[iOS](/ad-manager/mobile-ads-sdk/ios/mediation/applovin#eu_consent_and_gdpr) SDKs from Dart.\n\nCreate a method channel in dart\n-------------------------------\n\nIn your dart code, create a method channel: \n\n /// Wraps a method channel that makes calls to AppLovin privacy APIs.\n class MyMethodChannel {\n final MethodChannel _methodChannel =\n MethodChannel('com.example.mediationexample/mediation-channel');\n\n /// Sets whether the user is age restricted in AppLovin.\n Future\u003cvoid\u003e setAppLovinIsAgeRestrictedUser(bool isAgeRestricted) async {\n return _methodChannel.invokeMethod(\n 'setIsAgeRestrictedUser',\n {\n 'isAgeRestricted': isAgeRestricted,\n },\n );\n }\n\n /// Sets whether we have user consent for the user in AppLovin.\n Future\u003cvoid\u003e setHasUserConsent(bool hasUserConsent) async {\n return _methodChannel.invokeMethod(\n 'setHasUserConsent',\n {\n 'hasUserConsent': hasUserConsent,\n },\n );\n }\n }\n\nModify your Android code\n------------------------\n\nSet up a method channel to make API calls to the AppLovin SDK in Android: \n\n public class MainActivity extends FlutterActivity {\n private static final String CHANNEL_NAME =\n \"com.example.mediationexample/mediation-channel\";\n\n @Override\n public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {\n super.configureFlutterEngine(flutterEngine);\n\n // Set up a method channel for calling APIs in the AppLovin SDK.\n new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)\n .setMethodCallHandler(\n (call, result) -\u003e {\n switch (call.method) {\n case \"setIsAgeRestrictedUser\":\n AppLovinPrivacySettings.setIsAgeRestrictedUser(call.argument(\"isAgeRestricted\"), context);\n result.success(null);\n break;\n case \"setHasUserConsent\":\n AppLovinPrivacySettings.setHasUserConsent(call.argument(\"hasUserConsent\"), context);\n result.success(null);\n break;\n default:\n result.notImplemented();\n break;\n }\n }\n );\n }\n }\n\nModify your iOS code\n--------------------\n\nSet up a method channel to make API calls to the AppLovin SDK in iOS: \n\n @implementation AppDelegate\n\n - (BOOL)application:(UIApplication *)application\n didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n [GeneratedPluginRegistrant registerWithRegistry:self];\n\n // Set up a method channel for calling methods in 3P SDKs.\n FlutterViewController* controller = (FlutterViewController*)self.window.rootViewController;\n\n FlutterMethodChannel* methodChannel = [FlutterMethodChannel\n methodChannelWithName:@\"com.example.mediationexample/mediation-channel\"\n binaryMessenger:controller.binaryMessenger];\n [methodChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) {\n if ([call.method isEqualToString:@\"setIsAgeRestrictedUser\"]) {\n [ALPrivacySettings setIsAgeRestrictedUser:call.arguments[@\"isAgeRestricted\"]];\n result(nil);\n } else if ([call.method isEqualToString:@\"setHasUserConsent\"]) {\n [ALPrivacySettings setHasUserConsent:call.arguments[@\"hasUserConsent\"]];\n result(nil);\n } else {\n result(FlutterMethodNotImplemented);\n }\n }];\n }\n @end\n\nUse your MethodChannel in Dart\n------------------------------\n\nNow you can use your `MyMethodChannel` to call AppLovin privacy APIs from Dart: \n\n /// An example widget for the home page of your app.\n class HomePage extends StatefulWidget {\n @override\n _HomePageState createState() =\u003e _HomePageState();\n }\n\n class _HomePageState extends State\u003cHomePage\u003e {\n // Keep a reference to your MyMethodChannel.\n static MyMethodChannel platform = MyMethodChannel();\n @override\n void initState() {\n super.initState();\n\n _updateAppLovinSettingsAndLoadAd();\n }\n Future\\\u003cvoid\\\u003e _updateAppLovinSettingsAndLoadAd() async {\n // Update the AppLovin settings before loading an ad.\n await platform.setAppLovinIsAgeRestrictedUser(true);\n await platform.setHasUserConsent(false);\n _loadAd();\n }\n void _loadAd() {\n // TODO: Load an ad.\n };\n\n @override\n Widget build(BuildContext context) {\n // TODO: Build your widget.\n }\n }\n\nMore details on the APIs supported by other networks can be found\nin the [Android](/ad-manager/mobile-ads-sdk/android/mediation/adcolony) and\n[iOS](/ad-manager/mobile-ads-sdk/ios/mediation/adcolony) documentation."]]