Skip to content

웹앱 관련

jinsang edited this page Aug 29, 2023 · 2 revisions

구성


ACE WEB SDK 초기화

  • Webview를 이용해 ACE WEB SDK와 연동하기 위해서는 AAID(The Android Advertising ID)/IDFA(The Identifier for Advertisers)가 필요합니다.
  • 아래 예제에서 AAID/IDFA를 얻기 위해 @sparkfabrik/react-native-idfa-aaid 를 사용했습니다.
  • ACE WEB SDK 초기화에 필요한 몇가지 정보들은 SDK가 제공하는 API를 사용해 얻을 수 있습니다.
  • 다음은 네이티브 코드에서 필요한 정보를 SDK로 얻어 ACE WEB SDK 를 초기화하는 예제입니다.
import ReactNativeIdfaAaid, {
  AdvertisingInfoResponse,
} from '@sparkfabrik/react-native-idfa-aaid'
import { ACS } from 'acecounter.sdk.react-native'

type WebViewProps = {
  uri: string
  method?: string
}

export default function WebviewForAPI() {
  const defaultWebviewURL = useMemo(() => {
    return { uri: 'https://www.acecounter.com', method: 'get' }
  }, [])
  const [url, setUrl] = useState<WebViewProps>(defaultWebviewURL)
  const [isAdTrackingEnabled, setIsAdTrackingEnabled] = useState<boolean>(false)
  const [idfa, setIdfa] = useState<string | null>()
  const refForWebview = useRef<WebView | null>(null)

  useEffect(() => {
    ReactNativeIdfaAaid.getAdvertisingInfo()
      .then((res: AdvertisingInfoResponse) => {
        setIsAdTrackingEnabled(!res.isAdTrackingLimited)
        return !res.isAdTrackingLimited ? setIdfa(res.id) : setIdfa(null)
      })
      .catch((err) => {
        console.log(err)
        setIsAdTrackingEnabled(false)
        return setIdfa(null)
      })
  }, [])

  const injectionJavascriptToWebview = useCallback(() => {
    refForWebview.current?.injectJavaScript(
      `_AceAPP('${ACS.getKey()}', '${ACS.getDevice()}', '${ACS.getTS()}', '${idfa}', ${isAdTrackingEnabled});`
    )
  }, [idfa])

  return (
    <SafeAreaView>
      <View>
        <View>
          <TouchableView notification onPress={injectionJavascriptToWebview}>
            <Text>Injection javascript to webview</Text>
          </TouchableView>
        </View>
        <WebView ref={refForWebview} originWhitelist={['*']} source={url} />
      </View>
    </SafeAreaView>
  )
}

중요

  • _AceAPP 자바스크립트 함수에 대한 상세한 설명은 WEB SDK 가이드를 참조하세요.
  • 광고 식별자 또는 앱 추적이 비활성화/제한 되더라도 로그 수집에 영향은 없습니다.
    • 사용자 거부시 광고 식별자에 대해 00000000-0000-0000-0000-000000000000 으로 대체 됩니다.
  • 사용하시는 오픈소스 도구의 광고 추적 허용 여부 API 문서 확인바랍니다.
    • 활성화 true/false 또는 제한 true/false 와 같이 알려줄 수도 있습니다.
    • _AceAPP 의 파라미터 isAdTrackingEnabled광고 추적 허용 true/false 입니다.
  • 웹뷰에서 사용하는 도메인 주소서비스 정보수정으로 추가하셔야합니다.
    • 에이스카운터 통계 화면 > 서비스관리(오른쪽 상단) > 서비스정보수정 > 웹뷰에서 접속할 도메인주소를 애플리케이션 ID에 추가
    • http, https 를 뺀 도메인 주소만 입력합니다.
      • 예시
        • www.acecounter.com
        • vklog.loginside.co.kr
    • 도메인 주소가 여러개인경우 공백 없이 ,로 구분해 추가합니다.
      • 예시
        • www.acecounter.com,vklog.loginside.co.kr
    • 에이스카운터 WEB SDK 가 해당 웹사이트에 설치가 되어 있어야만 합니다.

webview_add_domain_aos

webview_add_domain_ios


API 가이드

getKey

  • SDK 초기화시 사용자가 입력한 GCODE

메서드

public static getKey(): string;

getDevice

  • 단말기 명

메서드

public static getDevice(): string;

getTS

  • SDK 내부 설정값

메서드

public static getTS(): string;