Add Facebook pixel tag api definitely typed

This commit is contained in:
Noctis Hsu
2016-04-01 13:01:08 +08:00
parent e937b3e64a
commit 3b2eb4d8fb
2 changed files with 164 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
/// <reference path="facebook-tag-api.d.ts" />
fbq('init', '<FB_PIXEL_ID>');
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});
+123
View File
@@ -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 <https://github.com/noctishsu/>
// 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[];
}
}