facebook-marketing-api-golang-sdk

module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 31, 2024 License: MIT

README

Facebook Marketing API SDK for Golang

Go Report Card

This go package provides a comprehensive list of methods for interacting with Facebook's Graph Marketing api.


dzt-corp logo

You enjoy working with the Facebook Marketing API? We are hiring!

Find out what open positions we have at the moment and why dzt-corp is a great place to work at: https://www.dzt-corp.com/us/talent


The SDK supports crud operations for the following entities:

  • ad_account
  • adset
  • custom_conversion
  • insights
  • post
  • videos
  • adcreative
  • audience
  • event
  • interest
  • search
  • ads
  • campaign
  • image
  • page
  • service

Usage

We assume you already have a Facebook Developer account and configured an accessToken and appSecret. If not, checkout Facebooks Get Started

Create a new fbService client
import(
	"github.com/dzt-corp/facebook-marketing-api-golang-sdk/marketing/v21"
)

func main(){
	fbService, _ := v21.New(l, accessToken, appSecret)
	
	// [Code snippets from other example below go here]
}
Create a campaign
c := v21.Campaign{
	// Populate struct values
}
id, _ := fbService.Campaigns.Create(ctx, c)
Upload an external asset to Facebook
accountID := "[account id]"
imagePath := "[path to image]"
imageName := "[image name]"

file, _ := os.Open(imagePath)
im, _ := fbService.Images.Upload(context.Background(), accountID,imageName, file)

// You now can access the ID of the uploaded image via im.ID
fmt.Println("Uploaded image has id: ", im.ID)
accountID := "[account id]"
videoPath := "[path to video]"
videoName := "[video name]"

file, _ := os.Open(videoPath)
vid, _ := fbService.Videos.Upload(context.Background(), accountID, videoName, file)

// You now can access the ID of the uploaded video via vid.ID
fmt.Println("Uploaded video has id: ", vid.ID)
Read campaigns from an account
id := "[account_id]"

campaigns, _ := p.fbService.Campaigns.List(id).Do(ctx)
Get reporting data for an account at adset level
// put the columns you need for the report
columns := []string {}

//account id you want the report from
id := "[account_id]"


// Create new report
report := fbService.Insights.NewReport(id)

// Configure report
report.Level("adset").
	DailyTimeIncrement(true). // get day by day reporting
		Fields(columns...). // the fields you want your report to have
			DatePreset("lifetime") // the time period for the report

// pass a channel which gets populated with results
ch := make(chan v21.Insight)
nRecords,_ := report.GenerateReport(ctx,ch)

//range over the channel to get Insight objects
for insight := range ch {
    fmt.Println("New report result: ", insight)
}

Directories

Path Synopsis
marketing
v21

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL