728x90
반응형

저번에 해결이 된 줄 알고 좋아했지만 곧 정책 위반으로 삭제가 됐다.

 

이번엔 확실히 해결하기 위해 더 가열차게 검색을 하여 찾아봤다.

 

React Native의 라이프 사이클을 다시 한번 확인했다.

 

 

앱이 로딩되는 중에 광고를 가져오면 안된다고 하여 어느 시점에 해야하는지 살펴봤다.

 

기존에는 constructor에서 호출하고 있었고 setTimeout으로 했지만 

 

아직 앱이 로딩 중이기에 구글에서 위반이라고 판단한 것 같았다.

 

그래서 확실하게 componentDidMount에서 호출하여 광고를 가져오도록 했다.

 

그리고 앱 시작하고 스플래시 화면 다음에 전면 광고가 나오도록 했는데

 

광고를 가져오는 시점이 변경되어 광고가 나오는 시점도 변경했다.

 

2주 정도 지난 현재까지 위반 메일이 오지않는 것으로 봐서 해결된 것 같다.

 

참고 문헌

  1. https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/

  2. https://support.google.com/admob/answer/6201362?ref_topic=2745287

반응형
728x90
반응형

또 앱이 삭제됐다.

 

이번에도 "앱, 타사 광고, 기기 기능 방해 정책 위반 처리"로 인해 삭제됐다.

 

그래서 앱 시작과 동시에 전면 광고가 나오지 않도록 했다.

 

대신에 아이콘은 클릭했을 때 전면 광고가 노출되도록 변경해서 제출했다.

 

제출하고 하루가 지나서 앱이 다시 정상적으로 플레이 스토어에 노출된다는 메일을 받았다.

 

그러나 몇시간 뒤 다시 같은 이유로 삭제됐다.

 

도대체 무엇이 문제인가 싶어 찬찬히 코드와 광고가 나오는 타이밍 등을 살펴보려 했다.

 

광고가 나오는 타이밍을 보려고 테스트 광고 ID로 해봤지만 삭제돼서 그런지 광고가 나오지 않았다.

 

그러다 스택 오버플로우에서 이 이슈를 해결할 수 있을 것 같은 방법을 찾았다.

 

해당 내용에서 이 이슈가 발생하는 이유는 앱이 백그라운드에 있을 때

 

(광고를 보여주지 않아도) 광고 소재를 호출하는 것만으로도 위반으로 판단하기 때문이라고 했다

 

앱에서 전면 광고를 미리 불러오는데 constructor에서 수행하고 있었다.

 

디버깅을 해보니 앱이 백그라운드로 넘어갔을 때도 호출하는 것을 확인할 수 있었다.

 

그래서 AppState 확인하는 부분에서 처리해보려고 했는데

 

background에서 active일 때는 잘 됐지만 active 상태가 유지되는 경우엔 동작하지 않았다.

(상태가 변경돼야 동작하기 때문)

 

어떻게 하면 두 상황 모두 가능하게 할 수 있을까 하다가setTimeout으로 쉽게 해결할 수 있었다.

 

일정 시간 동안 앱이 active면 불러오고 시작과 동시에 백그라운드로 넘어갔을 때는 불러오지 않는 것을 확인했다.

constructor() {
  setTimeout(() => {
    if (this.state.appState) {
      interstitial.load();
    }
  }, SLEEP_TIME);
}

_handleAppStateChange = nextAppState => {
  if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
    interstitial.load();
  }
  this.setState({ appState: nextAppState });
};

이번에는 꼭 제발 성공하기를 빌었고 이틀 정도가 지나 다시 정상적으로 등록됐다는 메일을 받을 수 있었다.

 

참고 문헌

  1. https://stackoverflow.com/questions/57251947/uncaught-exception-thrown-by-finalizer-all-webview-methods-must-be-called-on-th/57308639#57308639

반응형
728x90
반응형

갑작스럽게 앱이 삭제됐다.

"앱, 타사 광고, 기기 기능 방해 정책 위반 처리" 으로 검색을 해봤다.

 

여러 가지 많은 결과들이 있었지만 같은 경우가 잘 없어 어떻게 대처해야할지 몰랐다.

 

메타 데이타나 정책 설정 문제인듯 싶어 관련된 것들을 수정했다.

 

하지만 거부됐다는 메일을 다시 받았다.

 

앱 버전을 올려서 제출하면 될 수도 있다는 말이 있어 해봤지만 역시 거절당했다.

 

예전에 개인정보처리방침으로 삭제된 적이 있어 이를 다시 업데이트해봤지만 소용없었다.

 

그래서 문서를 다시 읽어 봤다.

혹시나 하는 생각에 전면 광고를 앱이 실행 중일 때만 나오도록 수정하려고 했다.

 

이를 위해서 앱이 활성 상태인지를 확인하는 것이 필요했는데 다행히 React Native에서 지원했다.

 

AppState를 사용해서 쉽게 현재 상태가 active인지 background인지를 알 수 있어

 

이를 사용해 백그라운드로 변경되는 경우 광고가 나오지 않도록 수정해서 제출했다.

is live in the store.

다행히 다시 정상적으로 등록됐다는 메일을 받았다.

 

참고 문헌

  1. https://stackoverflow.com/questions/54981212/react-native-how-to-detect-home-button-is-pressed-or-not

  2. https://reactnative.dev/docs/appstate

반응형

+ Recent posts