473,382 Members | 1,786 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,382 software developers and data experts.

how J2EE framework works?????

dmjpro
2,476 2GB
plz send me a good link which can clearify me how the J2EE framework works

i want the details information .... plz help
thanx
Mar 12 '07 #1
3 6590
r035198x
13,262 8TB
plz send me a good link which can clearify me how the J2EE framework works

i want the details information .... plz help
thanx
Try the sun official tutorial here.
Mar 12 '07 #2
dmjpro
2,476 2GB
thanx a lot
Mar 12 '07 #3
J2EE and Service Oriented Programming


Authored by: AmirSam Bahador
Level:
Advanced
Contents:
Introduction
- The purpose of compilation this essay

Chapter 1: Basic concepts of J2EE
- Servlet and JSP
- MVC
- MVC or JWMS? That is the problem? Perhaps both!

Chapter 2: Basic concepts of Shine Framework
- What is "Shine Framework”?
- The components of Shine Framework
- Implimentation of an application by Shine Framework

Chapter 3: The objects of Shine Framework
- The types of objects in Shine Framework

Chapter 4: Engineering & Communication items
- The communication of Shine Framework with the other
existing Frameworks
- The major purpose of Shine Framework


Introduction
The purpose of compilation of the this paper
A few years ago, when I was the software architect of a big project with J2EE, I advised some of the modern tools of that time to the project manager. He acknowledged it. Therefore, we began deploying our Enterprise on Java platform. However, we encounterd with many problems, as we got ahead the project. Our tools were included Struts Framework, Spring Framework & Hibernate.

I convinced that MVC architecture is the best option to develop macro projects! However, I believe it now, as well. Couldn't it be more completed? In developed Enterprise projects, an advanced architecture is required to divide the project, technically. The project was successfully finished after one year, but my mind was busy with it for a long time!

Then, I began implementing an Application Framework and registered it in Sourceforge.net as an Open Source Framework. I developed some Enterprise projects & some other J2EE frameworks, as well. I achieved a good result! The velocity of implemention & developing projects increased up to 50%. Subsequently, by cooperation of my elected students who had worked with Application Framework, I established an organization, named J2SOS, to protect & develop this Application Framework.
Fortunately, my students were so skilled that each took a chief task in big J2EE projects.
Their experiences had a practical affect on development of Application Framework as well as the organization.
Therefore, it is required to write down my & my yesterday students (my today co-workers) experiences. This was the outset to write the present paper!



Chapter 1
The basic concepts of J2EE
Purposes
In this chapter, we do our best to introduce J2EE basic concepts.
Servlet & JSP
If you ahve ever worked with JSP & Servlet, you know that Servlet is so proper for processing functions but there are particular problems with it in displaying functions.

JSP is applied reverse to Servlet. Thus, what is the solution? To apply both JSP and Servlet together!

What is MVC?
MVC is an easy way to use JSP & Servlet together. In MVC architecture, the request will be processed by a Class (Servlet) and the appropriate response will be showen by JSP.

See Figure 1-1


Figure 1-1

In the above Servlet Class, the validation operation, etc will be done.

Nowadays, there are numerous Frameworks which will assist you to use MVC Framework architecture. Struts Framework is the most well-known one.
MVC or JWMS ? That is the problem! Perhaps both!

MVC is a powerful architecture, but it is required an advanced architecture to implement developed projects.
Today, web applications are well developed which complicatethe work for programmers & developers.
To clarify it, see Google site! Google Web Application enjoys numerous services, each have a special service for the users.
For Instance, Gmail service, E-Mail or by SearchEngine, the users can search for websites, pictures, etc.

These services have certaily close communication with each other.
If the services do not use a particular architecture, the Google will encounter with various problems.
In Service Oriented architecture, each part of the program is a service programme. For example, E-Mail service, SearchEngine service, etc.

Consider Electeronic-Goverment application. This application does numerous services; each can be regarded as a separate application.


Figure 1-2

However, there is a problem! These applications should have communication with each other, i.e., a communication which is not a simple messaging one! I propose JWMS architecture to solve this problem!
Java Web Model Service (JWMS) transforms each part of E-Government application to a service. For instance, E-Bank service, E-Ministry service, etc.

See Figure 1-3

Figure 1-3

As you see, the request of user is transfered to Model via Web, it is processed by the Model t and the user is directed to the proper Service.
Model means a Servlet which processes the Request of the user.
It is likely that, in the first outlook, this architecture looks like MVC. Wait! You are not familiar with its internal components, yet!
To understand it obviously, you should be familiar with a Framework.

J2EE Service Oriented Programming
In
shine
Framework

