Versions in this module Expand all Collapse all v0 v0.1.0 Apr 14, 2023 Changes in this version + const CampaignMaximumBudget + const CampaignMaximumImpBudget + const CampaignMinimumBudget + const DefaultServer + const Version + var AllApps = []App + var AllTime = time.Unix(-1, 0) + var DefaultApps = []App + var ErrBadUID = errors.New("bad user id") + var ErrCampaignIsNil = errors.New("campaign is nil") + var ErrDateRange = errors.New("bad or missing date range") + var ErrInternal = errors.New("internal error") + var ErrInvalidAdSize = fmt.Errorf("invalid ad size, the accepted sizes are: %s", AllowedAdRectsString()) + var ErrInvalidAgencyID = errors.New("invalid agency id") + var ErrInvalidBudget = fmt.Errorf("invalid budget, must be between $%d and %d", CampaignMinimumBudget, ...) + var ErrInvalidEmail = errors.New("invalid email") + var ErrInvalidImpBudget = fmt.Errorf("invalid imp budget, must be less than %d", CampaignMaximumImpBudget) + var ErrInvalidLanding = errors.New("invalid landing url") + var ErrInvalidName = errors.New("invalid name") + var ErrInvalidPassword = errors.New("password must be at least 8 characters") + var ErrInvalidSSyncClient = errors.New("invalid ssync client") + var ErrInvalidSchedule = errors.New("invalid schedule provided") + var ErrMissingAdImage = errors.New("missing ad image or third party code") + var ErrMissingAds = errors.New("must pass at least one ad") + var ErrMissingCID = errors.New("missing campaign id") + var ErrMissingClicksServer = errors.New("missing clicks server") + var ErrMissingLocations = errors.New("must specify at least one proximity location") + var ErrMissingProxSegName = errors.New("missing proximity segment name") + var ErrMissingSegID = errors.New("missing segment id") + var ErrMissingSegName = errors.New("missing segment name") + var ErrMissingUID = errors.New("missing user id") + var ErrMissingVisitsServer = errors.New("missing visits server") + var ErrRequestIsNil = errors.New("request is nil") + func AllowedAdRectsString() string + func DateToTime(date string) time.Time + func MidnightToMidnight(t time.Time) (start, end time.Time) + func RawMarshal(v interface{}) *json.RawMessage + func SetApp(cmp *Campaign, app App) + type Ad struct + Active bool + AdType string + AdvertiserID string + ClickTracker string + Clicks int + Conv int + GroupID string + Height int + ID string + ImageKey string + ImageLocation string + ImpTracker string + Imps int + LandingURL string + Name string + Size string + ThirdPartyCode string + Width int + type AdGroup struct + AdCount int + ID string + Name string + type AdReport struct + Clicks int64 + ID string + Imp int64 + Spent float64 + type AdsListItem struct + Data *Ad + ID string + type Advertiser struct + AgencyID string + ID string + Name string + NumCampaigns int + PathID string + Status bool + type Agency struct + ID string + Name string + type App interface + Name func() string + func GetApp(name string, val *json.RawMessage) (app App, err error) + type AppAdvBidding struct + BaseCPM float64 + MaxCPM float64 + Status bool + func (AppAdvBidding) Name() string + type AppDomainTargeting struct + Banned []string + Targeted []string + func (AppDomainTargeting) Name() string + type AppGeography struct + Cities []string + DMAs []string + States []string + Status bool + Zipcodes []string + func (AppGeography) Name() string + type AppPacing struct + Status bool + func (AppPacing) Name() string + type AppSearchRetargeting struct + List []string + Status bool + func (AppSearchRetargeting) Name() string + type Campaign struct + Active bool + Adgroups []string + Apps map[string]*json.RawMessage + Archived bool + Budget float64 + Created int64 + End int64 + ID string + ImpBudget uint32 + Name string + Notes string + OwnerID string + Scheduled bool + Searches []string + Segments []string + Start int64 + type CampaignReport struct + Clicks int64 + Domains map[string]ImpClick + ID string + Imp int64 + Period uint32 + Spent float64 + Visits []Visit + type Click = struct + AdID string + TS int64 + TTC int + UUID string + X int + Y int + type Client struct + func New(apiKey string) *Client + func NewWithAddr(apiAddr string, apiKey string) *Client + func (c *Client) AsUser(ctx context.Context, uid string) (nc *Client, err error) + func (c *Client) Clicks(ctx context.Context, clicksAddr string, date time.Time, uid, cid string) (out []byte, err error) + func (c *Client) CreateAd(ctx context.Context, uid string, req *CreateAdRequest) (ad *Ad, err error) + func (c *Client) CreateAdFromFile(ctx context.Context, uid string, req *CreateAdRequest, filename string) (ad *Ad, err error) + func (c *Client) CreateAdGroup(ctx context.Context, uid, name string) (id string, err error) + func (c *Client) CreateAdvertiser(ctx context.Context, req *CreateAdvertiserRequest) (uid string, err error) + func (c *Client) CreateCampaign(ctx context.Context, uid string, cmp *Campaign) (string, error) + func (c *Client) CreateDraftCampaign(ctx context.Context, uid string, cmp *Campaign) (string, error) + func (c *Client) CreateFullCampaign(ctx context.Context, uid string, req *CreateFullCampaignRequest) (cmp *Campaign, err error) + func (c *Client) CreateProximitySegment(ctx context.Context, uid string, seg *ProximitySegment) (id string, err error) + func (c *Client) CreateSegment(ctx context.Context, uid string, seg *Segment) (id string, err error) + func (c *Client) CurrentKey() string + func (c *Client) DeleteAd(ctx context.Context, adID string) (err error) + func (c *Client) DeleteAdGroup(ctx context.Context, adgroupID string) (err error) + func (c *Client) DeleteCampaign(ctx context.Context, cid string) error + func (c *Client) DeleteDraftCampaign(ctx context.Context, cid string) error + func (c *Client) DeleteProximitySegment(ctx context.Context, segID string) (err error) + func (c *Client) DeleteSegment(ctx context.Context, segID string) (err error) + func (c *Client) GetAPIVersion(ctx context.Context) (ver string, err error) + func (c *Client) GetAdsReport(ctx context.Context, uid string, start, end time.Time) (rp map[string]*AdReport, err error) + func (c *Client) GetCampaign(ctx context.Context, cid string) (*Campaign, error) + func (c *Client) GetCampaignReport(ctx context.Context, uid, cid string, start, end time.Time) (cs *CampaignReport, err error) + func (c *Client) GetDraftCampaign(ctx context.Context, cid string) (*Campaign, error) + func (c *Client) GetHeatmap(ctx context.Context, uid string) (out *Heatmap, err error) + func (c *Client) GetUserAPIKey(ctx context.Context, uid string) (apiKey string, err error) + func (c *Client) GetUserID(ctx context.Context) (uid string, err error) + func (c *Client) ListAdGroups(ctx context.Context, uid string) (ags map[string]*AdGroup, err error) + func (c *Client) ListAds(ctx context.Context, uid string) (ads map[string]*Ad, err error) + func (c *Client) ListAdsByAdGroup(ctx context.Context, uid, adGroupID string) (map[string]*Ad, error) + func (c *Client) ListAdsFilter(ctx context.Context, uid string, filterFn func(ad *Ad) bool) (ads map[string]*Ad, err error) + func (c *Client) ListAdvertisers(ctx context.Context, agencyID string) (out map[string]*Advertiser, err error) + func (c *Client) ListAgencies(ctx context.Context) (out map[string]*Agency, err error) + func (c *Client) ListCampaigns(ctx context.Context, uid string) (map[string]*Campaign, error) + func (c *Client) ListDraftCampaigns(ctx context.Context, uid string) (map[string]*Campaign, error) + func (c *Client) ListProximitySegments(ctx context.Context, uid string) (segs map[string]*ProximitySegment, err error) + func (c *Client) ListSegments(ctx context.Context, uid string) (segs map[string]*Segment, err error) + func (c *Client) ListStoreVisits(ctx context.Context, uid string) (segs map[string]*ProximitySegment, err error) + func (c *Client) RawRequest(method, endpoint string, req, resp interface{}) (err error) + func (c *Client) RawRequestCtx(ctx context.Context, method, endpoint string, req, resp interface{}) (err error) + func (c *Client) Receipts(ctx context.Context, sc *ssync.Client, date time.Time, uid, cid string) (out []byte, err error) + func (c *Client) UpdateAd(ctx context.Context, ad *Ad) error + func (c *Client) UpdateCampaign(ctx context.Context, cmp *Campaign) error + func (c *Client) UpdateDraftCampaign(ctx context.Context, cmp *Campaign) error + func (c *Client) UpdateProximitySegment(ctx context.Context, seg *ProximitySegment) (err error) + func (c *Client) UpdateSegment(ctx context.Context, seg *Segment) (err error) + func (c *Client) UpgradeCampaign(ctx context.Context, uid, draftCampaignID string) (cid string, err error) + func (c *Client) Visits(ctx context.Context, visitsAddr string, date time.Time, uid, cid string) (out []byte, err error) + type Coords struct + Latitude float64 + Longitude float64 + type CreateAdRequest struct + AdImage interface{} + ClickTracker string + Encoded bool + GroupID string + Height int + ImpTracker string + LandingURL string + Name string + ThirdPartyCode string + Width int + type CreateAdvertiserRequest struct + AdvertiserFee int + AgencyID string + Email string + Name string + Password string + PasswordConfirm string + Status bool + type CreateFullCampaignRequest struct + Ads []*CreateAdRequest + Campaign *Campaign + CampaignApps []App + IsDraft bool + ProximitySegment []*ProximitySegment + Segments []*Segment + func (req *CreateFullCampaignRequest) Rollback(c *Client) + type Heatmap struct + AdsList []*AdsListItem + Clicks []*Click + func (hm *Heatmap) AllAds() (out map[string]*Ad) + func (hm *Heatmap) ClicksByAds() (out map[string][]*Click) + type ImpClick struct + Clicks int64 + Imp int64 + type Location struct + Center Coords + ID string + Label string + Points []Coords + Radius float64 + Type string + type ProximitySegment struct + DeletedLocations []*Location + ID string + IDCounter int + Locations []*Location + Lookback int16 + Name string + OwnerID string + type Receipt struct + AdID string + AdvID string + Amount float64 + CID string + Credits int64 + Domain string + ExID string + ExImpID string + ExInfo string + ImpID string + Inventory string + Lat float64 + Long float64 + PxID string + SegID string + Services string + Timestamp int64 + UUID string + type Rect struct + Height int + Width int + type Segment struct + Active bool + AdvertiserID string + AvgPurchase int + ExcludeParams []string + IncludeParams []string + LastVisitedBetween []int + MinimumPageViews int + Name string + PreviouslySpentBetween []int + SegmentID string + SkusVisited []string + TargetConsumers string + UniqueUsers int + UrlsVisited []string + ViewedProductsBetween []int + VisitedSiteAtLeast int + type SpecificTargeting struct + Browsers []string + Devices []string + Exchanges []string + Inventory []string + Status bool + func (SpecificTargeting) Name() string + type UUIDTargeting struct + Blacklist []string + Status bool + Whitelist []string + func (UUIDTargeting) Name() string + type Visit struct + CampaignID string + IFA string + Name string + ProximityID string + StoreID string + StoreName string + TS int64