Пример #1
0
func main() {
	flag.Parse()
	config, err := gads.NewCredentialsFromFile(*configJson)
	if err != nil {
		log.Fatal(err)
	}

	config.Auth.PartialFailure = true

	service := gads.NewAdGroupService(&config.Auth)

	adGroupList := []gads.AdGroupLabel{
		gads.AdGroupLabel{
			AdGroupId: 1234567890,
			LabelId:   1234567,
		},
		gads.AdGroupLabel{
			AdGroupId: 1234567891,
			LabelId:   1234567,
		},
		gads.AdGroupLabel{
			AdGroupId: 1234567892,
			LabelId:   1234567,
		},
	}

	adGroupLabels, err := service.MutateLabel(
		gads.AdGroupLabelOperations{
			"ADD": adGroupList,
		},
	)

	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(adGroupLabels)

}
Пример #2
0
func main() {
	flag.Parse()
	config, err := gads.NewCredentialsFromFile(*configJson)
	if err != nil {
		log.Fatal(err)
	}
	// Bulk Mutate
	ms := gads.NewMutateJobService(&config.Auth)
	policy := new(gads.BulkMutateJobPolicy)

	// If you need to add prerequisites
	//policy.PrerequisiteJobIds = append(policy.PrerequisiteJobIds, 123456)

	// Creating AdGroups
	/*ago := gads.AdGroupOperations{
		"ADD": {
			gads.AdGroup{
				Name:       "test ad group " + rand_str(10),
				Status:     "PAUSED",
				CampaignId: campaignId,
			},
			gads.AdGroup{
				Name:       "test ad group " + rand_str(10),
				Status:     "PAUSED",
				CampaignId: campaignId,
			},
		},
	}*/

	// Updating AdGroups
	/*ago := gads.AdGroupOperations{
		"SET": {
			gads.AdGroup{
				Id: 1234567890,
				CampaignId: campaignId,
				BiddingStrategyConfiguration: []gads.BiddingStrategyConfiguration{
					gads.BiddingStrategyConfiguration{
						StrategyType: "MANUAL_CPC",
						Bids: []gads.Bid{
							gads.Bid{
								Type:   "CpcBid",
								Amount: 2000000,
							},
						},
					},
				},
			},
			gads.AdGroup{
				Id: 1234567890,
				CampaignId: campaignId,
				BiddingStrategyConfiguration: []gads.BiddingStrategyConfiguration{
					gads.BiddingStrategyConfiguration{
						StrategyType: "MANUAL_CPC",
						Bids: []gads.Bid{
							gads.Bid{
								Type:   "CpcBid",
								Amount: 2000000,
							},
						},
					},
				},
			},
		},
	}*/

	ago := gads.AdGroupCriterionOperations{
		"SET": {
			gads.BiddableAdGroupCriterion{
				AdGroupId: 1234567890,
				Criterion: gads.KeywordCriterion{
					Id: 1234567890,
				},
				BiddingStrategyConfiguration: &gads.BiddingStrategyConfiguration{
					Bids: []gads.Bid{
						gads.Bid{
							Type:   "CpcBid",
							Amount: 3000000,
						},
					},
				},
			},
			gads.BiddableAdGroupCriterion{
				AdGroupId: 1234567890,
				Criterion: gads.KeywordCriterion{
					Id: 1234567890,
				},
				BiddingStrategyConfiguration: &gads.BiddingStrategyConfiguration{
					Bids: []gads.Bid{
						gads.Bid{
							Type:   "CpcBid",
							Amount: 2000000,
						},
					},
				},
			},
		},
	}

	if resp, err := ms.Mutate(ago, policy); err == nil {
		jobId := resp.Id

		// loop
		for {
			// recheck every 5 seconds
			time.Sleep(5 * time.Second)

			jobSelector := gads.BulkMutateJobSelector{JobIds: []int64{jobId}}

			result, err := ms.Get(jobSelector)

			if err != nil {
				panic(err)
			}

			if result.Status == "COMPLETED" {
				break
			}

			if result.Status == "FAILED" {
				// probably do something else here
				panic("Job result failed")
			}
		}

		jobSelector := gads.BulkMutateJobSelector{JobIds: []int64{jobId}}
		result, err := ms.GetResult(jobSelector)

		if err != nil {
			panic(err)
		}
		jsonResult, _ := json.Marshal(result)
		fmt.Println(result)
		fmt.Println(string(jsonResult))

	} else {
		// handle err
		panic(err)
	}

}