public void ReportEvent(
string source,
string eventType,
string eventName,
bool userLoggedIn,
string projectNumber = null,
Dictionary<string, string> metadata = null)
{
Preconditions.CheckNotNull(eventType, nameof(eventType));
Preconditions.CheckNotNull(eventName, nameof(eventName));
var customDimensions = new Dictionary<int, string>
{
{ IsUserSignedInIndex, userLoggedIn ? TrueValue : FalseValue },
{ IsInternalUserIndex, FalseValue },
{ EventTypeIndex, eventType },
{ EventNameIndex, eventName },
{ IsEventHitIndex, TrueValue },
};
if (projectNumber != null)
{
customDimensions[ProjectNumberHashIndex] = GetHash(projectNumber);
}
var serializedMetadata = metadata != null ? SerializeEventMetadata(metadata) : null;
_reporter.ReportPageView(
page: GetPageViewURI(eventType: eventType, eventName: eventName),
title: serializedMetadata,
host: source,
customDimensions: customDimensions);
}