Questa guida per gli sviluppatori descrive come misurare le interazioni social utilizzando
l'SDK Google Analytics v4 per Android.
Panoramica
La misurazione delle interazioni social ti consente di misurare le interazioni di un utente con vari widget per la condivisione di social network e per i consigli incorporati nei tuoi contenuti.
Le interazioni social hanno i seguenti campi:
Nome campo |
Tipo |
Obbligatorio |
Descrizione |
Social network |
String |
Sì |
Il social network con cui l'utente interagisce (ad es. Facebook, Google+, Twitter e così via). |
Azione social |
String |
Sì |
L'azione social intrapresa (ad esempio Mi piace, Condividi, +1 e così via). |
Target social |
String |
No |
I contenuti su cui viene intrapresa l'azione social (ad esempio, un articolo o un video specifico). |
I dati sulle interazioni social raccolti dall'SDK di Google Analytics v4 per Android sono disponibili tramite i report personalizzati e l'API Core Reporting.
Implementazione
Per inviare un'interazione social a Google Analytics, utilizza
SocialBuilder
come nel seguente esempio:
// 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());
Per maggiori dettagli sul metodo getTracker
, consulta
Configurazione avanzata.
Visualizza uno snippet di codice dall'applicazione di esempio
Lo snippet seguente è un Fragment
di esempio che invia un'interazione 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();
}
}