diff --git a/GoogleAnalytics/binding/ApiDefinition.cs b/GoogleAnalytics/binding/ApiDefinition.cs
index 8229ccd9..6e221c7e 100644
--- a/GoogleAnalytics/binding/ApiDefinition.cs
+++ b/GoogleAnalytics/binding/ApiDefinition.cs
@@ -1,187 +1,305 @@
-//
-// Binding to the GANTracker.h Google Analytics iPhone SDK from Google
-//
-// MIT X11 licensed
-//
-// Copyright 2009 Novell, Inc.
-// Copyright 2011 Xamarin Inc
-//
using System;
+using System.Drawing;
+using MonoTouch.ObjCRuntime;
using MonoTouch.Foundation;
+using MonoTouch.UIKit;
-namespace GoogleAnalytics {
-
+namespace GoogleAnalytics.iOS
+{
[BaseType (typeof (NSObject))]
- interface GAI {
- [Internal]
- [Export ("defaultTracker")]
- IntPtr InternalDefaultTracker { get; set; }
+ interface GAI
+ {
+ [Field ("GAIProduct", "__Internal")]
+ NSString Product { get; }
+
+ [Field ("GAIVersion", "__Internal")]
+ NSString Version { get; }
+
+ [Field ("GAIErrorDomain", "__Internal")]
+ NSString GAIErrorDomain { get; }
+
+ [Export ("defaultTracker", ArgumentSemantic.Assign)] [NullAllowed]
+ IGAITracker DefaultTracker { get; set; }
- [Export ("debug")]
- bool Debug { get; set; }
+ [Export ("logger", ArgumentSemantic.Retain)] [NullAllowed]
+ IGAILogger Logger { get; set; }
- [Export ("optOut")]
- bool OptOut { get; set; }
+ [Export ("optOut", ArgumentSemantic.Assign)]
+ bool OptOut { get; set; }
- [Export ("dispatchInterval")]
- double DispatchInterval { get; set; }
+ [Export ("dispatchInterval", ArgumentSemantic.Assign)]
+ double DispatchInterval { get; set; }
- [Export ("trackUncaughtExceptions")]
- bool TrackUncaughtExceptions { get; set; }
+ [Export ("trackUncaughtExceptions", ArgumentSemantic.Assign)]
+ bool TrackUncaughtExceptions { get; set; }
+
+ [Export ("dryRun", ArgumentSemantic.Assign)]
+ bool DryRun { get; set; }
[Static]
[Export ("sharedInstance")]
GAI SharedInstance { get; }
- [Internal]
+ [Export ("trackerWithName:trackingId:")]
+ IGAITracker Tracker (string name, string trackingId);
+
[Export ("trackerWithTrackingId:")]
- IntPtr InternalGetTracker (string trackingId);
+ IGAITracker Tracker (string trackingId);
+
+ [Export ("removeTrackerByName:")]
+ void RemoveTracker (string name);
[Export ("dispatch")]
void Dispatch ();
+ }
+
+ [BaseType (typeof (NSObject))]
+ interface GAIDictionaryBuilder
+ {
+ [Export ("set:forKey:")]
+ GAIDictionaryBuilder Set (string value, string key);
+
+ [Export ("setAll:")]
+ GAIDictionaryBuilder SetAll (NSDictionary parameters);
+
+ [Export ("get:")]
+ string Get ([NullAllowed] string paramName);
+
+ [Export ("build")]
+ NSMutableDictionary Build ();
+
+ [Export ("setCampaignParametersFromUrl:")]
+ GAIDictionaryBuilder SetCampaignParameters (string urlString);
+ [Static]
+ [Export ("createAppView")]
+ GAIDictionaryBuilder CreateAppView ();
+
+ [Static]
+ [Export ("createEventWithCategory:action:label:value:")]
+ GAIDictionaryBuilder CreateEvent ([NullAllowed] string category, [NullAllowed] string action, [NullAllowed] string label, [NullAllowed] NSNumber number);
+
+ [Static]
+ [Export ("createExceptionWithDescription:withFatal:")]
+ GAIDictionaryBuilder CreateException ([NullAllowed] string description, [NullAllowed] NSNumber fatal);
+
+ [Static]
+ [Export ("createItemWithTransactionId:name:sku:category:price:quantity:currencyCode:")]
+ GAIDictionaryBuilder CreateItem ([NullAllowed] string transactionId, [NullAllowed] string name, [NullAllowed] string sku, [NullAllowed] string category, [NullAllowed] NSNumber price, [NullAllowed] NSNumber quantity, [NullAllowed] string currencyCode);
+
+ [Static]
+ [Export ("createSocialWithNetwork:action:target:")]
+ GAIDictionaryBuilder CreateSocial ([NullAllowed] string network, [NullAllowed] string action, [NullAllowed] string target);
+
+ [Static]
+ [Export ("createTimingWithCategory:interval:name:label:")]
+ GAIDictionaryBuilder CreateTiming ([NullAllowed] string category, [NullAllowed] NSNumber intervalMillis, [NullAllowed] string name, [NullAllowed] string label);
+
+ [Static]
+ [Export ("createTransactionWithId:affiliation:revenue:tax:shipping:currencyCode:")]
+ GAIDictionaryBuilder CreateTransaction ([NullAllowed] string transactionId, [NullAllowed] string affiliation, [NullAllowed] NSNumber revenue, [NullAllowed] NSNumber tax, [NullAllowed] NSNumber shipping, [NullAllowed] string currencyCode);
}
[BaseType (typeof (NSObject))]
- [Protocol]
- interface GAITracker {
- [Export ("trackingId")]
- string TrackingId { get; }
+ interface GAIFields
+ {
+ [Static]
+ [Export ("contentGroupForIndex:")]
+ string ContentGroup (uint index);
- [Export ("appName")]
- string AppName { get; set; }
+ [Static]
+ [Export ("customDimensionForIndex:")]
+ string CustomDimension (uint index);
- [Export ("appId")]
- string AppId { get; set; }
+ [Static]
+ [Export ("customMetricForIndex:")]
+ string CustomMetric (uint index);
- [Export ("appVersion")]
- string AppVersion { get; set; }
+ [Field ("GAITitle", "__Internal")]
+ NSString Title { get; }
- [Export ("anonymize")]
- bool Anonymize { get; set; }
+ [Field ("GAIAppName", "__Internal")]
+ NSString AppName { get; }
- [Export ("useHttps")]
- bool UseHttps { get; set; }
+ [Field ("GAIAppVersion", "__Internal")]
+ NSString AppVersion { get; }
- [Export ("sampleRate")]
- double SampleRate { get; set; }
+ [Field ("GAIAppId", "__Internal")]
+ NSString AppId { get; }
- [Export ("clientId")]
- string ClientId { get; }
+ [Field ("GAIAppInstallerId", "__Internal")]
+ NSString AppInstallerId { get; }
- [Export ("appScreen")]
- string AppScreen { get; set; }
+ [Field ("GAIEventCategory", "__Internal")]
+ NSString EventCategory { get; }
- [Export ("referrerUrl")]
- string ReferrerUrl { get; set; }
+ [Field ("GAIEventAction", "__Internal")]
+ NSString EventAction { get; }
- [Export ("campaignUrl")]
- string CampaignUrl { get; set; }
+ [Field ("GAIEventLabel", "__Internal")]
+ NSString EventLabel { get; }
- [Export ("sessionStart")]
- bool SessionStart { get; set; }
+ [Field ("GAIEventValue", "__Internal")]
+ NSString EventValue { get; }
- [Export ("sessionTimeout")]
- double SessionTimeout { get; set; }
+ [Field ("GAISocialNetwork", "__Internal")]
+ NSString SocialNetwork { get; }
- [Export ("trackView")]
- bool TrackView ();
+ [Field ("GAISocialAction", "__Internal")]
+ NSString SocialAction { get; }
- [Export ("trackView:")]
- bool TrackView (string screen);
+ [Field ("GAISocialTarget", "__Internal")]
+ NSString SocialTarget { get; }
- [Export ("trackEventWithCategory:withAction:withLabel:withValue:")]
- bool TrackEvent(string category, string action, string label, NSNumber value);
+ [Field ("GAITransactionId", "__Internal")]
+ NSString TransactionId { get; }
- [Export ("trackTransaction:")]
- bool TrackTransaction (GAITransaction transaction);
+ [Field ("GAITransactionAffiliation", "__Internal")]
+ NSString TransactionAffiliation { get; }
- [Export ("trackException:withDescription:")]
- bool TrackException (bool isFatal, string format );
+ [Field ("GAITransactionRevenue", "__Internal")]
+ NSString TransactionRevenue { get; }
- [Export ("trackException:withNSException:")]
- bool TrackException (bool isFatal, NSException exception);
+ [Field ("GAITransactionShipping", "__Internal")]
+ NSString TransactionShipping { get; }
- [Export ("trackException:withNSError:")]
- bool TrackException (bool isFatal, NSError error);
+ [Field ("GAITransactionTax", "__Internal")]
+ NSString TransactionTax { get; }
- [Export ("trackTimingWithCategory:withValue:withName:withLabel:")]
- bool TrackTiming (string category, double time, string name, string label);
+ [Field ("GAICurrencyCode", "__Internal")]
+ NSString CurrencyCode { get; }
- [Export ("trackSocial:withAction:withTarget:")]
- bool TrackSocial (string network, string action, string target);
+ [Field ("GAIItemPrice", "__Internal")]
+ NSString ItemPrice { get; }
- [Export ("set:value:")]
- bool Setvalue (string parameterName, string value);
+ [Field ("GAIItemQuantity", "__Internal")]
+ NSString ItemQuantity { get; }
- [Export ("get:")]
- string Get (string parameterName);
+ [Field ("GAIItemSku", "__Internal")]
+ NSString ItemSku { get; }
- [Export ("send:params:")]
- bool Sendparams (string trackType, NSDictionary parameters);
+ [Field ("GAIItemName", "__Internal")]
+ NSString ItemName { get; }
- [Export ("setCustom:dimension:")]
- bool SetCustom (int index, string dimension);
+ [Field ("GAIItemCategory", "__Internal")]
+ NSString ItemCategory { get; }
- [Export ("setCustom:metric:")]
- bool SetCustom (int index, NSNumber metric);
+ [Field ("GAICampaignSource", "__Internal")]
+ NSString CampaignSource { get; }
- [Export ("close")]
- void Close ();
+ [Field ("GAICampaignMedium", "__Internal")]
+ NSString CampaignMedium { get; }
- }
- [BaseType (typeof (NSObject))]
- interface GAITransaction {
- [Export ("transactionId")]
- string TransactionId { get; }
+ [Field ("GAICampaignName", "__Internal")]
+ NSString CampaignName { get; }
- [Export ("affiliation")]
- string Affiliation { get; }
+ [Field ("GAICampaignKeyword", "__Internal")]
+ NSString CampaignKeyword { get; }
- [Export ("revenueMicros")]
- long RevenueMicros { get; set; }
+ [Field ("GAICampaignContent", "__Internal")]
+ NSString CampaignContent { get; }
- [Export ("taxMicros")]
- long TaxMicros { get; set; }
+ [Field ("GAICampaignId", "__Internal")]
+ NSString CampaignId { get; }
- [Export ("shippingMicros")]
- long ShippingMicros { get; set; }
+ [Field ("GAITimingCategory", "__Internal")]
+ NSString TimingCategory { get; }
- [Export ("items")]
- GAITransactionItem[] Items { get; }
+ [Field ("GAITimingVar", "__Internal")]
+ NSString TimingVar { get; }
- [Static]
- [Export ("transactionWithId:withAffiliation:")]
- GAITransaction TransactionFrom (string transactionId, string affiliation);
+ [Field ("GAITimingValue", "__Internal")]
+ NSString TimingValue { get; }
+
+ [Field ("GAITimingLabel", "__Internal")]
+ NSString TimingLabel { get; }
+
+ [Field ("GAIExDescription", "__Internal")]
+ NSString ExDescription { get; }
+
+ [Field ("GAIExFatal", "__Internal")]
+ NSString ExFatal { get; }
+
+ [Field ("GAISampleRate", "__Internal")]
+ NSString SampleRate { get; }
+
+ [Field ("GAIAppView", "__Internal")]
+ NSString AppView { get; }
+
+ [Field ("GAIEvent", "__Internal")]
+ NSString Event { get; }
+
+ [Field ("GAISocial", "__Internal")]
+ NSString Social { get; }
- [Export ("addItem:")]
- void AddItem (GAITransactionItem item);
+ [Field ("GAITransaction", "__Internal")]
+ NSString Transaction { get; }
- [Export ("addItemWithCode:name:category:priceMicros:quantity:")]
- void AddItem (string productCode, string productName, string productCategory, long priceMicros, int quantity);
+ [Field ("GAIItem", "__Internal")]
+ NSString Item { get; }
+ [Field ("GAIException", "__Internal")]
+ NSString Exception { get; }
+
+ [Field ("GAITiming", "__Internal")]
+ NSString Timing { get; }
}
+
+ interface IGAILogger { }
+
+ [Protocol]
+ [Model]
[BaseType (typeof (NSObject))]
- interface GAITransactionItem {
- [Export ("productCode")]
- string ProductCode { get; }
+ interface GAILogger
+ {
+ [Abstract]
+ [Export ("logLevel", ArgumentSemantic.Assign)]
+ GAILogLevel LogLevel { get; set; }
+
+ [Abstract]
+ [Export ("verbose:")]
+ void Verbose (string message);
+
+ [Abstract]
+ [Export ("info:")]
+ void Info (string message);
+
+ [Abstract]
+ [Export ("warning:")]
+ void Warning (string message);
+
+ [Abstract]
+ [Export ("error:")]
+ void Error (string message);
+ }
+
+ [BaseType (typeof (UIViewController))]
+ interface GAITrackedViewController
+ {
+ [Export ("tracker", ArgumentSemantic.Assign)] [NullAllowed]
+ IGAITracker Tracker { get; set; }
- [Export ("productName")]
- string ProductName { get; set; }
+ [Export ("screenName", ArgumentSemantic.Copy)] [NullAllowed]
+ string ScreenName { get; set; }
+ }
- [Export ("productCategory")]
- string ProductCategory { get; set; }
+ interface IGAITracker { }
- [Export ("priceMicros")]
- long PriceMicros { get; set; }
+ [Protocol]
+ [BaseType (typeof (NSObject))]
+ interface GAITracker
+ {
+ [Export ("name")]
+ string GetName ();
- [Export ("quantity")]
- int Quantity { get; set; }
+ [Export ("set:value:")]
+ void Set (string parameterName, [NullAllowed] string value);
- [Static]
- [Export ("itemWithCode:name:category:priceMicros:quantity:")]
- GAITransactionItem ItemFrom (string productCode, string productName, string productCategory, long priceMicros, int quantity);
+ [Export ("get:")]
+ string Get ([NullAllowed] string parameterName);
+ [Export ("send:")]
+ void Send ([NullAllowed] NSDictionary parameters);
}
-
}
+
diff --git a/GoogleAnalytics/binding/GoogleAnalytics.csproj b/GoogleAnalytics/binding/GoogleAnalytics.iOS.csproj
similarity index 83%
rename from GoogleAnalytics/binding/GoogleAnalytics.csproj
rename to GoogleAnalytics/binding/GoogleAnalytics.iOS.csproj
index f332e529..299f4df0 100644
--- a/GoogleAnalytics/binding/GoogleAnalytics.csproj
+++ b/GoogleAnalytics/binding/GoogleAnalytics.iOS.csproj
@@ -5,12 +5,12 @@
AnyCPU
10.0.0
2.0
- {427ECD83-C8EA-4F81-B499-6D07E4EBF026}
+ {AE398C43-341D-426C-8398-00D9BE560D6A}
{F5B4F3BC-B597-4E2B-B552-EF5D8A32436F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Library
- GoogleAnalytics
+ GoogleAnalytics.iOS
Resources
- GoogleAnalytics
+ GoogleAnalytics.iOS
true
@@ -47,12 +47,11 @@
-
+
-
- libGoogleAnalytics.a
+
+ libGoogleAnalyticsServices.a
-
\ No newline at end of file
diff --git a/GoogleAnalytics/binding/Makefile b/GoogleAnalytics/binding/Makefile
index a8d96f89..1810523f 100755
--- a/GoogleAnalytics/binding/Makefile
+++ b/GoogleAnalytics/binding/Makefile
@@ -4,32 +4,17 @@ SMCS=/Developer/MonoTouch/usr/bin/smcs
CLANG=clang -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
MONOXBUILD=/Library/Frameworks/Mono.framework/Commands/xbuild
-all: GoogleAnalytics.dll
+all: GoogleAnalytics.iOS.dll
-GoogleAnalyticsiOS_2.0beta4.zip:
- curl -O http://dl.google.com/dl/gaformobileapps/GoogleAnalyticsiOS_2.0beta4.zip
+GoogleAnalyticsServicesiOS_3.02.zip:
+ curl -O http://dl.google.com/googleanalyticsservices/GoogleAnalyticsServicesiOS_3.02.zip
-#STUBS = armv6.o armv7.o i386.o
-#
-#armv6.o: stub.m
-# $(CLANG) -c -arch armv6 stub.m -o armv6.o
-#
-#armv7.o: stub.m
-# $(CLANG) -c -arch armv7 stub.m -o armv7.o
-#
-#i386.o: stub.m Makefile
-# clang -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -fobjc-abi-version=2 -fobjc-legacy-dispatch -c -arch i386 stub.m -o i386.o
+libGoogleAnalyticsServices.a: GoogleAnalyticsServicesiOS_3.02.zip
+ unzip -p $< 'GoogleAnalyticsServicesiOS_3.02/libGoogleAnalyticsServices.a' > $@
-
-libGoogleAnalytics.a: GoogleAnalyticsiOS_2.0beta4.zip
- unzip -p $< 'GoogleAnalyticsiOS_2.0beta4/Library/libGoogleAnalytics.a' > $@
-
-GoogleAnalytics.dll: Makefile ApiDefinition.cs StructsAndEnums.cs extras.cs libGoogleAnalytics.a
- $(MONOXBUILD) /p:Configuration=Release GoogleAnalytics.csproj
- cp bin/Release/GoogleAnalytics.dll GoogleAnalytics.dll
- #-mkdir -p ios
- #$(BTOUCH) --out=$@ -e googleanalytics.cs enums.cs --sourceonly=list --tmpdir=ios
- #$(SMCS) $(BUILD_FLAGS) -out:$@ @list enums.cs extras.cs AssemblyInfo.cs -r:monotouch.dll -res:libGoogleAnalytics.a,libGoogleAnalytics.a
+GoogleAnalytics.iOS.dll: Makefile ApiDefinition.cs StructsAndEnums.cs libGoogleAnalyticsServices.a
+ $(MONOXBUILD) /p:Configuration=Release GoogleAnalytics.iOS.csproj
+ cp bin/Release/GoogleAnalytics.iOS.dll GoogleAnalytics.iOS.dll
clean:
-rm -rf list ios *.a *.dll *.o *.zip bin/ obj/
diff --git a/GoogleAnalytics/binding/StructsAndEnums.cs b/GoogleAnalytics/binding/StructsAndEnums.cs
index d828cae9..561f4704 100644
--- a/GoogleAnalytics/binding/StructsAndEnums.cs
+++ b/GoogleAnalytics/binding/StructsAndEnums.cs
@@ -1,14 +1,21 @@
-namespace GoogleAnalytics {
+using System;
- public enum GAIErrorCode {
- // This error code indicates that there was no error. Never used.
+namespace GoogleAnalytics.iOS
+{
+ public enum GAIErrorCode
+ {
NoError = 0,
-
- // This error code indicates that there was a database-related error.
DatabaseError,
+ NetworkError
+ }
- // This error code indicates that there was a network-related error.
- NetworkError,
+ public enum GAILogLevel : uint
+ {
+ None = 0,
+ Error = 1,
+ Warning = 2,
+ Info = 3,
+ Verbose = 4
}
+}
-}
\ No newline at end of file
diff --git a/GoogleAnalytics/binding/extras.cs b/GoogleAnalytics/binding/extras.cs
deleted file mode 100644
index ae2ea67f..00000000
--- a/GoogleAnalytics/binding/extras.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System;
-
-namespace GoogleAnalytics {
-
- public partial class GAI
- {
- public GAITracker DefaultTracker {
- get {
- return new GAITracker (InternalDefaultTracker);
- }
- }
-
- public GAITracker GetTracker(string trackingId) {
- return new GAITracker (InternalGetTracker(trackingId));
- }
- }
-
-}
\ No newline at end of file
diff --git a/GoogleAnalytics/binding/libGoogleAnalytics.linkwith.cs b/GoogleAnalytics/binding/libGoogleAnalytics.linkwith.cs
deleted file mode 100644
index 3b7ad106..00000000
--- a/GoogleAnalytics/binding/libGoogleAnalytics.linkwith.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-using System;
-using MonoTouch.ObjCRuntime;
-
-[assembly: LinkWith ("libGoogleAnalytics.a", LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Simulator, ForceLoad = true, Frameworks = "SystemConfiguration CFNetwork CoreData")]
diff --git a/GoogleAnalytics/binding/libGoogleAnalyticsServices.linkwith.cs b/GoogleAnalytics/binding/libGoogleAnalyticsServices.linkwith.cs
new file mode 100644
index 00000000..800468f9
--- /dev/null
+++ b/GoogleAnalytics/binding/libGoogleAnalyticsServices.linkwith.cs
@@ -0,0 +1,50 @@
+using System;
+using MonoTouch.ObjCRuntime;
+
+[assembly: LinkWith ("libGoogleAnalyticsServices.a", LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Simulator, Frameworks = "CoreData SystemConfiguration AdSupport", SmartLink = true, ForceLoad = true, LinkerFlags = "-lz -lsqlite3.0 " +
+ "-Xlinker -alias -Xlinker _kGAIProduct -Xlinker _GAIProduct " +
+ "-Xlinker -alias -Xlinker _kGAIVersion -Xlinker _GAIVersion " +
+ "-Xlinker -alias -Xlinker _kGAIErrorDomain -Xlinker _GAIErrorDomain " +
+ "-Xlinker -alias -Xlinker _kGAITitle -Xlinker _GAITitle " +
+ "-Xlinker -alias -Xlinker _kGAIAppName -Xlinker _GAIAppName " +
+ "-Xlinker -alias -Xlinker _kGAIAppVersion -Xlinker _GAIAppVersion " +
+ "-Xlinker -alias -Xlinker _kGAIAppId -Xlinker _GAIAppId " +
+ "-Xlinker -alias -Xlinker _kGAIAppInstallerId -Xlinker _GAIAppInstallerId " +
+ "-Xlinker -alias -Xlinker _kGAIEventCategory -Xlinker _GAIEventCategory " +
+ "-Xlinker -alias -Xlinker _kGAIEventAction -Xlinker _GAIEventAction " +
+ "-Xlinker -alias -Xlinker _kGAIEventLabel -Xlinker _GAIEventLabel " +
+ "-Xlinker -alias -Xlinker _kGAIEventValue -Xlinker _GAIEventValue " +
+ "-Xlinker -alias -Xlinker _kGAISocialNetwork -Xlinker _GAISocialNetwork " +
+ "-Xlinker -alias -Xlinker _kGAISocialAction -Xlinker _GAISocialAction " +
+ "-Xlinker -alias -Xlinker _kGAISocialTarget -Xlinker _GAISocialTarget " +
+ "-Xlinker -alias -Xlinker _kGAITransactionId -Xlinker _GAITransactionId " +
+ "-Xlinker -alias -Xlinker _kGAITransactionAffiliation -Xlinker _GAITransactionAffiliation " +
+ "-Xlinker -alias -Xlinker _kGAITransactionRevenue -Xlinker _GAITransactionRevenue " +
+ "-Xlinker -alias -Xlinker _kGAITransactionShipping -Xlinker _GAITransactionShipping " +
+ "-Xlinker -alias -Xlinker _kGAITransactionTax -Xlinker _GAITransactionTax " +
+ "-Xlinker -alias -Xlinker _kGAICurrencyCode -Xlinker _GAICurrencyCode " +
+ "-Xlinker -alias -Xlinker _kGAIItemPrice -Xlinker _GAIItemPrice " +
+ "-Xlinker -alias -Xlinker _kGAIItemQuantity -Xlinker _GAIItemQuantity " +
+ "-Xlinker -alias -Xlinker _kGAIItemSku -Xlinker _GAIItemSku " +
+ "-Xlinker -alias -Xlinker _kGAIItemName -Xlinker _GAIItemName " +
+ "-Xlinker -alias -Xlinker _kGAIItemCategory -Xlinker _GAIItemCategory " +
+ "-Xlinker -alias -Xlinker _kGAICampaignSource -Xlinker _GAICampaignSource " +
+ "-Xlinker -alias -Xlinker _kGAICampaignMedium -Xlinker _GAICampaignMedium " +
+ "-Xlinker -alias -Xlinker _kGAICampaignName -Xlinker _GAICampaignName " +
+ "-Xlinker -alias -Xlinker _kGAICampaignKeyword -Xlinker _GAICampaignKeyword " +
+ "-Xlinker -alias -Xlinker _kGAICampaignContent -Xlinker _GAICampaignContent " +
+ "-Xlinker -alias -Xlinker _kGAICampaignId -Xlinker _GAICampaignId " +
+ "-Xlinker -alias -Xlinker _kGAITimingCategory -Xlinker _GAITimingCategory " +
+ "-Xlinker -alias -Xlinker _kGAITimingVar -Xlinker _GAITimingVar " +
+ "-Xlinker -alias -Xlinker _kGAITimingValue -Xlinker _GAITimingValue " +
+ "-Xlinker -alias -Xlinker _kGAITimingLabel -Xlinker _GAITimingLabel " +
+ "-Xlinker -alias -Xlinker _kGAIExDescription -Xlinker _GAIExDescription " +
+ "-Xlinker -alias -Xlinker _kGAIExFatal -Xlinker _GAIExFatal " +
+ "-Xlinker -alias -Xlinker _kGAISampleRate -Xlinker _GAISampleRate " +
+ "-Xlinker -alias -Xlinker _kGAIAppView -Xlinker _GAIAppView " +
+ "-Xlinker -alias -Xlinker _kGAIEvent -Xlinker _GAIEvent " +
+ "-Xlinker -alias -Xlinker _kGAISocial -Xlinker _GAISocial " +
+ "-Xlinker -alias -Xlinker _kGAITransaction -Xlinker _GAITransaction " +
+ "-Xlinker -alias -Xlinker _kGAIItem -Xlinker _GAIItem " +
+ "-Xlinker -alias -Xlinker _kGAIException -Xlinker _GAIException " +
+ "-Xlinker -alias -Xlinker _kGAITiming -Xlinker _GAITiming")]