Chapter 2
Basic concepts of Shine Application Framework

Purposes

The purpose of this chapter is to introduce you Shine Application Framework.
What is Shine Application Framework?
Shine Application Framework is a Service Oriented Framework which assists you to implement applications in accordance with MVC & JWMS architedtures.
The components of Shine Framework
In applications which impliment by Shine, the request is first processed by the Model and the user is directed to the proper Service.

The Class that acts as Model is called Mapping. Mapping Class is similar to a servlet.

Each Mapping Class should extend “j2sos.shine.controller.Mapping” Class & implement “public void rater()” method.

Each service includes a JSP or a JSF page or … in which there are a succession of Shine’s rules and its exclusive tags.

See Figure 2-1:

Figure 2-1

Let’s review exclusively the components of the application which have been implemented by Shine.
See Figure 2-2:


Figure 2-2

The request is processed when it inserts the Mapping Class which spacifies the appropriate service for the user’s request and directs the user toward the service by web.xml file.
Implimentation of an application by Shine Framework
Make a web application as below:

Then apply “shine.jar” file to your library.
After adding the mentioned library, change “web.xml” file as follow:


<?xml version= '1.0' encoding='windows-1252'?>
<!DOCTYPE web-app PUBLIC "-//dun Microsystem,
INC.//DTD Web Application 2.3//EN" http://java.sun.com/dtd/web-app.dtd>
<web-app>
<description>Application Name</description>
<servlet>
<servlet-name>MyMapping</servlet-name>
<servlet-class>view.MyMapping</servlet-class>
<init-param>
<param-name>ServerConsoleStatuse</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>ContentType</param-name>
<param-value>text/html; charset=utf-8</param-value>
</init-param>
<init-param>
<param-name>servicename1</param-name>
<param-value>http://127.0.0.1:8080/ApplicationName/service1.jsp</param-value>
</init-param>
<init-param>
<param-name>ServiceName2</param-name>
<param-value> http://127.0.0.1:8080/ApplicationName/service2.jsp </param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyMapping</servlet-name>
<url-pattern>MyMapping.exec</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>35</session-timeout>
</session-config>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
<taglib>
<taglib-uri>/web-INF/shine.tld</taglib-uri>
<taglib-location>/web-INF/shine.tld</taglib-location>
</taglib>
</web-app>


Now, let’s analyze this file.
- “Description” tag indicates the name of application.
- “Servlet-name” & “servlet-class” tags show the name & address of “Mapping” class.

- “Init-param” tag and “ServerConsoleStatus” property & its “true” value notify Shine that the descriptions of the request should be displayed in Server side

This property will help you to get information about the requests via text environment of ApplicationServer. This property will certainly remind you of “showsql” in “Hibernate”.

- “Init-param” tag & its “Content-Type” property indicate the type of the contents of the response.
- "Init-param" tag & "servicename1", "servicename2" properties identify two services to Shine as well as specify the address of each service on the same server or the other one in Shine.
- "Servlet-mapping" tag indicates a name to attain "Mapping" class to the requests.
- The address of the library of Shine is identified to the ApplicationServer by "Taglib" tag.

Getting to know setting of Shine's properties in "web.xml" file, you should put "shine.tld" file beside "web.xml" file.

At present, “ properties’ setting of “web.xml” file is finished & we should consider the “Mapping” classes.

All of “Mapping” classes should be extended “j2sos.shine.controller.Mapping” class and implement “public void rater()” method.

For instance, let’s impliment “view.MyMapping” class.

Package view;
Import j2sos.shine.controller.Mapping;
Public class MyMapping extends Mapping
{
Public void rater()
{
Forward("servicename2","tag1");
}
}


As you see, this class enjoyes a method named “rater”. When the request inserts the “MyMapping” class, It will automatically be called.

This method is responsible for the first processes on the requests.

It is obvious that another method has been called in this method.

“Forward” method lead the user to the proper service. In this example, the user will be directed to “servicename2” service.

The value of “tag1” will be further explained next.

It is noted that you can call “forward” method by the other methods.

Package view;
Import j2sos.shine.controller.Mapping;
Public class MyMapping extends Mapping
{
Public void rater()
{
m1();
}
public void m1()
{
forward("servicename2","tag1");
}
}

As it is previously mentioned, “servicename1” & “servicename2” indicate the address of two JSP pages which perform as a service.

Let’s implement one of these services (JSP pages).

Since “servicename2” is utilized in the previous example, we implement “service2.jsp” now. First “web.xml’ should be reviewed.


