2014-10-28 43 views
0

我对这个Google跟踪代码管理器的新东西很陌生,而且我的耳朵纠结在试图测试它。 以下是我所做的:使用Google跟踪代码管理器和dataLayer进行Android开发

  1. 创建一个GTM帐户;
  2. 创建一个容器;
  3. 创建自定义图片标签;
  4. 将规则始终添加到自定义图像标签;

现在,这里是我的代码:

package com.google.android.tagmanager.examples.helloworld; 

import com.google.tagmanager.Container; 
import com.google.tagmanager.ContainerOpener; 
import com.google.tagmanager.ContainerOpener.OpenType; 
import com.google.tagmanager.TagManager; 
import com.google.tagmanager.DataLayer; 

import com.google.android.gms.ads.identifier.AdvertisingIdClient; 
import com.google.android.gms.ads.identifier.AdvertisingIdClient.Info; 
import com.google.android.gms.common.GooglePlayServicesNotAvailableException; 
import java.io.IOException; 


import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.DialogInterface; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.os.StrictMode; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 
import android.widget.TextView; 
import android.telephony.*; 
import android.provider.*; 

/** 
* An {@link Activity} that reads background and text color from a local 
* Json file and applies those colors to text view. 
*/ 
public class MainActivity extends Activity { 


    private static final String TAG = "GTMExample"; 
    private static final String CONTAINER_ID = "GTM-PJNXHL"; 

    private static final String OS = "os"; 
    private static final String DEVICE_IMEI = "device_imei"; 
    private static final String DEVICE_ANDROID_ID = "device_android_id"; 
    private static final String GOOGLE_AD_ID = "google_ad_id"; 

    private static String deviceImei = ""; 
    private static String androidId = ""; 
    private static String googleAdId = ""; 

    // Set to false for release build. 
    private static final Boolean DEVELOPER_BUILD = true; 
    private Container container; 
    private DataLayer dataLayer; 
    private TelephonyManager telephonyManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    if (DEVELOPER_BUILD) { 
     StrictMode.enableDefaults(); 
    } 

    // iau singletonul de tagmanager 
    TagManager tagManager = TagManager.getInstance(this); 

    ContainerOpener.ContainerFuture containerFuture = ContainerOpener.openContainer(
     tagManager, CONTAINER_ID, OpenType.PREFER_NON_DEFAULT, null); 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_main); 

    telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); 

    // This call may block (for up to the timeout specified in 
    // ContainerOpener.openContainer). For an example that shows how to use a splash 
    // screen to avoid blocking, see cuteanimals example. 
    container = containerFuture.get(); 

    dataLayer = tagManager.getDataLayer(); 

    // Modify the background-color and text-color of text based on the value 
    // from configuration. 
    updateVars(); 
    } 

    private void updateVars() { 
    Log.i(TAG, "image_test"); 
    TextView textView = (TextView) findViewById(R.id.hello_world); 
    textView.setText(OS); 
    } 


    public void colorButtonClicked(View view) { 
    Log.i(TAG, "colorButtonClicked"); 
    AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
    alertDialog.setTitle("Getting vars"); 

    deviceImei = telephonyManager.getDeviceId(); 
    androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID); 

    Info adInfo = null; 
    try { 
     adInfo = AdvertisingIdClient.getAdvertisingIdInfo(this.getBaseContext().getApplicationContext()); 
    } catch (Exception e) { 
     System.out.println(e.getMessage()); 
    } 
    googleAdId = adInfo.getId(); 

    alertDialog.setMessage(deviceImei); 

    dataLayer.push(DEVICE_IMEI, deviceImei); 
    dataLayer.push(DEVICE_ANDROID_ID, androidId); 
    dataLayer.push(GOOGLE_AD_ID, googleAdId); 

    alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, 
     "OK", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
     } 
    }); 
    alertDialog.show(); 
    updateVars(); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
    } 
} 

我想是推deviceImei,androidId和googleAdId使用数据层。

我的问题是:

  1. 如何测试和看到的数据是使用数据层推开?
  2. 我该如何测试并查看标记是否已经从dataLayer中的数据被触发?
  3. 我在哪里测试以查看标签已被分类?

谢谢!

回答

1

一种方法是将Google Analytics事件与您的数据和相同的规则结合使用。如果一切正确,你会在GA中看到你的数据。

+0

你是什么意思,everytging是正确的? – Gabriel 2014-10-31 11:11:05

+0

您可以在Google Analytics事件代码的类别,操作和标签字段中使用您的数据。因此,如果所有数据都是正确的,您可以在Google Analytics的事件报告中找到 – mrbubu 2014-12-22 22:08:51

+0

@ mrbubu,您可以发布一个示例说明我们如何实现这一目标。 – Pankaj 2015-02-26 12:11:42