반응형
구글 admob 을 적용시켜서 테스트를 하다 보면
Failed to load ad: 0 라는 메세지를 받게 된다.
원인은 안드로이드/iOS 폰에서 직접 테스트 할 때 정식으로 배포된 앱이 아닌 경우 광고를 불러오지 못해서다.
이때 test로 사용할 장치 device id 를 admob 에 미리 넣어놓으면 해당 id를 가진 장치에서는 test ad가 뜬다.
Java / Kotlin
device id 를 얻는 방법은 java 와 kotlin 관련 문서가 많다.
- device id - Java, Kotlin
developer.android.com/training/articles/user-data-ids?hl=ko
해당 장치에서 앱을 실행하고 logCat 에서 adRequest 를 검색해보면 아래처럼 나온다고 한다. 여기서 보이는 Device ID를 복사해서 쓰면 된다.
12-29 11:18:25.615: I/Ads(2132): To get test ads on this device, call adRequest.addTestDevice("D9XXXXXXXXXXXXXXXXXXXXXXXXXXXXX");".
Flutter
Flutter / 안드로이드 스튜디오 사용중인데 logCat 에서 잘 안보여서 다른 방법을 찾아봤다.
device_id 를 얻어오는 많은 plugin 이 있는데 그중 하나를 골라서 사용하면 된다.
아래 plugin을 사용해봤다.
플러그인 설치
패키지를 pubspec.yaml 파일에 넣어주고 pubget 을 해준다.
dependencies:
device_id: ^0.2.0
사용을 원하는 파일에 import
import 'package:device_id/device_id.dart';
예제 코드
아래와 같이 DeviceId.getID 로 deviceID를 얻어와서 사용하면 된다.
import 'package:flutter/material.dart';
import 'package:device_id/device_id.dart';
void main() => runApp(new MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
String deviceID;
void getDeviceID() async {
String deviceId = await DeviceId.getID;
deviceID = 'Device ID is $deviceId';
print('Device ID is $deviceId');
}
@override
Widget build(BuildContext context) {
getDeviceID();
return MaterialApp(
home: Scaffold(
body: Center(
child: Text('$deviceID'),
),
),
);
}
}
반응형
'Flutter 프로그래밍 > 플러그인 사용' 카테고리의 다른 글
앱스토어 심사중 AppTrackingTransparency 문제 발생 (1) | 2020.11.07 |
---|---|
Flutter 권한 관리 - permission handler (0) | 2020.10.31 |