이 가이드에서는 Android용 Google 태그 관리자 SDK를 사용하여 일반적인 유니버설 애널리틱스 태그를 구현하는 방법을 설명합니다.
일반적인 유니버설 애널리틱스 (UA) 태그 구성
Google 태그 관리자를 사용하여 애플리케이션에 유니버설 애널리틱스를 구현하면 앱 바이너리를 다시 빌드하고 마켓에 다시 제출할 필요 없이 Google 애널리틱스 구현을 즉시 변경할 수 있습니다.
이 가이드에서는 유니버설 애널리틱스 태그 및 Android용 Google 태그 관리자 SDK를 사용하여 다음과 같은 작업을 수행하는 방법을 설명합니다.
앱 조회 전송 (화면 조회수)
앱에서 새 화면이 열릴 때마다 Google 애널리틱스로 앱 보기 (화면 조회수)를 전송하는 방법은 다음과 같습니다.
1. 화면 이름 매크로 만들기
다음 설정 값을 사용하여 새 화면 이름 매크로를 만듭니다.
매크로 이름 : screen name
매크로 유형 : Data Layer Variable
데이터 영역 변수 이름 : screenName
2. OpenScreenEvent 규칙 만들기
다음 구성 값을 사용하여 새 UA 앱 보기 (화면 조회수) 태그를 실행하는 데 사용할 새 규칙을 만듭니다.
규칙 이름 : OpenScreenEvent
조건: {{ event }}
이(가) openScreen
과(와) 같음
3. 앱 보기 (화면 조회수) UA 태그 만들기
다음 구성 값을 사용하여 새 UA 태그를 만듭니다.
태그 이름 : Screen Open
추적 ID : 속성 ID
태그 유형 : Universal Analytics (beta)
추적 유형 : AppView
기본 구성 - 앱 이름 : {{ app name }}
기본 구성 - 앱 버전 : {{ app version }}
기본 구성 - 화면 이름 : {{ screen name }}}
4. 이벤트 및 화면 이름을 데이터 영역으로 푸시하도록 코드 업데이트
다음 예와 같이 openScreen
이벤트 및 screenName
값을 데이터 영역에 푸시하는 코드를 앱에 추가합니다.
// Push an 'openScreen' event to the data layer. import com.google.tagmanager.DataLayer; import com.google.tagmanager.TagManager; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { private static final String SCREEN_NAME = "Home Screen"; private DataLayer mDataLayer; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(); } @Override public void onStart() { super.onStart(); mDataLayer = TagManager.getInstance(this).getDataLayer(); // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. mDataLayer.push(DataLayer.mapOf("event", "openScreen", // Event, Name of Open Screen Event. "screenName", SCREEN_NAME)); // Name of screen name field, Screen name value. } }
이벤트 전송
사용자가 앱의 UI 컨트롤 또는 콘텐츠와 상호작용할 때 Google 애널리틱스로 이벤트를 전송하는 방법은 다음과 같습니다.
다음 단계에서는 사용자가 동영상 재생을 시작할 때 시작되는 이벤트에서 어떻게 작동하는지 보여줍니다.
1. (선택사항) 이벤트 매크로 만들기
이벤트가 카테고리, 작업, 라벨 또는 값 필드에 데이터 영역 변수를 사용하는 경우 먼저 인터페이스에서 이러한 매크로를 구성해야 합니다. 이 예에서 동영상 재생 이벤트 태그는 재생된 동영상의 이름을 제공하는 데이터 영역 변수를 사용합니다.
이 동영상 이름을 구현하려면 다음 구성 값으로 새 매크로를 만듭니다.
매크로 이름 : video name
매크로 유형: Data Layer Variable
데이터 영역 변수 이름 : videoName
2. 이벤트 규칙 만들기
데이터 영역으로 푸시될 때 이벤트 태그가 실행되는 규칙을 만듭니다. 동영상 재생 예에서 새 규칙의 구성 값은 다음과 같습니다.
규칙 이름 : VideoPlayEvent
조건 : {{ event }}
이(가) videoPlay
과(와) 같음
UA 이벤트 태그 만들기
이전 단계에서 만든 규칙이 true
로 평가될 때 실행되는 UA 이벤트 태그를 만듭니다. 동영상 재생 예에서 이 태그는 다음과 같습니다.
태그 이름 : Video Play Event
추적 ID : 속성 ID
태그 유형 : Universal Analytics (beta)
추적 유형 : Event
이벤트 추적 매개변수 - 카테고리 : Video
이벤트 추적 매개변수 - 액션 : Play
이벤트 추적 매개변수 - 라벨 : {{ video name }}
기본 구성 - 앱 이름 : {{ app name }}
기본 구성 - 앱 버전 : {{ app version }}
기본 구성 - 앱 버전 : {{ app version }}
{{ screen name }}
이벤트를 데이터 영역으로 푸시하도록 코드 업데이트
마지막으로 사용자가 상호작용을 완료할 때 이벤트 값과 태그에 필요한 데이터 영역 변수를 모두 데이터 영역에 푸시하도록 코드를 업데이트합니다. 동영상 재생 예에서 이 코드는 다음과 같습니다.
// Push a 'videoPlay' event to the data layer. import com.google.tagmanager.DataLayer; import com.google.tagmanager.TagManager; public class VideoPlayer { // Called when a user initiates a video playback. public void onPlay(Video v) { DataLayer dataLayer = TagManager.getInstance(this).getDataLayer(); // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. dataLayer.push(DataLayer.mapOf("event", "videoPlay", // Event, Name of Open Screen Event. "videoName", v.getName()); // Additional data layer variables used by the event tag. play(v); } // Rest of implementation; }
전자상거래 전송
사용자가 인앱 구매를 완료할 때 거래 및 관련 항목을 Google 애널리틱스로 전송하는 방법은 다음과 같습니다.
1. 트랜잭션 규칙 만들기
다음으로 구성 값을 아래와 같이 새 규칙을 만듭니다.
규칙 이름 : TransactionCompleted
조건 : {{ event }}
이(가) transaction
과(와) 같음
2. UA 거래 태그 만들기
다음 값을 사용하여 UA 거래 태그를 만듭니다.
태그 이름 : Transaction Completed
추적 ID : 속성 ID
태그 유형 : Universal Analytics (beta)
추적 유형 : Transaction
기본 구성 - 앱 이름 : {{ app name }}
기본 구성 - 앱 버전 : {{ app version }}
기본 구성 - 화면 이름 : {{ screen name }}
3. 이벤트 및 트랜잭션 / 항목 데이터를 DataLayer에 푸시하도록 코드 업데이트
마지막으로 코드를 업데이트하여 거래 이벤트와 관련 거래 및 항목 데이터를 데이터 영역으로 푸시합니다. 거래와 항목 데이터에는 지원되는 데이터 영역 변수 이름을 사용해야 합니다.
// Called when a user completes a transaction. public void onPurchaseCompleted(Purchase p) { DataLayer dataLayer = TagManager.getInstance(this).getDataLayer(); // Put maps of item data into an array that will be pushed to the data layer. ArrayList<Map<String, String>> purchasedItems = new ArrayList<Map<String, String>>(); for (Item i : p.items) { HashMap<String, String> currentItem = new HashMap<String, String>(); currentItem.put("name", i.getProductName()); currentItem.put("sku", i.getProductSku()); currentItem.put("category", i.getProductCategory()); currentItem.put("price", i.getProductPrice()); currentItem.put("currency", "USD"); currentItem.put("quantity", i.getProductQty()); purchasedItems.add(currentItem); } // This call assumes the container has already been opened, otherwise events // pushed to the DataLayer will not fire tags in that container. dataLayer.push(DataLayer.mapOf("event", "transaction", // Event, Name of Transaction Event. "transactionId", p.getTransId(), // Additional fields required by the tag. "transactionTotal", p.getTotal(), "transactionAffiliation", "In-app Store", "transactionTax", p.getTax(), "transactionShipping", p.getShippingCost(), "transactionCurrency", "USD", "transactionProducts", purchasedItems)); // Since the data layer is persistent, you should reset fields to null after // you are done pushing the transaction. dataLayer.push(DataLayer.mapOf("transactionId", null, "transactionTotal", null, "transactionAffiliation", null, "transactionTax", null, "transactionShipping", null, "transactionCurrency", null, "transactionProducts", null)); }
지원되는 전자상거래 데이터 영역 변수
UA 거래 태그는 다음과 같은 데이터 영역 변수를 지원합니다.
거래 변수
변수 이름 | 설명 | 유형 | 필수 |
---|---|---|---|
transactionId |
고유 거래 식별자 | string | 지원됨 |
transactionAffiliation |
파트너 또는 상점 | string | No |
transactionTotal |
거래의 총 가치 | string | No |
transactionTax |
거래에 대한 과세액 | string | No |
transactionShipping |
거래 배송비 | string | No |
transactionCurrency |
거래 통화 | string | No |
transactionProducts |
거래에서 구매한 상품 목록 | 항목 변수가 포함된 지도의 배열입니다. | No |
항목 변수
변수 이름 | 설명 | 유형 | 필수 |
---|---|---|---|
name |
제품 이름 | string | 지원됨 |
sku |
제품 SKU | string | No |
category |
제품 카테고리 | string | No |
price |
상품 가격 | string | No |
currency |
price 의 통화 유형 |
string | No |
quantity |
상품 수량 | string | No |
리퍼러 기여 분석 설치
가능한 경우 AndroidManifest.xml
파일에 다음 서비스 및 수신기가 등록되면 설치 리퍼러 데이터가 Google 애널리틱스 조회 또는 Google Ads 리마케팅 픽셀 요청에 자동으로 포함됩니다.
<!-- Used for install referrer tracking --> <service android:name="com.google.tagmanager.InstallReferrerService" /> <receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver>