google-ads-api

61 views
Skip to first unread message

MEGANATHAN P

unread,
Apr 26, 2023, 11:28:43 AM4/26/23
to Google Ads API and AdWords API Forum
Hai Team,

Anyone share the how to create the campaign & campaignbudget create using the google-ads-api npm package.Share any dodumentation or any code example for node js


Thanks!

Vladyslav Lazurenko

unread,
Apr 26, 2023, 2:15:39 PM4/26/23
to Google Ads API and AdWords API Forum
Here you go 

```
 async createCampaign(campaign: resources.ICampaign, options: CampaignCreateOptions): Promise<resources.ICampaign> {
        const customer = this.getCustomer(CUSTOMER_ID);
        const operations = this.createCampaignMutateOperations(campaign, options);

        const mutationRes = await customer.mutateResources(operations);

        return mutationRes.mutate_operation_responses[0].campaign_result?.campaign;
    }

 private createCampaignMutateOperations(
        campaign: resources.ICampaign,
        options: CampaignCreateOptions
    ): MutateOperation<CampaignResourcesOps>[] {
        const campaignRN = ResourceNames.campaign(CUSTOMER_ID, '-1');
        const budgetRN = ResourceNames.campaignBudget(CUSTOMER_ID, '-2');

        return [
            { entity: 'campaign_budget', operation: 'create', resource: { ...options.budget, resource_name: budgetRN } },
            {
                entity: 'campaign',
                operation: 'create',
                resource: {
                    ...campaign,
                    resource_name: campaignRN,
                    campaign_budget: budgetRN,
                }
            },
        ];
    }
``` 

PS. suggest splitting mutate operations aggregator and actual call. Later your full campaign hierarchy might be built in 1 mutate transactional request: (just an example)
```
async createCampaignFullHierarchy(body: CampaignFullHierarchyCreate) {
        const campaignOps = this.createCampaignMutateOperations(body.campaign, body.options);

        body.adGroup.campaign = campaignOps.find((e) => e.entity === 'campaign')?.resource?.resource_name;
        const adGroupOps = this.createAdGroupMutateOperations(body.adGroup);

        body.adGroupAd.ad_group = adGroupOps.find((e) => e.entity === 'ad_group')?.resource?.resource_name;
        const adGroupAdOps = this.createAdGroupAdMutateOperations(body.adGroupAd, body.videoIds);

        const operations: MutateOperation<CampaignResourcesOps | AdGroupResourcesOps | AdGroupAdResourcesOps>[] = [
            ...campaignOps,
            ...adGroupOps,
            ...adGroupAdOps
        ];

        const customer = this.getCustomer(CUSTOMER_ID);
        const mutationRes = await customer.mutateResources(operations);
        .....
    }
``` 

Google Ads API Forum Advisor

unread,
Apr 26, 2023, 3:36:19 PM4/26/23
to meganath...@gmail.com, adwor...@googlegroups.com

Hi, 

Thanks for reaching out to the Google Ads API Team. I hope you are doing well today.

With regards to your concern, please the below Google Ads API documentations and guidelines for more information and reference.
 


In addition, unfortunately, node js is not yet supported in Google Ads API documentation, however you may refer to Client Libraries (https://developers.google.com/google-ads/api/docs/client-libs) and see what is available.

Have a great day.

Regards,

Google Logo Google Ads API Team


ref:_00D1U1174p._5004Q2kqc8p:ref
Reply all
Reply to author
Forward
0 new messages