2851 lines
94 KiB
Go
2851 lines
94 KiB
Go
// Package gan provides access to the Google Affiliate Network API.
|
|
//
|
|
// See https://developers.google.com/affiliate-network/
|
|
//
|
|
// Usage example:
|
|
//
|
|
// import "google.golang.org/api/gan/v1beta1"
|
|
// ...
|
|
// ganService, err := gan.New(oauthHttpClient)
|
|
package gan
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"errors"
|
|
"fmt"
|
|
"google.golang.org/api/googleapi"
|
|
"io"
|
|
"net/http"
|
|
"net/url"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
// Always reference these packages, just in case the auto-generated code
|
|
// below doesn't.
|
|
var _ = bytes.NewBuffer
|
|
var _ = strconv.Itoa
|
|
var _ = fmt.Sprintf
|
|
var _ = json.NewDecoder
|
|
var _ = io.Copy
|
|
var _ = url.Parse
|
|
var _ = googleapi.Version
|
|
var _ = errors.New
|
|
var _ = strings.Replace
|
|
|
|
const apiId = "gan:v1beta1"
|
|
const apiName = "gan"
|
|
const apiVersion = "v1beta1"
|
|
const basePath = "https://www.googleapis.com/gan/v1beta1/"
|
|
|
|
func New(client *http.Client) (*Service, error) {
|
|
if client == nil {
|
|
return nil, errors.New("client is nil")
|
|
}
|
|
s := &Service{client: client, BasePath: basePath}
|
|
s.Advertisers = NewAdvertisersService(s)
|
|
s.CcOffers = NewCcOffersService(s)
|
|
s.Events = NewEventsService(s)
|
|
s.Links = NewLinksService(s)
|
|
s.Publishers = NewPublishersService(s)
|
|
s.Reports = NewReportsService(s)
|
|
return s, nil
|
|
}
|
|
|
|
type Service struct {
|
|
client *http.Client
|
|
BasePath string // API endpoint base URL
|
|
|
|
Advertisers *AdvertisersService
|
|
|
|
CcOffers *CcOffersService
|
|
|
|
Events *EventsService
|
|
|
|
Links *LinksService
|
|
|
|
Publishers *PublishersService
|
|
|
|
Reports *ReportsService
|
|
}
|
|
|
|
func NewAdvertisersService(s *Service) *AdvertisersService {
|
|
rs := &AdvertisersService{s: s}
|
|
return rs
|
|
}
|
|
|
|
type AdvertisersService struct {
|
|
s *Service
|
|
}
|
|
|
|
func NewCcOffersService(s *Service) *CcOffersService {
|
|
rs := &CcOffersService{s: s}
|
|
return rs
|
|
}
|
|
|
|
type CcOffersService struct {
|
|
s *Service
|
|
}
|
|
|
|
func NewEventsService(s *Service) *EventsService {
|
|
rs := &EventsService{s: s}
|
|
return rs
|
|
}
|
|
|
|
type EventsService struct {
|
|
s *Service
|
|
}
|
|
|
|
func NewLinksService(s *Service) *LinksService {
|
|
rs := &LinksService{s: s}
|
|
return rs
|
|
}
|
|
|
|
type LinksService struct {
|
|
s *Service
|
|
}
|
|
|
|
func NewPublishersService(s *Service) *PublishersService {
|
|
rs := &PublishersService{s: s}
|
|
return rs
|
|
}
|
|
|
|
type PublishersService struct {
|
|
s *Service
|
|
}
|
|
|
|
func NewReportsService(s *Service) *ReportsService {
|
|
rs := &ReportsService{s: s}
|
|
return rs
|
|
}
|
|
|
|
type ReportsService struct {
|
|
s *Service
|
|
}
|
|
|
|
type Advertiser struct {
|
|
// AllowPublisherCreatedLinks: True if the advertiser allows publisher
|
|
// created links, otherwise false.
|
|
AllowPublisherCreatedLinks bool `json:"allowPublisherCreatedLinks,omitempty"`
|
|
|
|
// Category: Category that this advertiser belongs to. A valid list of
|
|
// categories can be found here:
|
|
// http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.p
|
|
// y?hl=en&answer=107581
|
|
Category string `json:"category,omitempty"`
|
|
|
|
// CommissionDuration: The longest possible length of a commission (how
|
|
// long the cookies on the customer's browser last before they expire).
|
|
CommissionDuration int64 `json:"commissionDuration,omitempty"`
|
|
|
|
// ContactEmail: Email that this advertiser would like publishers to
|
|
// contact them with.
|
|
ContactEmail string `json:"contactEmail,omitempty"`
|
|
|
|
// ContactPhone: Phone that this advertiser would like publishers to
|
|
// contact them with.
|
|
ContactPhone string `json:"contactPhone,omitempty"`
|
|
|
|
// DefaultLinkId: The default link id for this advertiser.
|
|
DefaultLinkId int64 `json:"defaultLinkId,omitempty,string"`
|
|
|
|
// Description: Description of the website the advertiser advertises
|
|
// from.
|
|
Description string `json:"description,omitempty"`
|
|
|
|
// EpcNinetyDayAverage: The sum of fees paid to publishers divided by
|
|
// the total number of clicks over the past three months. This value
|
|
// should be multiplied by 100 at the time of display.
|
|
EpcNinetyDayAverage *Money `json:"epcNinetyDayAverage,omitempty"`
|
|
|
|
// EpcSevenDayAverage: The sum of fees paid to publishers divided by the
|
|
// total number of clicks over the past seven days. This value should be
|
|
// multiplied by 100 at the time of display.
|
|
EpcSevenDayAverage *Money `json:"epcSevenDayAverage,omitempty"`
|
|
|
|
// Id: The ID of this advertiser.
|
|
Id int64 `json:"id,omitempty,string"`
|
|
|
|
// Item: The requested advertiser.
|
|
Item *Advertiser `json:"item,omitempty"`
|
|
|
|
// JoinDate: Date that this advertiser was approved as a Google
|
|
// Affiliate Network advertiser.
|
|
JoinDate string `json:"joinDate,omitempty"`
|
|
|
|
// Kind: The kind for an advertiser.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// LogoUrl: URL to the logo this advertiser uses on the Google Affiliate
|
|
// Network.
|
|
LogoUrl string `json:"logoUrl,omitempty"`
|
|
|
|
// MerchantCenterIds: List of merchant center ids for this advertiser
|
|
MerchantCenterIds googleapi.Int64s `json:"merchantCenterIds,omitempty"`
|
|
|
|
// Name: The name of this advertiser.
|
|
Name string `json:"name,omitempty"`
|
|
|
|
// PayoutRank: A rank based on commissions paid to publishers over the
|
|
// past 90 days. A number between 1 and 4 where 4 means the top quartile
|
|
// (most money paid) and 1 means the bottom quartile (least money paid).
|
|
PayoutRank string `json:"payoutRank,omitempty"`
|
|
|
|
// ProductFeedsEnabled: Allows advertisers to submit product listings to
|
|
// Google Product Search.
|
|
ProductFeedsEnabled bool `json:"productFeedsEnabled,omitempty"`
|
|
|
|
// RedirectDomains: List of redirect URLs for this advertiser
|
|
RedirectDomains []string `json:"redirectDomains,omitempty"`
|
|
|
|
// SiteUrl: URL of the website this advertiser advertises from.
|
|
SiteUrl string `json:"siteUrl,omitempty"`
|
|
|
|
// Status: The status of the requesting publisher's relationship this
|
|
// advertiser.
|
|
Status string `json:"status,omitempty"`
|
|
}
|
|
|
|
type Advertisers struct {
|
|
// Items: The advertiser list.
|
|
Items []*Advertiser `json:"items,omitempty"`
|
|
|
|
// Kind: The kind for a page of advertisers.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// NextPageToken: The 'pageToken' to pass to the next request to get the
|
|
// next page, if there are more to retrieve.
|
|
NextPageToken string `json:"nextPageToken,omitempty"`
|
|
}
|
|
|
|
type CcOffer struct {
|
|
// AdditionalCardBenefits: More marketing copy about the card's
|
|
// benefits. A summary field.
|
|
AdditionalCardBenefits []string `json:"additionalCardBenefits,omitempty"`
|
|
|
|
// AdditionalCardHolderFee: Any extra fees levied on card holders.
|
|
AdditionalCardHolderFee string `json:"additionalCardHolderFee,omitempty"`
|
|
|
|
// AgeMinimum: The youngest a recipient of this card may be.
|
|
AgeMinimum float64 `json:"ageMinimum,omitempty"`
|
|
|
|
// AgeMinimumDetails: Text describing the details of the age minimum
|
|
// restriction.
|
|
AgeMinimumDetails string `json:"ageMinimumDetails,omitempty"`
|
|
|
|
// AnnualFee: The ongoing annual fee, in dollars.
|
|
AnnualFee float64 `json:"annualFee,omitempty"`
|
|
|
|
// AnnualFeeDisplay: Text describing the annual fee, including any
|
|
// difference for the first year. A summary field.
|
|
AnnualFeeDisplay string `json:"annualFeeDisplay,omitempty"`
|
|
|
|
// AnnualRewardMaximum: The largest number of units you may accumulate
|
|
// in a year.
|
|
AnnualRewardMaximum float64 `json:"annualRewardMaximum,omitempty"`
|
|
|
|
// ApprovedCategories: Possible categories for this card, eg "Low
|
|
// Interest" or "Good." A summary field.
|
|
ApprovedCategories []string `json:"approvedCategories,omitempty"`
|
|
|
|
// AprDisplay: Text describing the purchase APR. A summary field.
|
|
AprDisplay string `json:"aprDisplay,omitempty"`
|
|
|
|
// BalanceComputationMethod: Text describing how the balance is
|
|
// computed. A summary field.
|
|
BalanceComputationMethod string `json:"balanceComputationMethod,omitempty"`
|
|
|
|
// BalanceTransferTerms: Text describing the terms for balance
|
|
// transfers. A summary field.
|
|
BalanceTransferTerms string `json:"balanceTransferTerms,omitempty"`
|
|
|
|
// BonusRewards: For cards with rewards programs, extra circumstances
|
|
// whereby additional rewards may be granted.
|
|
BonusRewards []*CcOfferBonusRewards `json:"bonusRewards,omitempty"`
|
|
|
|
// CarRentalInsurance: If you get coverage when you use the card for the
|
|
// given activity, this field describes it.
|
|
CarRentalInsurance string `json:"carRentalInsurance,omitempty"`
|
|
|
|
// CardBenefits: A list of what the issuer thinks are the most important
|
|
// benefits of the card. Usually summarizes the rewards program, if
|
|
// there is one. A summary field.
|
|
CardBenefits []string `json:"cardBenefits,omitempty"`
|
|
|
|
// CardName: The issuer's name for the card, including any trademark or
|
|
// service mark designators. A summary field.
|
|
CardName string `json:"cardName,omitempty"`
|
|
|
|
// CardType: What kind of credit card this is, for example secured or
|
|
// unsecured.
|
|
CardType string `json:"cardType,omitempty"`
|
|
|
|
// CashAdvanceTerms: Text describing the terms for cash advances. A
|
|
// summary field.
|
|
CashAdvanceTerms string `json:"cashAdvanceTerms,omitempty"`
|
|
|
|
// CreditLimitMax: The high end for credit limits the issuer imposes on
|
|
// recipients of this card.
|
|
CreditLimitMax float64 `json:"creditLimitMax,omitempty"`
|
|
|
|
// CreditLimitMin: The low end for credit limits the issuer imposes on
|
|
// recipients of this card.
|
|
CreditLimitMin float64 `json:"creditLimitMin,omitempty"`
|
|
|
|
// CreditRatingDisplay: Text describing the credit ratings required for
|
|
// recipients of this card, for example "Excellent/Good." A summary
|
|
// field.
|
|
CreditRatingDisplay string `json:"creditRatingDisplay,omitempty"`
|
|
|
|
// DefaultFees: Fees for defaulting on your payments.
|
|
DefaultFees []*CcOfferDefaultFees `json:"defaultFees,omitempty"`
|
|
|
|
// Disclaimer: A notice that, if present, is referenced via an asterisk
|
|
// by many of the other summary fields. If this field is present, it
|
|
// will always start with an asterisk ("*"), and must be prominently
|
|
// displayed with the offer. A summary field.
|
|
Disclaimer string `json:"disclaimer,omitempty"`
|
|
|
|
// EmergencyInsurance: If you get coverage when you use the card for the
|
|
// given activity, this field describes it.
|
|
EmergencyInsurance string `json:"emergencyInsurance,omitempty"`
|
|
|
|
// ExistingCustomerOnly: Whether this card is only available to existing
|
|
// customers of the issuer.
|
|
ExistingCustomerOnly bool `json:"existingCustomerOnly,omitempty"`
|
|
|
|
// ExtendedWarranty: If you get coverage when you use the card for the
|
|
// given activity, this field describes it.
|
|
ExtendedWarranty string `json:"extendedWarranty,omitempty"`
|
|
|
|
// FirstYearAnnualFee: The annual fee for the first year, if different
|
|
// from the ongoing fee. Optional.
|
|
FirstYearAnnualFee float64 `json:"firstYearAnnualFee,omitempty"`
|
|
|
|
// FlightAccidentInsurance: If you get coverage when you use the card
|
|
// for the given activity, this field describes it.
|
|
FlightAccidentInsurance string `json:"flightAccidentInsurance,omitempty"`
|
|
|
|
// ForeignCurrencyTransactionFee: Fee for each transaction involving a
|
|
// foreign currency.
|
|
ForeignCurrencyTransactionFee string `json:"foreignCurrencyTransactionFee,omitempty"`
|
|
|
|
// FraudLiability: If you get coverage when you use the card for the
|
|
// given activity, this field describes it.
|
|
FraudLiability string `json:"fraudLiability,omitempty"`
|
|
|
|
// GracePeriodDisplay: Text describing the grace period before finance
|
|
// charges apply. A summary field.
|
|
GracePeriodDisplay string `json:"gracePeriodDisplay,omitempty"`
|
|
|
|
// ImageUrl: The link to the image of the card that is shown on Connect
|
|
// Commerce. A summary field.
|
|
ImageUrl string `json:"imageUrl,omitempty"`
|
|
|
|
// InitialSetupAndProcessingFee: Fee for setting up the card.
|
|
InitialSetupAndProcessingFee string `json:"initialSetupAndProcessingFee,omitempty"`
|
|
|
|
// IntroBalanceTransferTerms: Text describing the terms for introductory
|
|
// period balance transfers. A summary field.
|
|
IntroBalanceTransferTerms string `json:"introBalanceTransferTerms,omitempty"`
|
|
|
|
// IntroCashAdvanceTerms: Text describing the terms for introductory
|
|
// period cash advances. A summary field.
|
|
IntroCashAdvanceTerms string `json:"introCashAdvanceTerms,omitempty"`
|
|
|
|
// IntroPurchaseTerms: Text describing the terms for introductory period
|
|
// purchases. A summary field.
|
|
IntroPurchaseTerms string `json:"introPurchaseTerms,omitempty"`
|
|
|
|
// Issuer: Name of card issuer. A summary field.
|
|
Issuer string `json:"issuer,omitempty"`
|
|
|
|
// IssuerId: The Google Affiliate Network ID of the advertiser making
|
|
// this offer.
|
|
IssuerId string `json:"issuerId,omitempty"`
|
|
|
|
// IssuerWebsite: The generic link to the issuer's site.
|
|
IssuerWebsite string `json:"issuerWebsite,omitempty"`
|
|
|
|
// Kind: The kind for one credit card offer. A summary field.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// LandingPageUrl: The link to the issuer's page for this card. A
|
|
// summary field.
|
|
LandingPageUrl string `json:"landingPageUrl,omitempty"`
|
|
|
|
// LatePaymentFee: Text describing how much a late payment will cost, eg
|
|
// "up to $35." A summary field.
|
|
LatePaymentFee string `json:"latePaymentFee,omitempty"`
|
|
|
|
// LuggageInsurance: If you get coverage when you use the card for the
|
|
// given activity, this field describes it.
|
|
LuggageInsurance string `json:"luggageInsurance,omitempty"`
|
|
|
|
// MaxPurchaseRate: The highest interest rate the issuer charges on this
|
|
// card. Expressed as an absolute number, not as a percentage.
|
|
MaxPurchaseRate float64 `json:"maxPurchaseRate,omitempty"`
|
|
|
|
// MinPurchaseRate: The lowest interest rate the issuer charges on this
|
|
// card. Expressed as an absolute number, not as a percentage.
|
|
MinPurchaseRate float64 `json:"minPurchaseRate,omitempty"`
|
|
|
|
// MinimumFinanceCharge: Text describing how much missing the grace
|
|
// period will cost.
|
|
MinimumFinanceCharge string `json:"minimumFinanceCharge,omitempty"`
|
|
|
|
// Network: Which network (eg Visa) the card belongs to. A summary
|
|
// field.
|
|
Network string `json:"network,omitempty"`
|
|
|
|
// OfferId: This offer's ID. A summary field.
|
|
OfferId string `json:"offerId,omitempty"`
|
|
|
|
// OffersImmediateCashReward: Whether a cash reward program lets you get
|
|
// cash back sooner than end of year or other longish period.
|
|
OffersImmediateCashReward bool `json:"offersImmediateCashReward,omitempty"`
|
|
|
|
// OverLimitFee: Fee for exceeding the card's charge limit.
|
|
OverLimitFee string `json:"overLimitFee,omitempty"`
|
|
|
|
// ProhibitedCategories: Categories in which the issuer does not wish
|
|
// the card to be displayed. A summary field.
|
|
ProhibitedCategories []string `json:"prohibitedCategories,omitempty"`
|
|
|
|
// PurchaseRateAdditionalDetails: Text describing any additional details
|
|
// for the purchase rate. A summary field.
|
|
PurchaseRateAdditionalDetails string `json:"purchaseRateAdditionalDetails,omitempty"`
|
|
|
|
// PurchaseRateType: Fixed or variable.
|
|
PurchaseRateType string `json:"purchaseRateType,omitempty"`
|
|
|
|
// ReturnedPaymentFee: Text describing the fee for a payment that
|
|
// doesn't clear. A summary field.
|
|
ReturnedPaymentFee string `json:"returnedPaymentFee,omitempty"`
|
|
|
|
// RewardPartner: The company that redeems the rewards, if different
|
|
// from the issuer.
|
|
RewardPartner string `json:"rewardPartner,omitempty"`
|
|
|
|
// RewardUnit: For cards with rewards programs, the unit of reward. For
|
|
// example, miles, cash back, points.
|
|
RewardUnit string `json:"rewardUnit,omitempty"`
|
|
|
|
// Rewards: For cards with rewards programs, detailed rules about how
|
|
// the program works.
|
|
Rewards []*CcOfferRewards `json:"rewards,omitempty"`
|
|
|
|
// RewardsExpire: Whether accumulated rewards ever expire.
|
|
RewardsExpire bool `json:"rewardsExpire,omitempty"`
|
|
|
|
// RewardsHaveBlackoutDates: For airline miles rewards, tells whether
|
|
// blackout dates apply to the miles.
|
|
RewardsHaveBlackoutDates bool `json:"rewardsHaveBlackoutDates,omitempty"`
|
|
|
|
// StatementCopyFee: Fee for requesting a copy of your statement.
|
|
StatementCopyFee string `json:"statementCopyFee,omitempty"`
|
|
|
|
// TrackingUrl: The link to ping to register a click on this offer. A
|
|
// summary field.
|
|
TrackingUrl string `json:"trackingUrl,omitempty"`
|
|
|
|
// TravelInsurance: If you get coverage when you use the card for the
|
|
// given activity, this field describes it.
|
|
TravelInsurance string `json:"travelInsurance,omitempty"`
|
|
|
|
// VariableRatesLastUpdated: When variable rates were last updated.
|
|
VariableRatesLastUpdated string `json:"variableRatesLastUpdated,omitempty"`
|
|
|
|
// VariableRatesUpdateFrequency: How often variable rates are updated.
|
|
VariableRatesUpdateFrequency string `json:"variableRatesUpdateFrequency,omitempty"`
|
|
}
|
|
|
|
type CcOfferBonusRewards struct {
|
|
// Amount: How many units of reward will be granted.
|
|
Amount float64 `json:"amount,omitempty"`
|
|
|
|
// Details: The circumstances under which this rule applies, for
|
|
// example, booking a flight via Orbitz.
|
|
Details string `json:"details,omitempty"`
|
|
}
|
|
|
|
type CcOfferDefaultFees struct {
|
|
// Category: The type of charge, for example Purchases.
|
|
Category string `json:"category,omitempty"`
|
|
|
|
// MaxRate: The highest rate the issuer may charge for defaulting on
|
|
// debt in this category. Expressed as an absolute number, not as a
|
|
// percentage.
|
|
MaxRate float64 `json:"maxRate,omitempty"`
|
|
|
|
// MinRate: The lowest rate the issuer may charge for defaulting on debt
|
|
// in this category. Expressed as an absolute number, not as a
|
|
// percentage.
|
|
MinRate float64 `json:"minRate,omitempty"`
|
|
|
|
// RateType: Fixed or variable.
|
|
RateType string `json:"rateType,omitempty"`
|
|
}
|
|
|
|
type CcOfferRewards struct {
|
|
// AdditionalDetails: Other limits, for example, if this rule only
|
|
// applies during an introductory period.
|
|
AdditionalDetails string `json:"additionalDetails,omitempty"`
|
|
|
|
// Amount: The number of units rewarded per purchase dollar.
|
|
Amount float64 `json:"amount,omitempty"`
|
|
|
|
// Category: The kind of purchases covered by this rule.
|
|
Category string `json:"category,omitempty"`
|
|
|
|
// ExpirationMonths: How long rewards granted by this rule last.
|
|
ExpirationMonths float64 `json:"expirationMonths,omitempty"`
|
|
|
|
// MaxRewardTier: The maximum purchase amount in the given category for
|
|
// this rule to apply.
|
|
MaxRewardTier float64 `json:"maxRewardTier,omitempty"`
|
|
|
|
// MinRewardTier: The minimum purchase amount in the given category
|
|
// before this rule applies.
|
|
MinRewardTier float64 `json:"minRewardTier,omitempty"`
|
|
}
|
|
|
|
type CcOffers struct {
|
|
// Items: The credit card offers.
|
|
Items []*CcOffer `json:"items,omitempty"`
|
|
|
|
// Kind: The kind for a page of credit card offers.
|
|
Kind string `json:"kind,omitempty"`
|
|
}
|
|
|
|
type Event struct {
|
|
// AdvertiserId: The ID of advertiser for this event.
|
|
AdvertiserId int64 `json:"advertiserId,omitempty,string"`
|
|
|
|
// AdvertiserName: The name of the advertiser for this event.
|
|
AdvertiserName string `json:"advertiserName,omitempty"`
|
|
|
|
// ChargeId: The charge ID for this event. Only returned for charge
|
|
// events.
|
|
ChargeId string `json:"chargeId,omitempty"`
|
|
|
|
// ChargeType: Charge type of the event
|
|
// (other|slotting_fee|monthly_minimum|tier_bonus|debit|credit). Only
|
|
// returned for charge events.
|
|
ChargeType string `json:"chargeType,omitempty"`
|
|
|
|
// CommissionableSales: Amount of money exchanged during the
|
|
// transaction. Only returned for charge and conversion events.
|
|
CommissionableSales *Money `json:"commissionableSales,omitempty"`
|
|
|
|
// Earnings: Earnings by the publisher.
|
|
Earnings *Money `json:"earnings,omitempty"`
|
|
|
|
// EventDate: The date-time this event was initiated as a RFC 3339
|
|
// date-time value.
|
|
EventDate string `json:"eventDate,omitempty"`
|
|
|
|
// Kind: The kind for one event.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// MemberId: The ID of the member attached to this event. Only returned
|
|
// for conversion events.
|
|
MemberId string `json:"memberId,omitempty"`
|
|
|
|
// ModifyDate: The date-time this event was last modified as a RFC 3339
|
|
// date-time value.
|
|
ModifyDate string `json:"modifyDate,omitempty"`
|
|
|
|
// NetworkFee: Fee that the advertiser paid to the Google Affiliate
|
|
// Network.
|
|
NetworkFee *Money `json:"networkFee,omitempty"`
|
|
|
|
// OrderId: The order ID for this event. Only returned for conversion
|
|
// events.
|
|
OrderId string `json:"orderId,omitempty"`
|
|
|
|
// Products: Products associated with the event.
|
|
Products []*EventProducts `json:"products,omitempty"`
|
|
|
|
// PublisherFee: Fee that the advertiser paid to the publisher.
|
|
PublisherFee *Money `json:"publisherFee,omitempty"`
|
|
|
|
// PublisherId: The ID of the publisher for this event.
|
|
PublisherId int64 `json:"publisherId,omitempty,string"`
|
|
|
|
// PublisherName: The name of the publisher for this event.
|
|
PublisherName string `json:"publisherName,omitempty"`
|
|
|
|
// Status: Status of the event (active|canceled). Only returned for
|
|
// charge and conversion events.
|
|
Status string `json:"status,omitempty"`
|
|
|
|
// Type: Type of the event (action|transaction|charge).
|
|
Type string `json:"type,omitempty"`
|
|
}
|
|
|
|
type EventProducts struct {
|
|
// CategoryId: Id of the category this product belongs to.
|
|
CategoryId string `json:"categoryId,omitempty"`
|
|
|
|
// CategoryName: Name of the category this product belongs to.
|
|
CategoryName string `json:"categoryName,omitempty"`
|
|
|
|
// Earnings: Amount earned by the publisher on this product.
|
|
Earnings *Money `json:"earnings,omitempty"`
|
|
|
|
// NetworkFee: Fee that the advertiser paid to the Google Affiliate
|
|
// Network for this product.
|
|
NetworkFee *Money `json:"networkFee,omitempty"`
|
|
|
|
// PublisherFee: Fee that the advertiser paid to the publisehr for this
|
|
// product.
|
|
PublisherFee *Money `json:"publisherFee,omitempty"`
|
|
|
|
// Quantity: Quantity of this product bought/exchanged.
|
|
Quantity int64 `json:"quantity,omitempty,string"`
|
|
|
|
// Sku: Sku of this product.
|
|
Sku string `json:"sku,omitempty"`
|
|
|
|
// SkuName: Sku name of this product.
|
|
SkuName string `json:"skuName,omitempty"`
|
|
|
|
// UnitPrice: Price per unit of this product.
|
|
UnitPrice *Money `json:"unitPrice,omitempty"`
|
|
}
|
|
|
|
type Events struct {
|
|
// Items: The event list.
|
|
Items []*Event `json:"items,omitempty"`
|
|
|
|
// Kind: The kind for a page of events.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// NextPageToken: The 'pageToken' to pass to the next request to get the
|
|
// next page, if there are more to retrieve.
|
|
NextPageToken string `json:"nextPageToken,omitempty"`
|
|
}
|
|
|
|
type Link struct {
|
|
// AdvertiserId: The advertiser id for the advertiser who owns this
|
|
// link.
|
|
AdvertiserId int64 `json:"advertiserId,omitempty,string"`
|
|
|
|
// Authorship: Authorship
|
|
Authorship string `json:"authorship,omitempty"`
|
|
|
|
// Availability: Availability.
|
|
Availability string `json:"availability,omitempty"`
|
|
|
|
// ClickTrackingUrl: Tracking url for clicks.
|
|
ClickTrackingUrl string `json:"clickTrackingUrl,omitempty"`
|
|
|
|
// CreateDate: Date that this link was created.
|
|
CreateDate string `json:"createDate,omitempty"`
|
|
|
|
// Description: Description.
|
|
Description string `json:"description,omitempty"`
|
|
|
|
// DestinationUrl: The destination URL for the link.
|
|
DestinationUrl string `json:"destinationUrl,omitempty"`
|
|
|
|
// Duration: Duration
|
|
Duration string `json:"duration,omitempty"`
|
|
|
|
// EndDate: Date that this link becomes inactive.
|
|
EndDate string `json:"endDate,omitempty"`
|
|
|
|
// EpcNinetyDayAverage: The sum of fees paid to publishers divided by
|
|
// the total number of clicks over the past three months on this link.
|
|
// This value should be multiplied by 100 at the time of display.
|
|
EpcNinetyDayAverage *Money `json:"epcNinetyDayAverage,omitempty"`
|
|
|
|
// EpcSevenDayAverage: The sum of fees paid to publishers divided by the
|
|
// total number of clicks over the past seven days on this link. This
|
|
// value should be multiplied by 100 at the time of display.
|
|
EpcSevenDayAverage *Money `json:"epcSevenDayAverage,omitempty"`
|
|
|
|
// Id: The ID of this link.
|
|
Id int64 `json:"id,omitempty,string"`
|
|
|
|
// ImageAltText: image alt text.
|
|
ImageAltText string `json:"imageAltText,omitempty"`
|
|
|
|
// ImpressionTrackingUrl: Tracking url for impressions.
|
|
ImpressionTrackingUrl string `json:"impressionTrackingUrl,omitempty"`
|
|
|
|
// IsActive: Flag for if this link is active.
|
|
IsActive bool `json:"isActive,omitempty"`
|
|
|
|
// Kind: The kind for one entity.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// LinkType: The link type.
|
|
LinkType string `json:"linkType,omitempty"`
|
|
|
|
// Name: The logical name for this link.
|
|
Name string `json:"name,omitempty"`
|
|
|
|
// PromotionType: Promotion Type
|
|
PromotionType string `json:"promotionType,omitempty"`
|
|
|
|
// SpecialOffers: Special offers on the link.
|
|
SpecialOffers *LinkSpecialOffers `json:"specialOffers,omitempty"`
|
|
|
|
// StartDate: Date that this link becomes active.
|
|
StartDate string `json:"startDate,omitempty"`
|
|
}
|
|
|
|
type LinkSpecialOffers struct {
|
|
// FreeGift: Whether there is a free gift
|
|
FreeGift bool `json:"freeGift,omitempty"`
|
|
|
|
// FreeShipping: Whether there is free shipping
|
|
FreeShipping bool `json:"freeShipping,omitempty"`
|
|
|
|
// FreeShippingMin: Minimum purchase amount for free shipping promotion
|
|
FreeShippingMin *Money `json:"freeShippingMin,omitempty"`
|
|
|
|
// PercentOff: Percent off on the purchase
|
|
PercentOff float64 `json:"percentOff,omitempty"`
|
|
|
|
// PercentOffMin: Minimum purchase amount for percent off promotion
|
|
PercentOffMin *Money `json:"percentOffMin,omitempty"`
|
|
|
|
// PriceCut: Price cut on the purchase
|
|
PriceCut *Money `json:"priceCut,omitempty"`
|
|
|
|
// PriceCutMin: Minimum purchase amount for price cut promotion
|
|
PriceCutMin *Money `json:"priceCutMin,omitempty"`
|
|
|
|
// PromotionCodes: List of promotion code associated with the link
|
|
PromotionCodes []string `json:"promotionCodes,omitempty"`
|
|
}
|
|
|
|
type Links struct {
|
|
// Items: The links.
|
|
Items []*Link `json:"items,omitempty"`
|
|
|
|
// Kind: The kind for a page of links.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// NextPageToken: The next page token.
|
|
NextPageToken string `json:"nextPageToken,omitempty"`
|
|
}
|
|
|
|
type Money struct {
|
|
// Amount: The amount of money.
|
|
Amount float64 `json:"amount,omitempty"`
|
|
|
|
// CurrencyCode: The 3-letter code of the currency in question.
|
|
CurrencyCode string `json:"currencyCode,omitempty"`
|
|
}
|
|
|
|
type Publisher struct {
|
|
// Classification: Classification that this publisher belongs to. See
|
|
// this link for all publisher classifications:
|
|
// http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.p
|
|
// y?hl=en&answer=107625&ctx=cb&src=cb&cbid=-k5fihzthfaik&cbrank=4
|
|
Classification string `json:"classification,omitempty"`
|
|
|
|
// EpcNinetyDayAverage: The sum of fees paid to this publisher divided
|
|
// by the total number of clicks over the past three months. Values are
|
|
// multiplied by 100 for display purposes.
|
|
EpcNinetyDayAverage *Money `json:"epcNinetyDayAverage,omitempty"`
|
|
|
|
// EpcSevenDayAverage: The sum of fees paid to this publisher divided by
|
|
// the total number of clicks over the past seven days. Values are
|
|
// multiplied by 100 for display purposes.
|
|
EpcSevenDayAverage *Money `json:"epcSevenDayAverage,omitempty"`
|
|
|
|
// Id: The ID of this publisher.
|
|
Id int64 `json:"id,omitempty,string"`
|
|
|
|
// Item: The requested publisher.
|
|
Item *Publisher `json:"item,omitempty"`
|
|
|
|
// JoinDate: Date that this publisher was approved as a Google Affiliate
|
|
// Network publisher.
|
|
JoinDate string `json:"joinDate,omitempty"`
|
|
|
|
// Kind: The kind for a publisher.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// Name: The name of this publisher.
|
|
Name string `json:"name,omitempty"`
|
|
|
|
// PayoutRank: A rank based on commissions paid to this publisher over
|
|
// the past 90 days. A number between 1 and 4 where 4 means the top
|
|
// quartile (most money paid) and 1 means the bottom quartile (least
|
|
// money paid).
|
|
PayoutRank string `json:"payoutRank,omitempty"`
|
|
|
|
// Sites: Websites that this publisher uses to advertise.
|
|
Sites []string `json:"sites,omitempty"`
|
|
|
|
// Status: The status of the requesting advertiser's relationship with
|
|
// this publisher.
|
|
Status string `json:"status,omitempty"`
|
|
}
|
|
|
|
type Publishers struct {
|
|
// Items: The entity list.
|
|
Items []*Publisher `json:"items,omitempty"`
|
|
|
|
// Kind: The kind for a page of entities.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// NextPageToken: The 'pageToken' to pass to the next request to get the
|
|
// next page, if there are more to retrieve.
|
|
NextPageToken string `json:"nextPageToken,omitempty"`
|
|
}
|
|
|
|
type Report struct {
|
|
// Column_names: The column names for the report
|
|
Column_names []string `json:"column_names,omitempty"`
|
|
|
|
// End_date: The end of the date range for this report, exclusive.
|
|
End_date string `json:"end_date,omitempty"`
|
|
|
|
// Kind: The kind for a report.
|
|
Kind string `json:"kind,omitempty"`
|
|
|
|
// Matching_row_count: The number of matching rows before paging is
|
|
// applied.
|
|
Matching_row_count int64 `json:"matching_row_count,omitempty,string"`
|
|
|
|
// Rows: The rows of data for the report
|
|
Rows [][]interface{} `json:"rows,omitempty"`
|
|
|
|
// Start_date: The start of the date range for this report, inclusive.
|
|
Start_date string `json:"start_date,omitempty"`
|
|
|
|
// Totals_rows: The totals rows for the report
|
|
Totals_rows [][]interface{} `json:"totals_rows,omitempty"`
|
|
|
|
// Type: The report type.
|
|
Type string `json:"type,omitempty"`
|
|
}
|
|
|
|
// method id "gan.advertisers.get":
|
|
|
|
type AdvertisersGetCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// Get: Retrieves data about a single advertiser if that the requesting
|
|
// advertiser/publisher has access to it. Only publishers can lookup
|
|
// advertisers. Advertisers can request information about themselves by
|
|
// omitting the advertiserId query parameter.
|
|
func (r *AdvertisersService) Get(role string, roleId string) *AdvertisersGetCall {
|
|
c := &AdvertisersGetCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
return c
|
|
}
|
|
|
|
// AdvertiserId sets the optional parameter "advertiserId": The ID of
|
|
// the advertiser to look up.
|
|
func (c *AdvertisersGetCall) AdvertiserId(advertiserId string) *AdvertisersGetCall {
|
|
c.opt_["advertiserId"] = advertiserId
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *AdvertisersGetCall) Fields(s ...googleapi.Field) *AdvertisersGetCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *AdvertisersGetCall) Do() (*Advertiser, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["advertiserId"]; ok {
|
|
params.Set("advertiserId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/advertiser")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Advertiser
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only publishers can lookup advertisers. Advertisers can request information about themselves by omitting the advertiserId query parameter.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.advertisers.get",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId"
|
|
// ],
|
|
// "parameters": {
|
|
// "advertiserId": {
|
|
// "description": "The ID of the advertiser to look up. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/advertiser",
|
|
// "response": {
|
|
// "$ref": "Advertiser"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.advertisers.list":
|
|
|
|
type AdvertisersListCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// List: Retrieves data about all advertisers that the requesting
|
|
// advertiser/publisher has access to.
|
|
func (r *AdvertisersService) List(role string, roleId string) *AdvertisersListCall {
|
|
c := &AdvertisersListCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
return c
|
|
}
|
|
|
|
// AdvertiserCategory sets the optional parameter "advertiserCategory":
|
|
// Caret(^) delimted list of advertiser categories. Valid categories are
|
|
// defined here:
|
|
// http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.p
|
|
// y?hl=en&answer=107581. Filters out all advertisers not in one of the
|
|
// given advertiser categories.
|
|
func (c *AdvertisersListCall) AdvertiserCategory(advertiserCategory string) *AdvertisersListCall {
|
|
c.opt_["advertiserCategory"] = advertiserCategory
|
|
return c
|
|
}
|
|
|
|
// MaxResults sets the optional parameter "maxResults": Max number of
|
|
// items to return in this page. Defaults to 20.
|
|
func (c *AdvertisersListCall) MaxResults(maxResults int64) *AdvertisersListCall {
|
|
c.opt_["maxResults"] = maxResults
|
|
return c
|
|
}
|
|
|
|
// MinNinetyDayEpc sets the optional parameter "minNinetyDayEpc":
|
|
// Filters out all advertisers that have a ninety day EPC average lower
|
|
// than the given value (inclusive). Min value: 0.0.
|
|
func (c *AdvertisersListCall) MinNinetyDayEpc(minNinetyDayEpc float64) *AdvertisersListCall {
|
|
c.opt_["minNinetyDayEpc"] = minNinetyDayEpc
|
|
return c
|
|
}
|
|
|
|
// MinPayoutRank sets the optional parameter "minPayoutRank": A value
|
|
// between 1 and 4, where 1 represents the quartile of advertisers with
|
|
// the lowest ranks and 4 represents the quartile of advertisers with
|
|
// the highest ranks. Filters out all advertisers with a lower rank than
|
|
// the given quartile. For example if a 2 was given only advertisers
|
|
// with a payout rank of 25 or higher would be included.
|
|
func (c *AdvertisersListCall) MinPayoutRank(minPayoutRank int64) *AdvertisersListCall {
|
|
c.opt_["minPayoutRank"] = minPayoutRank
|
|
return c
|
|
}
|
|
|
|
// MinSevenDayEpc sets the optional parameter "minSevenDayEpc": Filters
|
|
// out all advertisers that have a seven day EPC average lower than the
|
|
// given value (inclusive). Min value: 0.0.
|
|
func (c *AdvertisersListCall) MinSevenDayEpc(minSevenDayEpc float64) *AdvertisersListCall {
|
|
c.opt_["minSevenDayEpc"] = minSevenDayEpc
|
|
return c
|
|
}
|
|
|
|
// PageToken sets the optional parameter "pageToken": The value of
|
|
// 'nextPageToken' from the previous page.
|
|
func (c *AdvertisersListCall) PageToken(pageToken string) *AdvertisersListCall {
|
|
c.opt_["pageToken"] = pageToken
|
|
return c
|
|
}
|
|
|
|
// RelationshipStatus sets the optional parameter "relationshipStatus":
|
|
// Filters out all advertisers for which do not have the given
|
|
// relationship status with the requesting publisher.
|
|
func (c *AdvertisersListCall) RelationshipStatus(relationshipStatus string) *AdvertisersListCall {
|
|
c.opt_["relationshipStatus"] = relationshipStatus
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *AdvertisersListCall) Fields(s ...googleapi.Field) *AdvertisersListCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *AdvertisersListCall) Do() (*Advertisers, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["advertiserCategory"]; ok {
|
|
params.Set("advertiserCategory", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["maxResults"]; ok {
|
|
params.Set("maxResults", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["minNinetyDayEpc"]; ok {
|
|
params.Set("minNinetyDayEpc", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["minPayoutRank"]; ok {
|
|
params.Set("minPayoutRank", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["minSevenDayEpc"]; ok {
|
|
params.Set("minSevenDayEpc", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["pageToken"]; ok {
|
|
params.Set("pageToken", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["relationshipStatus"]; ok {
|
|
params.Set("relationshipStatus", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/advertisers")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Advertisers
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves data about all advertisers that the requesting advertiser/publisher has access to.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.advertisers.list",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId"
|
|
// ],
|
|
// "parameters": {
|
|
// "advertiserCategory": {
|
|
// "description": "Caret(^) delimted list of advertiser categories. Valid categories are defined here: http://www.google.com/support/affiliatenetwork/advertiser/bin/answer.py?hl=en\u0026answer=107581. Filters out all advertisers not in one of the given advertiser categories. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "maxResults": {
|
|
// "description": "Max number of items to return in this page. Optional. Defaults to 20.",
|
|
// "format": "uint32",
|
|
// "location": "query",
|
|
// "maximum": "100",
|
|
// "minimum": "0",
|
|
// "type": "integer"
|
|
// },
|
|
// "minNinetyDayEpc": {
|
|
// "description": "Filters out all advertisers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.",
|
|
// "format": "double",
|
|
// "location": "query",
|
|
// "type": "number"
|
|
// },
|
|
// "minPayoutRank": {
|
|
// "description": "A value between 1 and 4, where 1 represents the quartile of advertisers with the lowest ranks and 4 represents the quartile of advertisers with the highest ranks. Filters out all advertisers with a lower rank than the given quartile. For example if a 2 was given only advertisers with a payout rank of 25 or higher would be included. Optional.",
|
|
// "format": "int32",
|
|
// "location": "query",
|
|
// "maximum": "4",
|
|
// "minimum": "1",
|
|
// "type": "integer"
|
|
// },
|
|
// "minSevenDayEpc": {
|
|
// "description": "Filters out all advertisers that have a seven day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.",
|
|
// "format": "double",
|
|
// "location": "query",
|
|
// "type": "number"
|
|
// },
|
|
// "pageToken": {
|
|
// "description": "The value of 'nextPageToken' from the previous page. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "relationshipStatus": {
|
|
// "description": "Filters out all advertisers for which do not have the given relationship status with the requesting publisher.",
|
|
// "enum": [
|
|
// "approved",
|
|
// "available",
|
|
// "deactivated",
|
|
// "declined",
|
|
// "pending"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "An advertiser that has approved your application.",
|
|
// "An advertiser program that's accepting new publishers.",
|
|
// "Deactivated means either the advertiser has removed you from their program, or it could also mean that you chose to remove yourself from the advertiser's program.",
|
|
// "An advertiser that did not approve your application.",
|
|
// "An advertiser program that you've already applied to, but they haven't yet decided to approve or decline your application."
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/advertisers",
|
|
// "response": {
|
|
// "$ref": "Advertisers"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.ccOffers.list":
|
|
|
|
type CcOffersListCall struct {
|
|
s *Service
|
|
publisher string
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// List: Retrieves credit card offers for the given publisher.
|
|
func (r *CcOffersService) List(publisher string) *CcOffersListCall {
|
|
c := &CcOffersListCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.publisher = publisher
|
|
return c
|
|
}
|
|
|
|
// Advertiser sets the optional parameter "advertiser": The advertiser
|
|
// ID of a card issuer whose offers to include. Optional, may be
|
|
// repeated.
|
|
func (c *CcOffersListCall) Advertiser(advertiser string) *CcOffersListCall {
|
|
c.opt_["advertiser"] = advertiser
|
|
return c
|
|
}
|
|
|
|
// Projection sets the optional parameter "projection": The set of
|
|
// fields to return.
|
|
func (c *CcOffersListCall) Projection(projection string) *CcOffersListCall {
|
|
c.opt_["projection"] = projection
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *CcOffersListCall) Fields(s ...googleapi.Field) *CcOffersListCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *CcOffersListCall) Do() (*CcOffers, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["advertiser"]; ok {
|
|
params.Set("advertiser", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["projection"]; ok {
|
|
params.Set("projection", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "publishers/{publisher}/ccOffers")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"publisher": c.publisher,
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *CcOffers
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves credit card offers for the given publisher.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.ccOffers.list",
|
|
// "parameterOrder": [
|
|
// "publisher"
|
|
// ],
|
|
// "parameters": {
|
|
// "advertiser": {
|
|
// "description": "The advertiser ID of a card issuer whose offers to include. Optional, may be repeated.",
|
|
// "location": "query",
|
|
// "repeated": true,
|
|
// "type": "string"
|
|
// },
|
|
// "projection": {
|
|
// "description": "The set of fields to return.",
|
|
// "enum": [
|
|
// "full",
|
|
// "summary"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "Include all offer fields. This is the default.",
|
|
// "Include only the basic fields needed to display an offer."
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "publisher": {
|
|
// "description": "The ID of the publisher in question.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "publishers/{publisher}/ccOffers",
|
|
// "response": {
|
|
// "$ref": "CcOffers"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.events.list":
|
|
|
|
type EventsListCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// List: Retrieves event data for a given advertiser/publisher.
|
|
func (r *EventsService) List(role string, roleId string) *EventsListCall {
|
|
c := &EventsListCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
return c
|
|
}
|
|
|
|
// AdvertiserId sets the optional parameter "advertiserId": Caret(^)
|
|
// delimited list of advertiser IDs. Filters out all events that do not
|
|
// reference one of the given advertiser IDs. Only used when under
|
|
// publishers role.
|
|
func (c *EventsListCall) AdvertiserId(advertiserId string) *EventsListCall {
|
|
c.opt_["advertiserId"] = advertiserId
|
|
return c
|
|
}
|
|
|
|
// ChargeType sets the optional parameter "chargeType": Filters out all
|
|
// charge events that are not of the given charge type. Valid values:
|
|
// 'other', 'slotting_fee', 'monthly_minimum', 'tier_bonus', 'credit',
|
|
// 'debit'.
|
|
func (c *EventsListCall) ChargeType(chargeType string) *EventsListCall {
|
|
c.opt_["chargeType"] = chargeType
|
|
return c
|
|
}
|
|
|
|
// EventDateMax sets the optional parameter "eventDateMax": Filters out
|
|
// all events later than given date. Defaults to 24 hours after
|
|
// eventMin.
|
|
func (c *EventsListCall) EventDateMax(eventDateMax string) *EventsListCall {
|
|
c.opt_["eventDateMax"] = eventDateMax
|
|
return c
|
|
}
|
|
|
|
// EventDateMin sets the optional parameter "eventDateMin": Filters out
|
|
// all events earlier than given date. Defaults to 24 hours from
|
|
// current date/time.
|
|
func (c *EventsListCall) EventDateMin(eventDateMin string) *EventsListCall {
|
|
c.opt_["eventDateMin"] = eventDateMin
|
|
return c
|
|
}
|
|
|
|
// LinkId sets the optional parameter "linkId": Caret(^) delimited list
|
|
// of link IDs. Filters out all events that do not reference one of the
|
|
// given link IDs.
|
|
func (c *EventsListCall) LinkId(linkId string) *EventsListCall {
|
|
c.opt_["linkId"] = linkId
|
|
return c
|
|
}
|
|
|
|
// MaxResults sets the optional parameter "maxResults": Max number of
|
|
// offers to return in this page. Defaults to 20.
|
|
func (c *EventsListCall) MaxResults(maxResults int64) *EventsListCall {
|
|
c.opt_["maxResults"] = maxResults
|
|
return c
|
|
}
|
|
|
|
// MemberId sets the optional parameter "memberId": Caret(^) delimited
|
|
// list of member IDs. Filters out all events that do not reference one
|
|
// of the given member IDs.
|
|
func (c *EventsListCall) MemberId(memberId string) *EventsListCall {
|
|
c.opt_["memberId"] = memberId
|
|
return c
|
|
}
|
|
|
|
// ModifyDateMax sets the optional parameter "modifyDateMax": Filters
|
|
// out all events modified later than given date. Defaults to 24 hours
|
|
// after modifyDateMin, if modifyDateMin is explicitly set.
|
|
func (c *EventsListCall) ModifyDateMax(modifyDateMax string) *EventsListCall {
|
|
c.opt_["modifyDateMax"] = modifyDateMax
|
|
return c
|
|
}
|
|
|
|
// ModifyDateMin sets the optional parameter "modifyDateMin": Filters
|
|
// out all events modified earlier than given date. Defaults to 24
|
|
// hours before the current modifyDateMax, if modifyDateMax is
|
|
// explicitly set.
|
|
func (c *EventsListCall) ModifyDateMin(modifyDateMin string) *EventsListCall {
|
|
c.opt_["modifyDateMin"] = modifyDateMin
|
|
return c
|
|
}
|
|
|
|
// OrderId sets the optional parameter "orderId": Caret(^) delimited
|
|
// list of order IDs. Filters out all events that do not reference one
|
|
// of the given order IDs.
|
|
func (c *EventsListCall) OrderId(orderId string) *EventsListCall {
|
|
c.opt_["orderId"] = orderId
|
|
return c
|
|
}
|
|
|
|
// PageToken sets the optional parameter "pageToken": The value of
|
|
// 'nextPageToken' from the previous page.
|
|
func (c *EventsListCall) PageToken(pageToken string) *EventsListCall {
|
|
c.opt_["pageToken"] = pageToken
|
|
return c
|
|
}
|
|
|
|
// ProductCategory sets the optional parameter "productCategory":
|
|
// Caret(^) delimited list of product categories. Filters out all events
|
|
// that do not reference a product in one of the given product
|
|
// categories.
|
|
func (c *EventsListCall) ProductCategory(productCategory string) *EventsListCall {
|
|
c.opt_["productCategory"] = productCategory
|
|
return c
|
|
}
|
|
|
|
// PublisherId sets the optional parameter "publisherId": Caret(^)
|
|
// delimited list of publisher IDs. Filters out all events that do not
|
|
// reference one of the given publishers IDs. Only used when under
|
|
// advertiser role.
|
|
func (c *EventsListCall) PublisherId(publisherId string) *EventsListCall {
|
|
c.opt_["publisherId"] = publisherId
|
|
return c
|
|
}
|
|
|
|
// Sku sets the optional parameter "sku": Caret(^) delimited list of
|
|
// SKUs. Filters out all events that do not reference one of the given
|
|
// SKU.
|
|
func (c *EventsListCall) Sku(sku string) *EventsListCall {
|
|
c.opt_["sku"] = sku
|
|
return c
|
|
}
|
|
|
|
// Status sets the optional parameter "status": Filters out all events
|
|
// that do not have the given status. Valid values: 'active',
|
|
// 'canceled'.
|
|
func (c *EventsListCall) Status(status string) *EventsListCall {
|
|
c.opt_["status"] = status
|
|
return c
|
|
}
|
|
|
|
// Type sets the optional parameter "type": Filters out all events that
|
|
// are not of the given type. Valid values: 'action', 'transaction',
|
|
// 'charge'.
|
|
func (c *EventsListCall) Type(type_ string) *EventsListCall {
|
|
c.opt_["type"] = type_
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *EventsListCall) Fields(s ...googleapi.Field) *EventsListCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *EventsListCall) Do() (*Events, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["advertiserId"]; ok {
|
|
params.Set("advertiserId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["chargeType"]; ok {
|
|
params.Set("chargeType", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["eventDateMax"]; ok {
|
|
params.Set("eventDateMax", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["eventDateMin"]; ok {
|
|
params.Set("eventDateMin", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["linkId"]; ok {
|
|
params.Set("linkId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["maxResults"]; ok {
|
|
params.Set("maxResults", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["memberId"]; ok {
|
|
params.Set("memberId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["modifyDateMax"]; ok {
|
|
params.Set("modifyDateMax", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["modifyDateMin"]; ok {
|
|
params.Set("modifyDateMin", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["orderId"]; ok {
|
|
params.Set("orderId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["pageToken"]; ok {
|
|
params.Set("pageToken", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["productCategory"]; ok {
|
|
params.Set("productCategory", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["publisherId"]; ok {
|
|
params.Set("publisherId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["sku"]; ok {
|
|
params.Set("sku", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["status"]; ok {
|
|
params.Set("status", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["type"]; ok {
|
|
params.Set("type", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/events")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Events
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves event data for a given advertiser/publisher.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.events.list",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId"
|
|
// ],
|
|
// "parameters": {
|
|
// "advertiserId": {
|
|
// "description": "Caret(^) delimited list of advertiser IDs. Filters out all events that do not reference one of the given advertiser IDs. Only used when under publishers role. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "chargeType": {
|
|
// "description": "Filters out all charge events that are not of the given charge type. Valid values: 'other', 'slotting_fee', 'monthly_minimum', 'tier_bonus', 'credit', 'debit'. Optional.",
|
|
// "enum": [
|
|
// "credit",
|
|
// "debit",
|
|
// "monthly_minimum",
|
|
// "other",
|
|
// "slotting_fee",
|
|
// "tier_bonus"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "A credit increases the publisher's payout amount and decreases the advertiser's invoice amount.",
|
|
// "A debit reduces the publisher's payout and increases the advertiser's invoice amount.",
|
|
// "A payment made to Google by an advertiser as a minimum monthly network fee.",
|
|
// "Catch all. Default if unset",
|
|
// "A one time payment made from an advertiser to a publisher.",
|
|
// "A payment from an advertiser to a publisher for the publisher maintaining a high tier level"
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "eventDateMax": {
|
|
// "description": "Filters out all events later than given date. Optional. Defaults to 24 hours after eventMin.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "eventDateMin": {
|
|
// "description": "Filters out all events earlier than given date. Optional. Defaults to 24 hours from current date/time.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "linkId": {
|
|
// "description": "Caret(^) delimited list of link IDs. Filters out all events that do not reference one of the given link IDs. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "maxResults": {
|
|
// "description": "Max number of offers to return in this page. Optional. Defaults to 20.",
|
|
// "format": "uint32",
|
|
// "location": "query",
|
|
// "maximum": "100",
|
|
// "minimum": "0",
|
|
// "type": "integer"
|
|
// },
|
|
// "memberId": {
|
|
// "description": "Caret(^) delimited list of member IDs. Filters out all events that do not reference one of the given member IDs. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "modifyDateMax": {
|
|
// "description": "Filters out all events modified later than given date. Optional. Defaults to 24 hours after modifyDateMin, if modifyDateMin is explicitly set.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "modifyDateMin": {
|
|
// "description": "Filters out all events modified earlier than given date. Optional. Defaults to 24 hours before the current modifyDateMax, if modifyDateMax is explicitly set.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "orderId": {
|
|
// "description": "Caret(^) delimited list of order IDs. Filters out all events that do not reference one of the given order IDs. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "pageToken": {
|
|
// "description": "The value of 'nextPageToken' from the previous page. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "productCategory": {
|
|
// "description": "Caret(^) delimited list of product categories. Filters out all events that do not reference a product in one of the given product categories. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "publisherId": {
|
|
// "description": "Caret(^) delimited list of publisher IDs. Filters out all events that do not reference one of the given publishers IDs. Only used when under advertiser role. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "sku": {
|
|
// "description": "Caret(^) delimited list of SKUs. Filters out all events that do not reference one of the given SKU. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "status": {
|
|
// "description": "Filters out all events that do not have the given status. Valid values: 'active', 'canceled'. Optional.",
|
|
// "enum": [
|
|
// "active",
|
|
// "canceled"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "Event is currently active.",
|
|
// "Event is currently canceled."
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "type": {
|
|
// "description": "Filters out all events that are not of the given type. Valid values: 'action', 'transaction', 'charge'. Optional.",
|
|
// "enum": [
|
|
// "action",
|
|
// "charge",
|
|
// "transaction"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The completion of an application, sign-up, or other process. For example, an action occurs if a user clicks an ad for a credit card and completes an application for that card.",
|
|
// "A charge event is typically a payment between an advertiser, publisher or Google.",
|
|
// "A conversion event, typically an e-commerce transaction. Some advertisers use a transaction to record other types of events, such as magazine subscriptions."
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/events",
|
|
// "response": {
|
|
// "$ref": "Events"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.links.get":
|
|
|
|
type LinksGetCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
linkId int64
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// Get: Retrieves data about a single link if the requesting
|
|
// advertiser/publisher has access to it. Advertisers can look up their
|
|
// own links. Publishers can look up visible links or links belonging to
|
|
// advertisers they are in a relationship with.
|
|
func (r *LinksService) Get(role string, roleId string, linkId int64) *LinksGetCall {
|
|
c := &LinksGetCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
c.linkId = linkId
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *LinksGetCall) Fields(s ...googleapi.Field) *LinksGetCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *LinksGetCall) Do() (*Link, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/link/{linkId}")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
"linkId": strconv.FormatInt(c.linkId, 10),
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Link
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves data about a single link if the requesting advertiser/publisher has access to it. Advertisers can look up their own links. Publishers can look up visible links or links belonging to advertisers they are in a relationship with.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.links.get",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId",
|
|
// "linkId"
|
|
// ],
|
|
// "parameters": {
|
|
// "linkId": {
|
|
// "description": "The ID of the link to look up.",
|
|
// "format": "int64",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/link/{linkId}",
|
|
// "response": {
|
|
// "$ref": "Link"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.links.insert":
|
|
|
|
type LinksInsertCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
link *Link
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// Insert: Inserts a new link.
|
|
func (r *LinksService) Insert(role string, roleId string, link *Link) *LinksInsertCall {
|
|
c := &LinksInsertCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
c.link = link
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *LinksInsertCall) Fields(s ...googleapi.Field) *LinksInsertCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *LinksInsertCall) Do() (*Link, error) {
|
|
var body io.Reader = nil
|
|
body, err := googleapi.WithoutDataWrapper.JSONReader(c.link)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
ctype := "application/json"
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/link")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("POST", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
})
|
|
req.Header.Set("Content-Type", ctype)
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Link
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Inserts a new link.",
|
|
// "httpMethod": "POST",
|
|
// "id": "gan.links.insert",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId"
|
|
// ],
|
|
// "parameters": {
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/link",
|
|
// "request": {
|
|
// "$ref": "Link"
|
|
// },
|
|
// "response": {
|
|
// "$ref": "Link"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.links.list":
|
|
|
|
type LinksListCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// List: Retrieves all links that match the query parameters.
|
|
func (r *LinksService) List(role string, roleId string) *LinksListCall {
|
|
c := &LinksListCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
return c
|
|
}
|
|
|
|
// AdvertiserId sets the optional parameter "advertiserId": Limits the
|
|
// resulting links to the ones belonging to the listed advertisers.
|
|
func (c *LinksListCall) AdvertiserId(advertiserId int64) *LinksListCall {
|
|
c.opt_["advertiserId"] = advertiserId
|
|
return c
|
|
}
|
|
|
|
// AssetSize sets the optional parameter "assetSize": The size of the
|
|
// given asset.
|
|
func (c *LinksListCall) AssetSize(assetSize string) *LinksListCall {
|
|
c.opt_["assetSize"] = assetSize
|
|
return c
|
|
}
|
|
|
|
// Authorship sets the optional parameter "authorship": The role of the
|
|
// author of the link.
|
|
func (c *LinksListCall) Authorship(authorship string) *LinksListCall {
|
|
c.opt_["authorship"] = authorship
|
|
return c
|
|
}
|
|
|
|
// CreateDateMax sets the optional parameter "createDateMax": The end of
|
|
// the create date range.
|
|
func (c *LinksListCall) CreateDateMax(createDateMax string) *LinksListCall {
|
|
c.opt_["createDateMax"] = createDateMax
|
|
return c
|
|
}
|
|
|
|
// CreateDateMin sets the optional parameter "createDateMin": The
|
|
// beginning of the create date range.
|
|
func (c *LinksListCall) CreateDateMin(createDateMin string) *LinksListCall {
|
|
c.opt_["createDateMin"] = createDateMin
|
|
return c
|
|
}
|
|
|
|
// LinkType sets the optional parameter "linkType": The type of the
|
|
// link.
|
|
func (c *LinksListCall) LinkType(linkType string) *LinksListCall {
|
|
c.opt_["linkType"] = linkType
|
|
return c
|
|
}
|
|
|
|
// MaxResults sets the optional parameter "maxResults": Max number of
|
|
// items to return in this page. Defaults to 20.
|
|
func (c *LinksListCall) MaxResults(maxResults int64) *LinksListCall {
|
|
c.opt_["maxResults"] = maxResults
|
|
return c
|
|
}
|
|
|
|
// PageToken sets the optional parameter "pageToken": The value of
|
|
// 'nextPageToken' from the previous page.
|
|
func (c *LinksListCall) PageToken(pageToken string) *LinksListCall {
|
|
c.opt_["pageToken"] = pageToken
|
|
return c
|
|
}
|
|
|
|
// PromotionType sets the optional parameter "promotionType": The
|
|
// promotion type.
|
|
func (c *LinksListCall) PromotionType(promotionType string) *LinksListCall {
|
|
c.opt_["promotionType"] = promotionType
|
|
return c
|
|
}
|
|
|
|
// RelationshipStatus sets the optional parameter "relationshipStatus":
|
|
// The status of the relationship.
|
|
func (c *LinksListCall) RelationshipStatus(relationshipStatus string) *LinksListCall {
|
|
c.opt_["relationshipStatus"] = relationshipStatus
|
|
return c
|
|
}
|
|
|
|
// SearchText sets the optional parameter "searchText": Field for full
|
|
// text search across title and merchandising text, supports link id
|
|
// search.
|
|
func (c *LinksListCall) SearchText(searchText string) *LinksListCall {
|
|
c.opt_["searchText"] = searchText
|
|
return c
|
|
}
|
|
|
|
// StartDateMax sets the optional parameter "startDateMax": The end of
|
|
// the start date range.
|
|
func (c *LinksListCall) StartDateMax(startDateMax string) *LinksListCall {
|
|
c.opt_["startDateMax"] = startDateMax
|
|
return c
|
|
}
|
|
|
|
// StartDateMin sets the optional parameter "startDateMin": The
|
|
// beginning of the start date range.
|
|
func (c *LinksListCall) StartDateMin(startDateMin string) *LinksListCall {
|
|
c.opt_["startDateMin"] = startDateMin
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *LinksListCall) Fields(s ...googleapi.Field) *LinksListCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *LinksListCall) Do() (*Links, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["advertiserId"]; ok {
|
|
params.Set("advertiserId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["assetSize"]; ok {
|
|
params.Set("assetSize", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["authorship"]; ok {
|
|
params.Set("authorship", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["createDateMax"]; ok {
|
|
params.Set("createDateMax", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["createDateMin"]; ok {
|
|
params.Set("createDateMin", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["linkType"]; ok {
|
|
params.Set("linkType", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["maxResults"]; ok {
|
|
params.Set("maxResults", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["pageToken"]; ok {
|
|
params.Set("pageToken", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["promotionType"]; ok {
|
|
params.Set("promotionType", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["relationshipStatus"]; ok {
|
|
params.Set("relationshipStatus", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["searchText"]; ok {
|
|
params.Set("searchText", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["startDateMax"]; ok {
|
|
params.Set("startDateMax", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["startDateMin"]; ok {
|
|
params.Set("startDateMin", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/links")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Links
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves all links that match the query parameters.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.links.list",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId"
|
|
// ],
|
|
// "parameters": {
|
|
// "advertiserId": {
|
|
// "description": "Limits the resulting links to the ones belonging to the listed advertisers.",
|
|
// "format": "int64",
|
|
// "location": "query",
|
|
// "repeated": true,
|
|
// "type": "string"
|
|
// },
|
|
// "assetSize": {
|
|
// "description": "The size of the given asset.",
|
|
// "location": "query",
|
|
// "repeated": true,
|
|
// "type": "string"
|
|
// },
|
|
// "authorship": {
|
|
// "description": "The role of the author of the link.",
|
|
// "enum": [
|
|
// "advertiser",
|
|
// "publisher"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "",
|
|
// ""
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "createDateMax": {
|
|
// "description": "The end of the create date range.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "createDateMin": {
|
|
// "description": "The beginning of the create date range.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "linkType": {
|
|
// "description": "The type of the link.",
|
|
// "enum": [
|
|
// "banner",
|
|
// "text"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "",
|
|
// ""
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "maxResults": {
|
|
// "description": "Max number of items to return in this page. Optional. Defaults to 20.",
|
|
// "format": "uint32",
|
|
// "location": "query",
|
|
// "maximum": "100",
|
|
// "minimum": "0",
|
|
// "type": "integer"
|
|
// },
|
|
// "pageToken": {
|
|
// "description": "The value of 'nextPageToken' from the previous page. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "promotionType": {
|
|
// "description": "The promotion type.",
|
|
// "enum": [
|
|
// "coupon",
|
|
// "free_gift",
|
|
// "free_shipping",
|
|
// "percent_off",
|
|
// "price_cut"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "",
|
|
// "",
|
|
// "",
|
|
// "",
|
|
// ""
|
|
// ],
|
|
// "location": "query",
|
|
// "repeated": true,
|
|
// "type": "string"
|
|
// },
|
|
// "relationshipStatus": {
|
|
// "description": "The status of the relationship.",
|
|
// "enum": [
|
|
// "approved",
|
|
// "available"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "",
|
|
// ""
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "searchText": {
|
|
// "description": "Field for full text search across title and merchandising text, supports link id search.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "startDateMax": {
|
|
// "description": "The end of the start date range.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "startDateMin": {
|
|
// "description": "The beginning of the start date range.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/links",
|
|
// "response": {
|
|
// "$ref": "Links"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.publishers.get":
|
|
|
|
type PublishersGetCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// Get: Retrieves data about a single advertiser if that the requesting
|
|
// advertiser/publisher has access to it. Only advertisers can look up
|
|
// publishers. Publishers can request information about themselves by
|
|
// omitting the publisherId query parameter.
|
|
func (r *PublishersService) Get(role string, roleId string) *PublishersGetCall {
|
|
c := &PublishersGetCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
return c
|
|
}
|
|
|
|
// PublisherId sets the optional parameter "publisherId": The ID of the
|
|
// publisher to look up.
|
|
func (c *PublishersGetCall) PublisherId(publisherId string) *PublishersGetCall {
|
|
c.opt_["publisherId"] = publisherId
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *PublishersGetCall) Fields(s ...googleapi.Field) *PublishersGetCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *PublishersGetCall) Do() (*Publisher, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["publisherId"]; ok {
|
|
params.Set("publisherId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/publisher")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Publisher
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves data about a single advertiser if that the requesting advertiser/publisher has access to it. Only advertisers can look up publishers. Publishers can request information about themselves by omitting the publisherId query parameter.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.publishers.get",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId"
|
|
// ],
|
|
// "parameters": {
|
|
// "publisherId": {
|
|
// "description": "The ID of the publisher to look up. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/publisher",
|
|
// "response": {
|
|
// "$ref": "Publisher"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.publishers.list":
|
|
|
|
type PublishersListCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// List: Retrieves data about all publishers that the requesting
|
|
// advertiser/publisher has access to.
|
|
func (r *PublishersService) List(role string, roleId string) *PublishersListCall {
|
|
c := &PublishersListCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
return c
|
|
}
|
|
|
|
// MaxResults sets the optional parameter "maxResults": Max number of
|
|
// items to return in this page. Defaults to 20.
|
|
func (c *PublishersListCall) MaxResults(maxResults int64) *PublishersListCall {
|
|
c.opt_["maxResults"] = maxResults
|
|
return c
|
|
}
|
|
|
|
// MinNinetyDayEpc sets the optional parameter "minNinetyDayEpc":
|
|
// Filters out all publishers that have a ninety day EPC average lower
|
|
// than the given value (inclusive). Min value: 0.0.
|
|
func (c *PublishersListCall) MinNinetyDayEpc(minNinetyDayEpc float64) *PublishersListCall {
|
|
c.opt_["minNinetyDayEpc"] = minNinetyDayEpc
|
|
return c
|
|
}
|
|
|
|
// MinPayoutRank sets the optional parameter "minPayoutRank": A value
|
|
// between 1 and 4, where 1 represents the quartile of publishers with
|
|
// the lowest ranks and 4 represents the quartile of publishers with the
|
|
// highest ranks. Filters out all publishers with a lower rank than the
|
|
// given quartile. For example if a 2 was given only publishers with a
|
|
// payout rank of 25 or higher would be included.
|
|
func (c *PublishersListCall) MinPayoutRank(minPayoutRank int64) *PublishersListCall {
|
|
c.opt_["minPayoutRank"] = minPayoutRank
|
|
return c
|
|
}
|
|
|
|
// MinSevenDayEpc sets the optional parameter "minSevenDayEpc": Filters
|
|
// out all publishers that have a seven day EPC average lower than the
|
|
// given value (inclusive). Min value 0.0.
|
|
func (c *PublishersListCall) MinSevenDayEpc(minSevenDayEpc float64) *PublishersListCall {
|
|
c.opt_["minSevenDayEpc"] = minSevenDayEpc
|
|
return c
|
|
}
|
|
|
|
// PageToken sets the optional parameter "pageToken": The value of
|
|
// 'nextPageToken' from the previous page.
|
|
func (c *PublishersListCall) PageToken(pageToken string) *PublishersListCall {
|
|
c.opt_["pageToken"] = pageToken
|
|
return c
|
|
}
|
|
|
|
// PublisherCategory sets the optional parameter "publisherCategory":
|
|
// Caret(^) delimted list of publisher categories. Valid categories:
|
|
// (unclassified|community_and_content|shopping_and_promotion|loyalty_and
|
|
// _rewards|network|search_specialist|comparison_shopping|email).
|
|
// Filters out all publishers not in one of the given advertiser
|
|
// categories.
|
|
func (c *PublishersListCall) PublisherCategory(publisherCategory string) *PublishersListCall {
|
|
c.opt_["publisherCategory"] = publisherCategory
|
|
return c
|
|
}
|
|
|
|
// RelationshipStatus sets the optional parameter "relationshipStatus":
|
|
// Filters out all publishers for which do not have the given
|
|
// relationship status with the requesting publisher.
|
|
func (c *PublishersListCall) RelationshipStatus(relationshipStatus string) *PublishersListCall {
|
|
c.opt_["relationshipStatus"] = relationshipStatus
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *PublishersListCall) Fields(s ...googleapi.Field) *PublishersListCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *PublishersListCall) Do() (*Publishers, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["maxResults"]; ok {
|
|
params.Set("maxResults", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["minNinetyDayEpc"]; ok {
|
|
params.Set("minNinetyDayEpc", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["minPayoutRank"]; ok {
|
|
params.Set("minPayoutRank", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["minSevenDayEpc"]; ok {
|
|
params.Set("minSevenDayEpc", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["pageToken"]; ok {
|
|
params.Set("pageToken", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["publisherCategory"]; ok {
|
|
params.Set("publisherCategory", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["relationshipStatus"]; ok {
|
|
params.Set("relationshipStatus", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/publishers")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Publishers
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves data about all publishers that the requesting advertiser/publisher has access to.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.publishers.list",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId"
|
|
// ],
|
|
// "parameters": {
|
|
// "maxResults": {
|
|
// "description": "Max number of items to return in this page. Optional. Defaults to 20.",
|
|
// "format": "uint32",
|
|
// "location": "query",
|
|
// "maximum": "100",
|
|
// "minimum": "0",
|
|
// "type": "integer"
|
|
// },
|
|
// "minNinetyDayEpc": {
|
|
// "description": "Filters out all publishers that have a ninety day EPC average lower than the given value (inclusive). Min value: 0.0. Optional.",
|
|
// "format": "double",
|
|
// "location": "query",
|
|
// "type": "number"
|
|
// },
|
|
// "minPayoutRank": {
|
|
// "description": "A value between 1 and 4, where 1 represents the quartile of publishers with the lowest ranks and 4 represents the quartile of publishers with the highest ranks. Filters out all publishers with a lower rank than the given quartile. For example if a 2 was given only publishers with a payout rank of 25 or higher would be included. Optional.",
|
|
// "format": "int32",
|
|
// "location": "query",
|
|
// "maximum": "4",
|
|
// "minimum": "1",
|
|
// "type": "integer"
|
|
// },
|
|
// "minSevenDayEpc": {
|
|
// "description": "Filters out all publishers that have a seven day EPC average lower than the given value (inclusive). Min value 0.0. Optional.",
|
|
// "format": "double",
|
|
// "location": "query",
|
|
// "type": "number"
|
|
// },
|
|
// "pageToken": {
|
|
// "description": "The value of 'nextPageToken' from the previous page. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "publisherCategory": {
|
|
// "description": "Caret(^) delimted list of publisher categories. Valid categories: (unclassified|community_and_content|shopping_and_promotion|loyalty_and_rewards|network|search_specialist|comparison_shopping|email). Filters out all publishers not in one of the given advertiser categories. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "relationshipStatus": {
|
|
// "description": "Filters out all publishers for which do not have the given relationship status with the requesting publisher.",
|
|
// "enum": [
|
|
// "approved",
|
|
// "available",
|
|
// "deactivated",
|
|
// "declined",
|
|
// "pending"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "Publishers you've approved to your program.",
|
|
// "Publishers available for you to recruit.",
|
|
// "A publisher that you terminated from your program. Publishers also have the ability to remove themselves from your program.",
|
|
// "A publisher that you did not approve to your program.",
|
|
// "Publishers that have applied to your program. We recommend reviewing and deciding on pending publishers on a weekly basis."
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/publishers",
|
|
// "response": {
|
|
// "$ref": "Publishers"
|
|
// }
|
|
// }
|
|
|
|
}
|
|
|
|
// method id "gan.reports.get":
|
|
|
|
type ReportsGetCall struct {
|
|
s *Service
|
|
role string
|
|
roleId string
|
|
reportType string
|
|
opt_ map[string]interface{}
|
|
}
|
|
|
|
// Get: Retrieves a report of the specified type.
|
|
func (r *ReportsService) Get(role string, roleId string, reportType string) *ReportsGetCall {
|
|
c := &ReportsGetCall{s: r.s, opt_: make(map[string]interface{})}
|
|
c.role = role
|
|
c.roleId = roleId
|
|
c.reportType = reportType
|
|
return c
|
|
}
|
|
|
|
// AdvertiserId sets the optional parameter "advertiserId": The IDs of
|
|
// the advertisers to look up, if applicable.
|
|
func (c *ReportsGetCall) AdvertiserId(advertiserId string) *ReportsGetCall {
|
|
c.opt_["advertiserId"] = advertiserId
|
|
return c
|
|
}
|
|
|
|
// CalculateTotals sets the optional parameter "calculateTotals":
|
|
// Whether or not to calculate totals rows.
|
|
func (c *ReportsGetCall) CalculateTotals(calculateTotals bool) *ReportsGetCall {
|
|
c.opt_["calculateTotals"] = calculateTotals
|
|
return c
|
|
}
|
|
|
|
// EndDate sets the optional parameter "endDate": The end date
|
|
// (exclusive), in RFC 3339 format, for the report data to be returned.
|
|
// Defaults to one day after startDate, if that is given, or today.
|
|
func (c *ReportsGetCall) EndDate(endDate string) *ReportsGetCall {
|
|
c.opt_["endDate"] = endDate
|
|
return c
|
|
}
|
|
|
|
// EventType sets the optional parameter "eventType": Filters out all
|
|
// events that are not of the given type. Valid values: 'action',
|
|
// 'transaction', or 'charge'.
|
|
func (c *ReportsGetCall) EventType(eventType string) *ReportsGetCall {
|
|
c.opt_["eventType"] = eventType
|
|
return c
|
|
}
|
|
|
|
// LinkId sets the optional parameter "linkId": Filters to capture one
|
|
// of given link IDs.
|
|
func (c *ReportsGetCall) LinkId(linkId string) *ReportsGetCall {
|
|
c.opt_["linkId"] = linkId
|
|
return c
|
|
}
|
|
|
|
// MaxResults sets the optional parameter "maxResults": Max number of
|
|
// items to return in this page. Defaults to return all results.
|
|
func (c *ReportsGetCall) MaxResults(maxResults int64) *ReportsGetCall {
|
|
c.opt_["maxResults"] = maxResults
|
|
return c
|
|
}
|
|
|
|
// OrderId sets the optional parameter "orderId": Filters to capture one
|
|
// of the given order IDs.
|
|
func (c *ReportsGetCall) OrderId(orderId string) *ReportsGetCall {
|
|
c.opt_["orderId"] = orderId
|
|
return c
|
|
}
|
|
|
|
// PublisherId sets the optional parameter "publisherId": The IDs of the
|
|
// publishers to look up, if applicable.
|
|
func (c *ReportsGetCall) PublisherId(publisherId string) *ReportsGetCall {
|
|
c.opt_["publisherId"] = publisherId
|
|
return c
|
|
}
|
|
|
|
// StartDate sets the optional parameter "startDate": The start date
|
|
// (inclusive), in RFC 3339 format, for the report data to be returned.
|
|
// Defaults to one day before endDate, if that is given, or yesterday.
|
|
func (c *ReportsGetCall) StartDate(startDate string) *ReportsGetCall {
|
|
c.opt_["startDate"] = startDate
|
|
return c
|
|
}
|
|
|
|
// StartIndex sets the optional parameter "startIndex": Offset on which
|
|
// to return results when paging.
|
|
func (c *ReportsGetCall) StartIndex(startIndex int64) *ReportsGetCall {
|
|
c.opt_["startIndex"] = startIndex
|
|
return c
|
|
}
|
|
|
|
// Status sets the optional parameter "status": Filters out all events
|
|
// that do not have the given status. Valid values: 'active',
|
|
// 'canceled', or 'invalid'.
|
|
func (c *ReportsGetCall) Status(status string) *ReportsGetCall {
|
|
c.opt_["status"] = status
|
|
return c
|
|
}
|
|
|
|
// Fields allows partial responses to be retrieved.
|
|
// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
|
|
// for more information.
|
|
func (c *ReportsGetCall) Fields(s ...googleapi.Field) *ReportsGetCall {
|
|
c.opt_["fields"] = googleapi.CombineFields(s)
|
|
return c
|
|
}
|
|
|
|
func (c *ReportsGetCall) Do() (*Report, error) {
|
|
var body io.Reader = nil
|
|
params := make(url.Values)
|
|
params.Set("alt", "json")
|
|
if v, ok := c.opt_["advertiserId"]; ok {
|
|
params.Set("advertiserId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["calculateTotals"]; ok {
|
|
params.Set("calculateTotals", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["endDate"]; ok {
|
|
params.Set("endDate", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["eventType"]; ok {
|
|
params.Set("eventType", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["linkId"]; ok {
|
|
params.Set("linkId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["maxResults"]; ok {
|
|
params.Set("maxResults", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["orderId"]; ok {
|
|
params.Set("orderId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["publisherId"]; ok {
|
|
params.Set("publisherId", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["startDate"]; ok {
|
|
params.Set("startDate", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["startIndex"]; ok {
|
|
params.Set("startIndex", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["status"]; ok {
|
|
params.Set("status", fmt.Sprintf("%v", v))
|
|
}
|
|
if v, ok := c.opt_["fields"]; ok {
|
|
params.Set("fields", fmt.Sprintf("%v", v))
|
|
}
|
|
urls := googleapi.ResolveRelative(c.s.BasePath, "{role}/{roleId}/report/{reportType}")
|
|
urls += "?" + params.Encode()
|
|
req, _ := http.NewRequest("GET", urls, body)
|
|
googleapi.Expand(req.URL, map[string]string{
|
|
"role": c.role,
|
|
"roleId": c.roleId,
|
|
"reportType": c.reportType,
|
|
})
|
|
req.Header.Set("User-Agent", "google-api-go-client/0.5")
|
|
res, err := c.s.client.Do(req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer googleapi.CloseBody(res)
|
|
if err := googleapi.CheckResponse(res); err != nil {
|
|
return nil, err
|
|
}
|
|
var ret *Report
|
|
if err := json.NewDecoder(res.Body).Decode(&ret); err != nil {
|
|
return nil, err
|
|
}
|
|
return ret, nil
|
|
// {
|
|
// "description": "Retrieves a report of the specified type.",
|
|
// "httpMethod": "GET",
|
|
// "id": "gan.reports.get",
|
|
// "parameterOrder": [
|
|
// "role",
|
|
// "roleId",
|
|
// "reportType"
|
|
// ],
|
|
// "parameters": {
|
|
// "advertiserId": {
|
|
// "description": "The IDs of the advertisers to look up, if applicable.",
|
|
// "location": "query",
|
|
// "repeated": true,
|
|
// "type": "string"
|
|
// },
|
|
// "calculateTotals": {
|
|
// "description": "Whether or not to calculate totals rows. Optional.",
|
|
// "location": "query",
|
|
// "type": "boolean"
|
|
// },
|
|
// "endDate": {
|
|
// "description": "The end date (exclusive), in RFC 3339 format, for the report data to be returned. Defaults to one day after startDate, if that is given, or today. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "eventType": {
|
|
// "description": "Filters out all events that are not of the given type. Valid values: 'action', 'transaction', or 'charge'. Optional.",
|
|
// "enum": [
|
|
// "action",
|
|
// "charge",
|
|
// "transaction"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "Event type is action.",
|
|
// "Event type is charge.",
|
|
// "Event type is transaction."
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "linkId": {
|
|
// "description": "Filters to capture one of given link IDs. Optional.",
|
|
// "location": "query",
|
|
// "repeated": true,
|
|
// "type": "string"
|
|
// },
|
|
// "maxResults": {
|
|
// "description": "Max number of items to return in this page. Optional. Defaults to return all results.",
|
|
// "format": "uint32",
|
|
// "location": "query",
|
|
// "minimum": "0",
|
|
// "type": "integer"
|
|
// },
|
|
// "orderId": {
|
|
// "description": "Filters to capture one of the given order IDs. Optional.",
|
|
// "location": "query",
|
|
// "repeated": true,
|
|
// "type": "string"
|
|
// },
|
|
// "publisherId": {
|
|
// "description": "The IDs of the publishers to look up, if applicable.",
|
|
// "location": "query",
|
|
// "repeated": true,
|
|
// "type": "string"
|
|
// },
|
|
// "reportType": {
|
|
// "description": "The type of report being requested. Valid values: 'order_delta'. Required.",
|
|
// "enum": [
|
|
// "order_delta"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The order delta report type."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "role": {
|
|
// "description": "The role of the requester. Valid values: 'advertisers' or 'publishers'.",
|
|
// "enum": [
|
|
// "advertisers",
|
|
// "publishers"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "The requester is requesting as an advertiser.",
|
|
// "The requester is requesting as a publisher."
|
|
// ],
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "roleId": {
|
|
// "description": "The ID of the requesting advertiser or publisher.",
|
|
// "location": "path",
|
|
// "required": true,
|
|
// "type": "string"
|
|
// },
|
|
// "startDate": {
|
|
// "description": "The start date (inclusive), in RFC 3339 format, for the report data to be returned. Defaults to one day before endDate, if that is given, or yesterday. Optional.",
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// },
|
|
// "startIndex": {
|
|
// "description": "Offset on which to return results when paging. Optional.",
|
|
// "format": "uint32",
|
|
// "location": "query",
|
|
// "minimum": "0",
|
|
// "type": "integer"
|
|
// },
|
|
// "status": {
|
|
// "description": "Filters out all events that do not have the given status. Valid values: 'active', 'canceled', or 'invalid'. Optional.",
|
|
// "enum": [
|
|
// "active",
|
|
// "canceled",
|
|
// "invalid"
|
|
// ],
|
|
// "enumDescriptions": [
|
|
// "Event is currently active.",
|
|
// "Event is currently canceled.",
|
|
// "Event is currently invalid."
|
|
// ],
|
|
// "location": "query",
|
|
// "type": "string"
|
|
// }
|
|
// },
|
|
// "path": "{role}/{roleId}/report/{reportType}",
|
|
// "response": {
|
|
// "$ref": "Report"
|
|
// }
|
|
// }
|
|
|
|
}
|