【问题标题】:Android development using Google Tag Manager and dataLayer使用 Google Tag Manager 和 dataLayer 进行 Android 开发
【发布时间】:2014-10-28 16:55:05
【问题描述】:

我是这个 Google 跟踪代码管理器的新手,我在尝试测试它时有点纠结。 这是我所做的:

  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;
  }
}

我想要的是使用 DataLayer 推送 deviceImei、androidId 和 googleAdId。

我的问题是:

  1. 如何测试并查看数据是否使用 dataLayer 推送?
  2. 如何测试并查看代码是否已使用 dataLayer 中的数据触发?
  3. 我在哪里进行测试以查看标签是否已被跟踪?

谢谢!

【问题讨论】:

    标签: android google-tag-manager


    【解决方案1】:

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

    【讨论】:

    • 您可以在 Google Analytics(分析)事件代码的类别、操作和标签字段中使用您的数据。因此,如果所有数据都正确,您将在 Google Analytics(分析)的事件报告中显示该数据
    • @mrbubu,你能举一个例子,我们如何做到这一点。
    • Pankaj,为了清楚起见,您需要 Google 跟踪代码管理器设置示例吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多