非Webベースのアプリケーション(Windowsベースのアプリケーション)でGoogleアナリティクスにリクエストを送信したいですか?以下の方法で試してみました。
public string trackingId = "UA-XXXXXXXX-2";
private void button1_Click(object sender, EventArgs e)
{
string shopname = "ShopTestng";
string pagename="Testing_MyApp";
callAnalyticsmethod2(pagename, shopname);
}
private void callAnalyticsmethod2(string pageName, string shopname)
{
// create hash code base on pc name 7 user name
string visitorId = GetUniqueUserId();
if (string.IsNullOrEmpty(pageName))
pageName = visitorId;
string utmGifLocation = "http://www.google-analytics.com/__utm.gif";
string GifUrl = "utmwv=4.9" +
"&utmn=" + GetRandomNumber() +
"&utmp=" + pageName +
"&utmac=" + trackingId +
"&utmcc=__utma%3D999.999.999.999.999.1%3B" +
"&utmvid=" + visitorId;// + "?" +
string shop = shopname.Replace(" ", "_");
string addipara = GifUrl+"&utmr=http://" + shop;
byte[] dataStream = Encoding.UTF8.GetBytes(addipara);
string request = utmGifLocation;
WebRequest webRequest = WebRequest.Create(request);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = dataStream.Length;
Stream newStream = webRequest.GetRequestStream();
// Send the data.
newStream.Write(dataStream, 0, dataStream.Length);
newStream.Close();
WebResponse webResponse = webRequest.GetResponse();
MessageBox.Show((((HttpWebResponse)webResponse).StatusDescription));
newStream = webResponse.GetResponseStream();
StreamReader reader = new StreamReader(newStream);
string responseFromServer = reader.ReadToEnd();
MessageBox.Show(responseFromServer);
reader.Close();
newStream.Close();
webResponse.Close();
}
上記のコードサンプルによると
MessageBox.Show((((HttpWebResponse)webResponse).StatusDescription));
「OK」と表示されます。しかし、Google Analyticsをチェックすると、訪問数は増えません。これの理由は何ですか?何か足りないものや、アナリティクスにリクエストを送信する他の方法はありますか?