태그 관리자

공개 클래스 TagManager

Google 태그 관리자 (GTM)의 모바일 구현입니다. 활용 예시는 다음과 같습니다.

 Container container = TagManager.getInstance(context).openContainer(myContainerId);
 String value = container.getString("myKey");

 DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
 dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
컨테이너는 매크로, 태그 및 규칙의 모음입니다. 이 컨테이너는 GTM 애플리케이션 내에서 생성되며 컨테이너 ID가 할당됩니다. 이 API 내에서 사용되는 컨테이너 ID입니다.

Container 클래스는 키에 지정된 값을 가져오는 메서드를 제공합니다. getBoolean(String), getDouble(String), getLong(String), getString(String) 루틴은 컨테이너와 연결된 규칙에 따라 값 컬렉션 매크로 키의 현재 값을 반환합니다.

예를 들어 컨테이너에 값이 32이고 사용 설정 규칙이 Language인 키 speed이 있는 값 컬렉션 매크로가 있고, 값이 45인 키 speed를 가진 또 다른 값 컬렉션 매크로가 있고 사용 설정 규칙이 Language가 'en'이 아닌 경우

 container.getLong("speed")
를 호출하면 기기의 현재 언어가 영어이면 32를 반환하고 그렇지 않으면 45를 반환합니다.

데이터 레이어는 애플리케이션에 대한 일반 정보가 포함된 지도입니다. DataLayer 클래스는 데이터 영역에서 데이터를 푸시하고 가져오는 메서드를 제공합니다. event 키를 데이터 영역에 푸시하면 이 이벤트와 일치하는 태그가 실행됩니다.

컨테이너의 초기 버전이 애플리케이션과 함께 번들로 제공됩니다. 이름은 tagmanager/containerId인 애셋으로 배치되어야 합니다. 여기서 containerId는 이 API 내에서 사용할 컨테이너 ID와 동일합니다. openContainer(String, Container.Callback)를 호출하면 컨테이너가 번들 규칙/매크로와 함께 반환됩니다. UI에서 컨테이너를 만들고 다운로드 버튼을 사용하여 다운로드합니다.

UI에서 컨테이너를 수정하고 새 버전을 게시할 수 있습니다. 이 경우 다음번에 모바일 앱이 네트워크에서 컨테이너를 새로고침할 때 (현재 12시간마다) 새 버전을 가져옵니다. get... 루틴 중 하나를 호출하면 가장 최근 규칙을 사용하여 값이 계산됩니다.

다운로드한 컨테이너는 로컬에 저장됩니다. openContainer(String, Container.Callback)를 호출하면 먼저 기본 컨테이너를 로드한 다음 저장된 컨테이너를 비동기식으로 로드합니다. 파일이 없거나 12시간이 지난 경우에는 네트워크에서 최신 버전을 가져오려고 시도합니다. Container.CallbackopenContainer(String, Container.Callback)에 전달하면 이러한 비동기 로드의 상태를 확인할 수 있습니다.

기본이 아닌 컨테이너를 사용할 수 있거나 최신 컨테이너를 사용할 수 있을 때까지 차단해야 하는 경우도 있습니다. ContainerOpener는 도움이 되는 유틸리티 클래스입니다.

컨테이너 작업이 끝나면 close()를 호출합니다.

중첩된 클래스 요약

인터페이스 TagManager.Logger 오류/경고/정보/디버그/상세 로깅을 위한 간단한 인터페이스
enum TagManager.RefreshMode 컨테이너를 새로고침하는 모드입니다. 

공개 메서드 요약

컨테이너
getContainer(문자열 containerId)
관련 정보
DataLayer
정적 TagManager
getInstance(컨텍스트 컨텍스트)
Logger
TagManager.RefreshMode
컨테이너
openContainer(문자열 containerId, Container.Callback 콜백)
void
setLogger(로거 logger)
void

공개 메서드

공개 컨테이너 getContainer (String containerId)

containerId와 연결된 열린 컨테이너를 반환합니다. 컨테이너가 아직 열려 있지 않으면 null를 반환합니다.

공개 컨텍스트 getContext ()

이 객체와 연결된 저장된 컨텍스트를 반환합니다.

공개 DataLayer getDataLayer ()

태그 관리자에서 사용하는 데이터 영역 객체를 반환합니다.

공개 정적 TagManager getInstance (컨텍스트 컨텍스트)

TagManager 클래스의 싱글톤 인스턴스를 가져와 필요한 경우 만듭니다.

공개 로거 getLogger ()

태그 관리자에서 사용 중인 로거를 반환합니다.

공개 TagManager.RefreshMode getRefreshMode ()

모든 컨테이너에 사용되는 새로고침 모드를 반환합니다.

공개 컨테이너 openContainer (String containerId, Container.Callback containerId)

컨테이너를 반환합니다. 컨테이너에 다양한 상황이 발생하면 콜백이 호출됩니다. 최소한 openContainer는 컨테이너의 저장된 버전을 로드하려고 시도합니다. 저장된 버전이 없거나 저장된 버전이 오래된 경우 네트워크에서 로드하려고 시도합니다.

일반적으로 반환된 컨테이너는 비어 있지만 별도의 스레드에서 로드가 발생하므로 반환된 컨테이너는 반환되기 전이나 반환된 후에 새로고침되거나 새로고침되지 않을 수 있습니다 (예: 컨테이너의 전체 기간 동안 네트워크 연결이 없는 경우).

지정된 containerId에 대해 openContainer를 두 번째로 호출하면 예외가 발생합니다.

매개변수
containerId 열 컨테이너의 ID
콜백 로드 프로세스 중 다양한 메서드가 호출되는 객체입니다. 메서드는 다른 스레드에서 호출될 수 있습니다. 또한 openContainer가 반환되기 전에 호출될 수도 있습니다.

공개 void setLogger (로거 logger)

태그 관리자에서 사용하는 기존 로거를 대체합니다.

공개 void setRefreshMode (TagManager.RefreshMode 모드)

모든 컨테이너에 사용되는 새로고침 모드를 설정합니다.