<?xml version= '1.0' encoding='windows-1252'?>
<!DOCTYPE web-app PUBLIC "-//dun Microsystem,
INC.//DTD Web Application 2.3//EN" http://java.sun.com/dtd/web-app.dtd>
<web-app>
<description>Application Name</description>
<servlet>
<servlet-name>MyMapping</servlet-name>
<servlet-class>view.MyMapping</servlet-class>
<init-param>
<param-name>ServerConsoleStatuse</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>ContentType</param-name>
<param-value>text/html; charset=utf-8</param-value>
</init-param>
<init-param>
<param-name>servicename1</param-name>
<param-value>http://127.0.0.1:8080/ApplicationName/service1.jsp</param-value>
</init-param>
<init-param>
<param-name>ServiceName2</param-name>
<param-value> http://127.0.0.1:8080/ApplicationName/service2.jsp </param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyMapping</servlet-name>
<url-pattern>MyMapping.exec</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>35</session-timeout>
</session-config>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
<taglib>
<taglib-uri>/web-INF/shine.tld</taglib-uri>
<taglib-location>/web-INF/shine.tld</taglib-location>
</taglib>
</web-app>


Iimplement a JSP page initially named “service2” with the following contents:

<% taglib uri="/web-INF/shine.tld" prefix="shine"%>
<header>this is shine Application</header>
<tags>
<shine:tag name="tag1">
Hello.this is service 2 and tag 1
</shine:tag>
<shine:tag name="tag2">
Hello.this is sevice 2 and tag 2
</shine:tag>
</tags>
< footer>J2sos Organization </footer>


In the beginning of the above page, the library of ApplicationServer is identified.

This page (Service) includes four principal tags.

“header” & “footer” tags act as the same as header & footer of text pages.

The values of “tag1” & “tag2” perform as two pages. When you call “forward” method in “MyMapping” class as below:

Forward (“servicename2”,”tag1”);

The user will be directed to “service2.jsp” as well as “tag1” will be displayed alongwith header & footer.

This is Shine Application !
Hello , this is service 2 and tag 1
J2SOS Organization

Now, if you call “forward” method in “MyMapping” class as below:

Forward (“servicename2”,”tag2”);

The user will be directed to “service2.jsp” and “tag2” will be displayed alongwith header & footer.

This is Shine Application !
Hello , this is service 2 and tag 2
J2SOS Organization

This type of coding in these pages lead to data sorting. In these pages, you can get values once via JSP and use it in all tags.


<% taglib uri="/web-INF/shine.tld" prefix="shine"%>
<header>this is shine Application</header>
<tags>
<%! String name;%>
<%name="ali";%>
<shine:tag name="tag1">
Hello.<%=name;%> this is service 2 and tag 1
</shine:tag>
<shine:tag name="tag2">
Hello. <%=name;%> this is sevice 2 and tag 2
</shine:tag>
</tags>
< footer>J2sos Organization </footer>



In fact, in this architecture, JSP pages act as “Service” & tags are considered as your “pages”.

Now, let’s impliment “service1.jsp” page.
<% taglib uri="/web-INF/shine.tld" prefix="shine"%>
<header>this is shine Application</header>
<tags>
<%! String name;%>
<%name="ali";%>
<shine:tag name="tag1">
Hello. this is service 1 and tag 1
</shine:tag>
<shine:tag name="tag2">
Hello. this is sevice 1 and tag 2
</shine:tag>
</tags>
< footer>J2sos Organization </footer>


To direct user to this service, it is merely required to call “forward” method as below:

Forward (“servicename1”,”tag1”);

To get the address of JSP pages & setting them in “web.xml” file, each page is directly run directly, then its address is indicated in “web.xml” file.

<param-name>ServiceName2>/param-name>
<param-value> http://127.0.0.1:8080/ApplicationName/service2.jsp </param-value>

In these pages, reverse to Struts, you can use objects of request, response, etc in JSP since URL values are sent to JSP pages (Services) by “Mapping” classes send to.

Being acquainted with “Mapping” classes & “Service” pages, you should be able to send the request of user to “Mapping” class.

Therefore, It is required to set the value of the Action of HTML forms on your Mapping classes.

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows=1252">
<title>untitled</title>
</head>
<body>
<form action="MyMapping.exec" method="get" >
<p>
<input type="text" name="name" />
</p>
<p>
<input type="submit" value="submit" />
</p>
</form>
</body>
</html>

It is observed that this form bears a text field called “name” and the value of its action has been set on “MyMapping” class.
Now, let’s survey on sending request by Ajax! In this example, you should put “ajax.js” & “md5.js” files beside the request page.

