UNPKG

lincd-quora-ads

Version:

An API wrapper for Quora's Ads API.

116 lines (115 loc) 3.85 kB
import { Account as Acc } from "lincd-ads/lib/shapes/Account"; import { Ad } from "lincd-ads/lib/shapes/Ad"; import { AdSet } from "lincd-ads/lib/shapes/AdSet"; import { Campaign } from "lincd-ads/lib/shapes/Campaign"; type attributionWindows = "CLICK_28_DAY" | "VIEW_1_DAY"; type conversionTypes = "Generic" | "AppInstall" | "Purchase" | "GenerateLead" | "CompleteRegistration" | "AddPaymentInfo" | "AddToCart" | "AddToWishlist" | "InitiateCheckout" | "Search"; export type field = "accountId" | "accountName" | "accountCurrency" | "adId" | "adName" | "adSetId" | "adSetName" | "bidAmount" | "campaignId" | "campaignName" | "clicks" | "conversions" | "conversionRate" | "cpc" | "ctr" | "dailyBudget" | "impressions" | "lifetimeBudget" | "landingURL" | "spend" | "status" | "leadsGenerated" | "formCompletionRate" | "costPerLead"; type granularity = "DAY" | "TOTAL"; export type level = "AD" | "AD_SET" | "CAMPAIGN" | "ACCOUNT"; type order = "ASCENDING" | "DESCENDING"; type presetTimeRange = "LAST_30_DAYS" | "TODAY" | "YESTERDAY" | "THIS_MONTH" | "LAST_MONTH" | "LAST_7_DAYS" | "LAST_14_DAYS" | "ALL_TIME"; type statusResponse = "RUNNING"; export interface QuoraOptions { attributionWindows?: attributionWindows[]; conversionTypes?: conversionTypes[]; endDate?: Date; fields?: field[]; granularity?: granularity; level?: level; limit?: number; offset?: number; order?: order; presetTimeRange?: presetTimeRange; sort?: field; sortConversionType?: conversionTypes; startDate?: Date; summary?: boolean; } interface ConversionsResponse { Generic?: number; AppInstall?: number; Purchase?: number; GenerateLead?: number; CompleteRegistration?: number; AddPaymentInfo?: number; AddToCart?: number; AddToWishlist?: number; InitiateCheckout?: number; Search?: number; } interface ConversionRateResponse { Generic?: number; AppInstall?: number; Purchase?: number; GenerateLead?: number; CompleteRegistration?: number; AddPaymentInfo?: number; AddToCart?: number; AddToWishlist?: number; InitiateCheckout?: number; Search?: number; } interface Account { accountId?: number; accountName?: string; } export interface AccountResponse { data?: Account[]; } export interface DataResponse { clicks?: number; conversions?: ConversionsResponse; conversionRate?: ConversionRateResponse; cpc?: number; ctr?: number; impressions?: number; spend?: number; leadsGenerated?: number; formCompletionRate?: number; costPerLead?: number; startDate?: string; endDate?: string; accountId?: number; accountName?: string; accountCurrency?: string; adId?: number; adName?: string; adSetId?: number; adSetName?: string; bidAmount?: number; campaignId?: number; campaignName?: string; dailyBudget?: number; lifetimeBudget?: number; landingURL?: string; status?: statusResponse; } export interface PublicDataResponse { id?: string; publicName?: string; } export interface Paging { totalResults: number; next?: string; previous?: string; } export type ResolvedQuoraResponse<T = DataResponse[]> = { data: T; endDate: string; startDate: string; paging?: Paging; }; type QuoraJSON<T> = Promise<ResolvedQuoraResponse<T>>; export interface QuoraResponse<T = DataResponse[]> extends Response { json(): QuoraJSON<T>; } export type QuoraAPICall = (id: number, options?: QuoraOptions) => Promise<QuoraResponse>; export type ResponseMapping = (string | number | [])[]; export interface AccountData { account: Acc; ads: Ad[]; adSets: AdSet[]; campaigns: Campaign[]; } export {};