2014-09-01 70 views
3

我想在我的android应用程序中实现Google Tag Manager和Google Analytics。如何在Android应用程序中实现Google TagManager

我对analytics和google tagmanager完全陌生。我正在关注这些链接 link1,link2 通过这个链接我了解了Google跟踪代码管理器和Google Analytics的一些基本概念。

我做的是:
我创建了Google TagManager帐户和Google Analytics帐户。 在TagManager和Google Analytics帐户中创建了所有基本步骤。 此外,我还将libGoogleAnalyticsServices此文件添加到项目文件资产中的项目库和gtm容器中。

现在我需要的是。我需要在我的应用程序中添加的所有代码是什么?并且我需要添加这个。我创造了一个SRC分离式的java文件,我添加了这些代码

import com.google.android.gms.analytics.Logger; 
import com.google.android.gms.analytics.Tracker; 
import com.google.android.gms.analytics.GoogleAnalytics; 

import android.app.Application; 

import java.util.HashMap; 

public class AnalyticsSampleApp extends Application { 

// The following line should be changed to include the correct property id. 
private static final String PROPERTY_ID = "UA-XXXXX-Y"; 

public static int GENERAL_TRACKER = 0; 

public enum TrackerName { 
    APP_TRACKER, // Tracker used only in this app. 
    GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking. 
    ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company. 
} 

HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); 

public AnalyticsSampleApp() { 
    super(); 
} 

synchronized Tracker getTracker(TrackerName trackerId) { 
    if (!mTrackers.containsKey(trackerId)) { 

     GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
     analytics.getLogger().setLogLevel(Logger.LogLevel.VERBOSE); 
     Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID) 
       : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(
         R.xml.global_tracker) 
         : analytics.newTracker(R.xml.ecommerce_tracker); 
     t.enableAdvertisingIdCollection(true); 
     mTrackers.put(trackerId, t); 
    } 
    return mTrackers.get(trackerId); 
} 
} 

只要告诉我什么是剩余的代码我需要补充,我需要在这个改变什么。如果我的问题不能理解,请在下面评论。让我再问一遍。

非常感谢。

回答

4

我的建议是只使用GTM,并且从GTM帐户您可以链接Google Analytics和其他可以帮助您的服务。

Here是一个很好的指导,可以帮助你。

在几句话,你需要:

  1. 包括谷歌Play服务,因为一个图书馆项目
  2. 在您的应用程序添加一个默认容器中的RE /排文件夹下。这个容器,你将能够将其从GTM帐户导出设置之后您的宏和标签
  3. 清单档案中的添加本线下应用:

    <meta-data android:name="com.google.android.gms.version" 
         android:value="@integer/google_play_services_version" /> 
    
  4. 公开赛在初始画面的容器(初始屏幕例如)

    TagManager tagManager = TagManager.getInstance(this); 
        tagManager.setVerboseLoggingEnabled(true); 
    PendingResult<ContainerHolder> pending = 
         tagManager.loadContainerPreferNonDefault(CONTAINER_ID, 
         R.raw.default_container); 
    pending.setResultCallback(new ResultCallback<ContainerHolder>() { 
        @Override 
        public void onResult(ContainerHolder containerHolder) { 
         ContainerHolderSingleton.setContainerHolder(containerHolder); 
         containerLoaded = true; 
         startMainActivity(); 
        } 
    }, 2, TimeUnit.SECONDS); 
    
  5. 创建类ContainerHolderSingleton

    public class ContainerHolderSingleton { 
    private static ContainerHolder containerHolder; 
    
    private ContainerHolderSingleton() { 
    } 
    
    public static ContainerHolder getContainerHolder() { 
        return containerHolder; 
    } 
    
    public static void setContainerHolder(ContainerHolder c) { 
        containerHolder = c; 
    } 
    

    }

  6. 创建另一个类GtmUtils

公共类GtmUtils {

private GtmUtils() { 
} 

public static void pushOpenScreenEvent(Context context, String screenName) { 
    DataLayer dataLayer = TagManager.getInstance(context).getDataLayer(); 
    dataLayer.pushEvent("OpenScreen", DataLayer.mapOf("screenName", screenName)); 
} 

}

  • 最后从任何活动/片段你想发送一个事件,你可以做这样的事情:
  • GtmUtils.pushOpenScreenEvent(this,“login”);

    就是这样。您只需设置您的GTM帐户并将其与Google Analytics等相关联即可。

    你也可以找到here的官方文档和一些样品。

    首页它会有所帮助。

    相关问题