En esta guía para programadores se describe cómo medir las interacciones sociales con la versión 4 del SDK de Google Analytics para Android.
Descripción general
La medición de la interacción social permite observar las interacciones de los usuarios con varios widgets de red social insertados en el contenido para compartirlo y recomendarlo.
Estas interacciones tienen los siguientes campos:
Nombre del campo |
Tipo |
Obligatorio |
Descripción |
Red social |
String |
Sí |
Red social con la que interactúa el usuario (por ejemplo, Facebook, Google+, Twitter, etc.). |
Acción social |
String |
Sí |
Acción social que se lleva a cabo (por ejemplo, Me gusta, Compartir, +1, etc.) |
Segmentación social |
String |
No |
Contenido en el que se lleva a cabo la acción social (por ejemplo, un artículo o un vídeo). |
Es posible acceder a los datos de interacciones sociales que recopila la versión 4 del SDK de Google Analytics para Android en informes personalizados y a través de la API de informes centrales.
Implementación
Para enviar una interacción social a Google Analytics, usa SocialBuilder
como en el siguiente ejemplo:
// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Build and send social interaction.
t.send(new HitBuilders.SocialBuilder()
.setNetwork(getSocialNetwork())
.setAction(getSocialAction())
.setTarget(getSocialTarget())
.build());
Consulta la sección Configuración avanzada para obtener información detallada sobre el método getTracker
.
Consultar un fragmento de código desde la aplicación de ejemplo
El siguiente fragmento muestra un ejemplo de Fragment
que envía una interacción social:
package com.google.android.apps.mobileplayground;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import com.google.android.apps.mobileplayground.AnalyticsSampleApp.TrackerName;
import com.google.android.apps.mobileplayground.MobilePlayground.UserInputException;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;
/**
* Class to exercise Social hits.
*/
public class SocialFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View view = inflater.inflate(R.layout.social, container, false);
final Button sendButton = (Button) view.findViewById(R.id.socialSend);
sendButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Build and send social interaction.
t.send(new HitBuilders.SocialBuilder()
.setNetwork(getSocialNetwork())
.setAction(getSocialAction())
.setTarget(getSocialTarget())
.build());
} catch (UserInputException e) {
e.printStackTrace();
}
}
});
final Button dispatchButton = (Button) view.findViewById(R.id.socialDispatch);
dispatchButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Manually start a dispatch (Unnecessary if the tracker has a dispatch interval)
GoogleAnalytics.getInstance(getActivity().getBaseContext()).dispatchLocalHits();
}
});
return view;
}
private String getSocialNetwork() throws UserInputException {
String result =
((EditText) getView().findViewById(R.id.editSocialNetwork)).getText().toString().trim();
if (result.length() == 0) {
throw new UserInputException(getString(R.string.socialNetworkWarning));
}
return result;
}
private String getSocialAction() throws UserInputException {
String result =
((EditText) getView().findViewById(R.id.editSocialAction)).getText().toString().trim();
if (result.length() == 0) {
throw new UserInputException(getString(R.string.socialActionWarning));
}
return result;
}
private String getSocialTarget() {
return ((EditText) getView().findViewById(R.id.editSocialTarget)).getText().toString().trim();
}
}