<script src="javascript/ajax.js" type="text/javascript"></script>
<script src="javascript/md5.js" type="text/javascript"></script>
<form name="myform" method="get" action="MyMapping.exec">
<p><input type="text" name="T1" size="20" /></p>
<p><input type="text" name="T2" size="20" /></p>
<p><input type="button" name="mb" value="submit" onclick="ajaxSubmit(myform,false);" /></p>
</form>
<script type="text/javascript" language="javascript">
Function ajaxLoad()
{
}
Function ajaxResponse(content)
{
Alert(content);
}
</script>

As you can see, this form have a name. its information is sent to “MyMapping” class via “ajaxSubmit” method.
The value of “flase” in “ajaxSubmit” method causes the user not to communication with the request page till receiving the response.

“AjaxLoad” method will automatically be called when the form is sent. While the response is received, “ajaxResponse” method will be called, as well.

The value of “content” value includes the response of “MyMapping” class.

You can use “ajaxMD5Submit” method instead of “ajaxSubmit” one to send the information of form in MD5 format to “MyMapping” class.

“ajaxEternalSend” method acts similar “ajaxSubmit” method but it sends an URL and receives response, constantly. For instance:

ajaxEternalSend(“MyMapping.exec?name=’’ali”,false, 4);

In this method, the number “4” indicates a time scale to send URL to the “MyMapping.exec” class again.

Some other methods are determined in “component.js” file to help you in communication with java.


Chapter 3

The objects of Shine Framework

Purposes
In this chapter, the objects of Shine framework will be discussed.

The types of objects of Shine framework
As you know we have not achieved a parameter in mapping classes yet, therefore, 3 methods are used in these classes as follows;
- getRequest() method acts similar to request object in JSP.
To get parameter from URL, it is required perform as bellows;
getRequest().getParameter(“ParameterName”);

getConfig() and getResponse() method are applied the same as getRequest() too.

