Malia Jocelyn Morley
This is such an important event that I dedicated an entire page to it.
Click here to see more about Malia Jocelyn Morley.
This is such an important event that I dedicated an entire page to it.
Click here to see more about Malia Jocelyn Morley.
What is the most effective way to use Google Analytics and Flash?
How would you like to be able to know exactly how people are accessing your site and what they do when they are there? With Flash you can. And Google has provided the back end system free of charge for you to do it. It is called Google Analytics.
Google and Flash can show you exactly what people are doing on your site. I know how many people are mousing over the Flash piece. I know how many people are clicking a certain button. I know how many times a button is rolled-over without being clicked. I know how long the mouse is over the object. I can know every piece of data that is possible to know about what and how my users are interacting with the page, advertisement or application.
There are three key components in using Google Analytics combined with your Flash/Flex application or website. First is determining what you want tracked and how you want to use the statistics, the second is creating a Google Analytics account and setting up the proper filters etc.., the third is setting up the code in Flash and Javascript.
This is part 1 of a 5 part series on how to accomplish each of these areas.
Stay tuned for
Part 2 – “What Flash events should & shouldn’t be tracked with Google Analytics?” coming soon.
As always Happy Flashing.
ActionScipt 3 Quick Tip of the Day: How to reverse a string with one line of code.
I had the thought the other day – Is it possible to reverse a string in Flash/Flex with only one line of ActionScript Code?
I determined that it was. And here is the result of my ActionScript conjuring.
var myString:String = “ActionSript 3”;
trace(myString.split(“”).reverse().join(“”));
//Output – 3 tpirSnoitcA
Wondering what this is actually doing? Here is the explanation:
split(“”)
split() takes any string and separates it it based on the value that you pass in the parenthesis. This value is called the delimiter. For example, if I had a string “1!2!3” and split that string using an exclamation mark as the delimiter then I would have an array that includes the elements ["1","2","3"]
. If I used “2” as the delimiter then the array would look like this ["1!","!3"]
. Because I am not using a delimiter, just empty quotes, the string is split on each character. split()
and split("")
are not the same. split()
without empty quotes will split on nothing and you will get an array with only one element which is the entire word.
reverse()
reverse() is a method that will take an array and and reverse the order. An array like this var myArray:Array = ["a","b","c"]
will trace out as c,b,a if you use the following code trace(myArray.reverse());
join(“”);
join() will combine the elements from an array and create a string. The parameter that you pass it is called a separator and will be used to separate all the elements within the string. I use the empty string again in my code so that there will be no separation between the letters of the word. Without putting in the empty quotes you will get the result of 3, ,t,p,i,r,S,n,o,i,t,c,A with a comma separating each character including the space.
So in essence apply functions to the result of the previous function all in one line. I take a string and split each letter into an array element, reverse that array and then join all of the separate elements back into a single word.
And that is your ActionScript 3 quicktip of the day.
As Always Happy Flashing
Are you running your Flex Application and continually getting the error below?
“C:\Program Files\Mozilla Firefox\plugins\NPSWF32.dll
Flex Builder cannot locate the required version of the Flash Player. You may need to install Flash Player 9.0 or reinstall Flex Builder. Do you want to try to run your application with the current version?
Description:
This error is not a critical error and if you click on the Yes button the application will most likely run the way the you expect it. The reason this happened may have been because you recently did an express install or just an upgrade to your Flash Player.
Solution:
To get rid of this window constantly popping up you need to do one of the following:
C:\Program Files\Mozilla Firefox\plugins
but if you look in that folder I would wager that the file NPSWF32.dll
is not there. Where you will find the file is in the following folder C:\Windows\System32\Macromed\Flash
. Simply do a copy and paste from the Macromed\Flash folder into the Firefox\plugins folder and you will eliminate the error.Below are two links to help you trouble shoot.
Get the latest Flash Player Debug Version
Find out what version you have.
As always Happy Flashing
P.S. I tried the solution on the Adobe Live Docs of updating the patch in Flex and this did nothing.
Please read post below for the real answer.
This duplicate post is a result of using the Bee AIR application to do posts.
I am leaving it here to show what happens when using BEE.
http://www.adobe.com/support/flashplayer/downloads.html – Get the latest debug version of the Flash Player.
http://www.adobe.com/products/flash/about/ Find out what version you have.
Adobe Sneak Peeks
Adobe Visual Communicator
It can be streamed live with Flash technology.
Blue Screen and Green Screen is supported
Everyone at Max got a copy of Visual Communicator
Voip in the Flash Player
PTP & P2P will be coming soon.
Flash Home
Totally cusomtizable phone interfaces for phones
RSS feeds
Integrated with the device
– SMS, phone, email, games, ringtones, call logs, ring detection, etc…
Push technology
OTA – Over the Air home screen updates
Photoshop Express
Built in Flex
Web based
Features:
Fireworks
Skinning Flex Components
Truly create custom skins
Preview in AIR
Web to Print
Abode Flex and InDesign Server for print allows for custom print on demand.
Admininstrative Login and templating
On the Fly image exchange
Adobe PDF output
Future version of Flash
New Stage Rendering Core based on Flash Player 10
Live videoon Stage Playing at Author Time
Fully interactive video while playing – You can actually pick colors out of video while playing
3D in the Authoring tool
Property Changes over time
Create Motion Tween on Symbol rather than in the
Bezier Path for Tweens
Bone Tools – Works on graphics, movieclips, etc..
Runtime Reverse Animatics – Give the user the ability to manipulate the kinesthetics
Acrobat
Flash Runtime integrated into PDF
PDF is like zip – you can add any file types and it will play directly in the Acrobat Player
Create your own Interface for PDF in Flash/Flex
Flash and PDF can talk to each other
Flash can pull live data from the web, web services, Web API’s and throw that into a PDF and vice versa
CoCoMo is integrated in a PDF
Chat, View of Users, etc.. added to PDF
Sync view with other users in PDF
Flex on Linux
Full Flex Builder running on Linux
Available currently on Adobe Labs
C++ and Flash
He compiled Quake in Flash using C++
Seam Carving
SO INSANE!!!!!!
This was amazing!!!
It sizes and scales without squishing or squeezing the image.
Shai Avidan
Ty Lettau
One big issue with creating desktop apps is that people don’t know why they are on the app. If someone is willing to buy a $1000 application then they are going to know the point of first involvement.
If everything is important then nothing is.
If you are going to do drag and drop make the objects look like physical objects. When the object is able to be dopped then higlight the drop zone and make it painfully obvious that the drop zone is where the user can drop the object.
Seam-line model solves many problems
Contextual controls allow immediate control without mouse movement and additional clicks.
Constantly writing to an XML file that compiles on the fly.
People are not going to wait for a 2 minute compile time. It needs to immediately be played back.
Bring the App to the content. Don’t make users store the content in one more place.
Premiere Express took over six months with 1 engineering 4, manager, Bus dev lead.
Keynote – Bruce Chizen
Amazed at the things that we as developers and designers are doing with the Adobe tools.
4000 people in attendance
Told story about how he got a backstage pass to a Dave Matthews band concert and the drummer, keyboard player and technical crew couldn’t stop talking about the Adobe products to the point where the were almost late going out on stage. He said that is why he does what he does. Because it affects famous people like the Dave Matthews band. He seemed sincere
Adobe Max 2007 – Chicago
Web Analytics
Judah Phillips
The purpose of Web Analytics
Showed the Value Chain from Porter 1985
Use analytics to predict
Nisson, subaru, toyota, VW Adobe, CBS, CNN, HPinvent
Microsoft is producing getknow which shows behavioral trends in users
What are companies Doing with WA?
Gartner Chart that shows 5 levels created by Bill Gassman
Tips to Consider
· The page view is Dead, NO, Long live the page view
· Essentially no different than tracking a website
· With Adobe applications, you determine when to tell the analytics tool too either
·
What skills are needed?
· Director
· Engineer
· Project Manager
· DBA
· Web Developer
· QA
· Business Analyst(s)
Tip #2 Use Proccesses
Web analytics demystified
WA must be considered as part of the site creation process
Involved from the beginning
Endemic Thorghout all phases
Processes:
· Establish ownership
· Alllocate Resources
· Create Site
· Buy Keywords
· Add RSS feed
· Create new subscription page
Circular Pattern – Identify Processes > Review, Update, Analyze As-Is > Design-to-be > Test and implement to-be > Back to Identify Processes
Track ROI
Tip 3 Understand how Web Data is Collected
· Log Files – AwStats
· Packet Sniffers –
· Page Tags – Like Google Tags
· Audience Panels –
· Toolbars – Javscript page tags
· Surveys –
Tip#4 – Determine the Best Technology
· SaaS(ASP)
· In house – /unica, WebTrends, etc..
· Managed Service
· Data Collection Methods
· Reoprting requirements
· Integration requirements
· System Sizing
Tip #5 – Understand teh Vendor Landscape
Unica
Visual Sciences
WebTrends – Once had 55,000 customers WebAnalytics 8.0, SCORE
Omniture – Site Catalyst, Discover 2 that visuals data
Google – 23% penetration rate in Fortune 500, Can’t do some of the things that are heavy and customized
Core Metrics – Retail Analytics, could be the most
Tip #6 – Select you Data Collection MEthod
Tip #7 – Decide what you want to Measure
· Commerce Sites: SEO, Conversion Revenue, Affintity and customer shift
· Media Content Sites : Reach, depth, frequency length, ads
· Service Delivery
· Customer Support
· Branding and Public Relations
· Internal Business Applications
Tip #8 – Identify Goals and KPI
Three Main Concepts:
Actors – A human whose job is to influence a website. Two tyes Decisional Acors A. Direct Actors, Indirect Actors (directors and managers)
2.Non-Decsision Actors – Everyone else
Bring Actors together
Associate Actors with Goals
· Macro goals
· Microgoals
· Action Set
· Translation
KPI – Key Performance Indicators
Tip #9 – Think About Progressive Enhancement
Accessibility
Tip # 10 – Understand the Web Analytics Vocabulary
· Impressions (formerly know as hits)
· Page Views
· Visits
· Unique Vistors
· Time
· Events
The Magic Triangle Quality travels up the triangle which is from top-to-bottom Impressions/Hits > Page Views > Visits > Unique Visitors
EVENT MODELS – Users __ Activity __Events
ENGAGEMENT
INFLUENCE
VELOCITY
ATTENTION
Emetrics Conference
Web Analytics Association
Tip#11 Answer to Key Questions Before you design
Analtyics Facade
GetURLQue
Tip #12 -= Learn how to use GetURL
Available only with Javascript
Allows JS execution to make calls to functions exposed in your web anltyics tool
Flash Event is logged as a page view
Use when you have on
Tip #13 – Learn how to use the getURL Manager and getURL queu
Handles multiple getURL commands er frome
Traffic cop
Tip #14 – Learn how to use the Analytics Facade Class
Class keeps a list of default variables
Tip#15 – Create a Written Specification for Page Names and Events
Critical that each viaeaw in Flash contains a unique page name
Tip#16 – Declare Variables in the HTML Shell
All variables must be passed from Flash app to analytics package
Lots of different vars that can be set
Page titles’Categories
Taxonomy
Campaign ID’s
Other metad data
Tip#17 – Import and Set Up the Analytics Library
Adobe has many Anayltics tools and conmponents
SendAnalyticsEvent
Tip #18 Watch out for common issues with the Web Analytics and Flash
2x counting page views
Complexity
Limitations of 508 characters
Playback delays for animation while javascript is executing
JS error after 32 clicks
localized tracking only – JS/ Flash on Same page
Inaccurate linking
Tip #19 – Verify the implementation
· Are all pages tagged?
· Are all the log files synchronized?
· Is the data being collected?
· Are processes automated?
· Does the system meet requirements for availability, performance, and capacity?
Tip #20 – Particpate in the Web Analytics Industry
· Join the Web Analytics Assoction
· Join the WAA’s Yahoo Forun
· Read the blogs
· grokdotcom.com
kaushik.net/avinash
Optimizing AS3 Performance
Flash Player AVM2 Architecture JIT (2x compiled bytecode and JIT
When should I optimize?
How should I optimize?
Tools
General Optimization Tips
Remove debug Code
Mmxmlc -optimize=true -output HelloWorld
Optimizing Object Interaction
NON-OPTIMIZED
public function onInit()
}
var myFirstVar
}
OPTIMIZED
public function onInit()
}
var myFirstVar:int;
}Unnecessary Object Definitions
for(var:int=0;i<1000000;i++
{}
Use weak References and Array notation when accessing class members
Keep Arrays densely packed
Create a constant and use it within the app – Object instantiation is a huge process hog. Use constants whenever possible.
Take all calculations out of loops.
Don’t use
while(i–)
{
var myReturn = a-b*c/d+e*g +i;
}Use
var bob = a-b*c/d+e*g;
while(i–)
{
var myReturn = bob +i;
}Try Catch is much slower than conditionals
Bitwise operators are much faster than with math.
Create a local variable referencing getters and setters and then call the members.
don’t use
Application.aplication.whatever
instead use
var myAppFriend:Application = Application.apllication.whatever
Build a class that I just need to throw in blocks of code and use getTimer() to preview time to execute.