diff --git a/facebook-pixel/facebook-pixel-tests.ts b/facebook-pixel/facebook-pixel-tests.ts
new file mode 100644
index 000000000..d4de318e7
--- /dev/null
+++ b/facebook-pixel/facebook-pixel-tests.ts
@@ -0,0 +1,41 @@
+///
+
+fbq('init', '');
+fbq('track', 'PageView');
+
+// Standard event (can be used for conversion tracking
+// and optimizing in addition to audience building)
+var purchaseParam:facebook.Pixel.PurchaseParameters = {currency: 'EUR', value: 15.23};
+purchaseParam["Test"] = 44; // add custom parameter
+fbq('track', 'Purchase', purchaseParam);
+
+// Legacy conversion event (can only be used for conversion
+// tracking and optimizing)
+
+// Custom event (can only be used for audience building)
+
+var custom_params:any = {custom_param: 'custom_value'};
+fbq('trackCustom', 'MyCustomEvent', custom_params);
+
+// Reach customers that viewed a product in the 'Shoes' category
+// with a price greater than $100
+fbq('track', 'ViewContent', {
+ content_name: 'Really Fast Running Shoes',
+ content_category: 'Apparel & Accessories > Shoes',
+ content_ids: ['1234'],
+ content_type: 'product',
+ value: 0.50,
+ currency: 'USD'
+});
+
+// Multiple events can also be added to each page. Ex: Reach visitors
+// based on information about them and how they got to the page
+// that Registered in the last n days
+fbq('track', 'ViewContent', {
+ content_name: 'The Avengers Trailer',
+ content_category: 'Entertainment',
+ value: 1.50,
+ currency: 'USD',
+});
+
+fbq('track', 'CompleteRegistration', {currency: 'USD', value: 0.75});
diff --git a/facebook-pixel/facebook-pixel.d.ts b/facebook-pixel/facebook-pixel.d.ts
new file mode 100644
index 000000000..d5c9b88a4
--- /dev/null
+++ b/facebook-pixel/facebook-pixel.d.ts
@@ -0,0 +1,123 @@
+// Type definitions for the Facebook Pixel Tag API
+// Project: https://developers.facebook.com/docs/ads-for-websites/tag-api/
+// Definitions by: Noctis Hsu
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+declare var fbq:facebook.Pixel.Event;
+
+
+declare module facebook.Pixel {
+ interface Event {
+ (eventType:string, InitialAppId:string):void;
+ (eventType:string, eventName:string):void;
+ (eventType:string, eventName:string, parameters:facebook.Pixel.ViewContentParameters):void;
+ (eventType:string, eventName:string, parameters:ViewContentParameters):void;
+ (eventType:string, eventName:string, parameters:SearchParameters):void;
+ (eventType:string, eventName:string, parameters:AddToCartParameters):void;
+ (eventType:string, eventName:string, parameters:AddToWishlistParameters):void;
+ (eventType:string, eventName:string, parameters:InitiateCheckoutParameters):void;
+ (eventType:string, eventName:string, parameters:AddPaymentInfoParameters):void;
+ (eventType:string, eventName:string, parameters:PurchaseParameters):void;
+ (eventType:string, eventName:string, parameters:LeadParameters):void;
+ (eventType:string, eventName:string, parameters:CompleteRegistrationParameters):void;
+
+ (eventType:string, eventName:string, parameters:facebook.Pixel.DPA.AddToCartParameters):void;
+ (eventType:string, eventName:string, parameters:facebook.Pixel.DPA.PurchaseParameters):void;
+ (eventType:string, eventName:string, parameters:facebook.Pixel.DPA.ViewContentParameters):void;
+
+ // custom event
+ //(eventType:string, eventName:string, parameters:any):void;
+ }
+
+
+ interface ViewContentParameters {
+ value?:number;
+ currency?:string;
+ content_name?:string;
+ content_type?:string;
+ content_ids?:string[];
+ content_category?:string;
+ }
+
+ interface SearchParameters {
+ value?:number;
+ currency?:string;
+ content_category?:string;
+ content_ids?:string[];
+ search_string?:string;
+ }
+
+ interface AddToCartParameters {
+ value?:number;
+ currency?:string;
+ content_name?:string;
+ content_type?:string;
+ content_ids?:string[];
+ }
+
+ interface AddToWishlistParameters {
+ value?:number;
+ currency?:string;
+ content_name?:string;
+ content_category?:string;
+ content_ids?:string[];
+ }
+
+ interface InitiateCheckoutParameters {
+ value?:number;
+ currency?:string;
+ content_name?:string;
+ content_category?:string;
+ content_ids?:string[];
+ num_items?:number;
+ }
+
+ interface AddPaymentInfoParameters {
+ value?:number;
+ currency?:string;
+ content_category?:string;
+ content_ids?:string[];
+ }
+
+ interface PurchaseParameters {
+ value:number;
+ currency:string;
+ content_name?:string;
+ content_type?:string;
+ content_ids?:string[];
+ num_items?:number;
+ order_id?:string;
+ }
+
+ interface LeadParameters {
+ value?:number;
+ currency?:string;
+ content_name?:string;
+ content_category?:string;
+ }
+
+ interface CompleteRegistrationParameters {
+ value?:number;
+ currency?:string;
+ content_name?:string;
+ status?:string;
+ }
+}
+
+// For Facebook Tag API using Dynamic Product Ads
+declare module facebook.Pixel.DPA {
+
+ interface ViewContentParameters extends facebook.Pixel.ViewContentParameters {
+ content_type:string;
+ content_ids:string[];
+ }
+
+ interface AddToCartParameters extends facebook.Pixel.AddToCartParameters {
+ content_type:string;
+ content_ids:string[];
+ }
+
+ interface PurchaseParameters extends facebook.Pixel.PurchaseParameters {
+ content_type:string;
+ content_ids:string[];
+ }
+}