Import j2sos.shine.controller.Mapping;
Public class MyMapping extends Mapping
{
Public void rater()
{
getRequest().getParameter("ParamName");
. . . .


j2sos.shine.script.Server class help you work with server operating system API. If you intend to install a web based operating system, you can use this class.
The followings are the methods of this class:

publiv void write(object obj);
public void writeln(object obj);
public String getFileValue(String fileaddres,String filename);
public void writeFile(String fileaddress,String filename,String text);
public void creatFolder(String folderaddress,String foldername);
public void deleteFolderAndFile(String folderaddress,String foldername);
public void executeCommand(String command);
public String getCurrentDate();
public void shutdownApplication();

To work with each method, you should make an object from this class.
Herein, the above methods are described.

Write() and writln() methods create a text on textual consul of Application Server.

getFileValue() method receives a directory and afile name, then return the contents of textual file.

writeFile() method receives a directory, a file name as well as file contents and makes a file in server.

createFolder() method recieves a directory and a file name to create a folder in server.

deleteFolderAndFile() method deletes a file or folder in server.

getCurrentDate() method sends back server's local time .

shutDownApplication() method stops the executing application.

j2sos.shine.script.CompietionRequest class helps you to receive parameters from URL. The followings are the methods of this class:

public String getUserid();
public int getRequestConter(int step);
public File getFileParam(String paramname,File nullval);
public object getObjParam(String paramname,object nullval);
public boolean getBoolParam(String paramname,Boolean nullval);
public char[] getCharParam(string paramname, char[] nullval);
public double getDoubleParam(String paramname, double nullval);
public short getShortParam(String paramname, short nullval);
public byte getByteParam(String paramname,byte nullval);
public long getLongParam(String paramname,long nullval);
public float getFloatParam(String paramname,float nullval);
public int getIntParam(String paramname,int nullval);
public String getStrParam(String paramname,String nullval);


getUserid() method sends back identify number of the user session.

getRequestCounter() method makes a general counter and recieves a value for indicating the step of counter.
The other methods of this class perform similar to request.getParameter("ParamName") command, except they help you in casting and validation.
For instance, getStrParam("name","it is null") method leads the value of name to be sent back from URL, if this value is not available in URL, "it is null" value is returned.
j2sos.shine.monitor.ServerConsole class bears a method named showSeverConsole, which receives an object of request and displays the descriptions of request by application server console.
j2sos.shine.socket.ResponseService class have a method named getTagText, which receives an URL and tag name, then returns the contents of tag.


Chapter 4
Engineering and communication items

Purposes

In this chapter, you are acquainted with engineering and communication items.

The communication of Shine Framework with other existing Frameworks

As you now, the communication of a framework with other frameworks is extremely important.
You can communicate with other frameworks in shine.
These frameworks include as follows:
Hibernate
Spring
Struts
Or even Jsf, I am sure you have idea in this regard.
I try my best to put some of frameworks beside shine.
You can have several methods in mapping classes, for instance:


package view;
import j2sos.shine.controller.Mapping;
import j2sos.shine.script.compietionRequest;

public class Mapping2 extends Mapping
{
Public void rater()
{
Try
{
compietionRequest cr=new compietionRequest(getRequest());
String PAGE=cr.getStrParam("pagename","null");
If(PAGE.equals("p1"));
{
P1Validation();
}
If(PAGE.equals("p2"))
{
P2Validation();
}
If(PAGE.equals("null"))
{
Forward("errorservice","url");
}
Else
{
Forward("errorservice","notexisturl");
}
}
Catch(Exception e)
{
Forward("myservice","p1");
}
}

Public void p1Validation()
{
Forward("myservice","p1");
}
Public void p2Validation()
{
Forward("myservice","p2");
}
}


In this class, it is first received PageName value from URL.
Next, regarding PageName value, the service which should respond the request, will be identified.
If the insert value is p, p1Validation() method will be called.
If the input value is p2, p2Validation() method will be called.
If it is not input any P1 & P2 values, the user will be directed to errorservice and the value of notexisturl tag will be displayed.
If it is not input any P1 & P2 values, the user will be directed to errorservice and the contents of URL tag will be displayed.
If the developer makes an Exception, the user will be directed to errorservice and the contents of exp will be displayed.
Suppose we made an aspect file and programming it as before running each of methods(P1Validation, P2Validation), the other method is called.
Therefore, you will create a powerful management in mapping2 class.
Now, let's combine struts and shine together. It is required to use struts tags in your own service tags. For instance:


<%@ taglib uri="/web-INF/shine.tld" prefix="shine"%>
<%@ taglib uri="/web-INF/struts-html.tld" prefix="html"%>
<%@ page contentType="text/html;charset=windows-1252" %>
<header></header>
<tags>
<shine:tag name="p1">
<DIV align="center">
<html:form action="/action.do">
<html:text property="famol"/>
<html:submit/>
<html:reset/>
</html>
</DIV>
</shine:tag>
</tags>
<footer></footer>


As you see, you can easily communicate with other existing frameworks in shine.
Ther have been published numerous papers about SHINE and JDBC , etc. See the following websites:
www.j2sos.org .

The major purpose of Shine framework

The main purpose of shine framework is implementing service oriented applications. In this framework, the developer is focused on implementing services.
This framework includes java web model service (JWMS) and MVC , which provides a particular system in implementing enormous applications.



J2SOS Organization Web Site: http://www.J2SOS.org
You can finde complete document in: http://www.j2sos.org/download/doc.rar
Feb 18 '09 #4

Sign in to post your reply or Sign up for a free account.

Similar topics

0
by: Kevin Sagon | last post by:
I am running a J2EE Web App under Tomcat 4.1 with Apache 2.0 proxying requests. Everything is configured and working appropriately however I ran into a problem after configuring J2EE Form...
15
by: Herman | last post by:
Hi everyone, I'm currently studying for my Master's in Computer Science, and I will be working on my thesis this summer. I've been thinking about constructing a web services application for my...
3
by: Sig | last post by:
Hi there, Could you help me finding out whether Zope could be a serious technological framework for big corporation (compared to J2EE and ..Net) or not ? In the (quite very) big corporation I...
0
by: Max Ischenko | last post by:
Hi, all. I think many would agree that the community-agreed standards could boost the development of the applications in a defined areas. In particular, the lack of J2EE-like standards about...
124
by: 43 | last post by:
how come m$Office isn't written in .net? how come Open Office isn't written in j2ee? how come dbms systems aren't written in either? how come browsers aren't written in either? how come...
6
by: Frank Rachel | last post by:
So I can focus on the correct areas of research, I was wondering if someone could give me the .NET equivelents for this J2EE architecture: JSP's make calls to local JavaBean Controls. The...
13
by: Jonathan Li | last post by:
Hi there, I posted a thread in another group. I could not get satisfactory feedback. I would like to try if anybody in this group can help me out. My plan was, to develop components at server...
5
by: Thiago Campos Pereira | last post by:
I need a support of the staff of the Microsoft. Since the beginning of the year I am working in the CFLCL (Company of the sector of energy with more than 15000 employees). I am trying to...
9
dmjpro
by: dmjpro | last post by:
today i came to know a new framework .... say SPRING. can u give me good link on it??? kind regards, dmjpro.
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.