@@ -15,34 +15,42 @@ var debugCmd = &cobra.Command{
1515 Hidden : true ,
1616}
1717
18- // --- Google Ads debug ---
18+ // --- Meta Ads debug ---
1919
20- var debugGoogleAdsCmd = & cobra.Command {
21- Use : "google-ads" ,
22- Short : "Send raw GAQL query to Google Ads API" ,
23- RunE : runDebugGoogleAds ,
20+ var debugMetaAdsCmd = & cobra.Command {
21+ Use : "meta-ads" ,
22+ Short : "Send raw Graph API query to Meta Ads API" ,
23+ Long : `Send a raw Graph API request through Pipeboard (admin only).
24+
25+ Examples:
26+ pipeboard debug meta-ads --path "me/adaccounts?fields=id,name"
27+ pipeboard debug meta-ads --path "act_123/campaigns" --params '{"fields":"id,name,status"}'
28+ pipeboard debug meta-ads --path "act_123/ads" --method POST --params '{"status":"PAUSED"}'` ,
29+ RunE : runDebugMetaAds ,
2430}
2531
2632var (
27- debugGoogleCustomerID string
28- debugGoogleLoginCustomerID string
29- debugGoogleGAQL string
33+ debugMetaPath string
34+ debugMetaMethod string
35+ debugMetaParams string
36+ debugMetaPageID string
3037)
3138
3239func init () {
40+ debugMetaAdsCmd .Flags ().StringVar (& debugMetaPath , "path" , "" , "Graph API path, e.g. me/adaccounts or act_123/campaigns (required)" )
41+ debugMetaAdsCmd .Flags ().StringVar (& debugMetaMethod , "method" , "GET" , "HTTP method: GET or POST" )
42+ debugMetaAdsCmd .Flags ().StringVar (& debugMetaParams , "params" , "" , "JSON object of additional query/body params" )
43+ debugMetaAdsCmd .Flags ().StringVar (& debugMetaPageID , "page-id" , "" , "Use this page's access token instead of user token" )
44+ debugMetaAdsCmd .MarkFlagRequired ("path" )
45+ debugCmd .AddCommand (debugMetaAdsCmd )
46+
3347 debugGoogleAdsCmd .Flags ().StringVar (& debugGoogleCustomerID , "customer-id" , "" , "Google Ads customer ID (required)" )
3448 debugGoogleAdsCmd .Flags ().StringVar (& debugGoogleLoginCustomerID , "login-customer-id" , "" , "MCC login customer ID (optional)" )
3549 debugGoogleAdsCmd .Flags ().StringVar (& debugGoogleGAQL , "gaql" , "" , "GAQL query to execute (required)" )
3650 debugGoogleAdsCmd .MarkFlagRequired ("customer-id" )
3751 debugGoogleAdsCmd .MarkFlagRequired ("gaql" )
3852 debugCmd .AddCommand (debugGoogleAdsCmd )
3953
40- debugMetaAdsCmd .Flags ().StringVar (& debugMetaAccountID , "account-id" , "" , "Meta ad account ID, e.g. act_123 (required)" )
41- debugMetaAdsCmd .Flags ().StringVar (& debugMetaPath , "path" , "" , "Graph API path, e.g. act_123/campaigns?fields=id,name (required)" )
42- debugMetaAdsCmd .MarkFlagRequired ("account-id" )
43- debugMetaAdsCmd .MarkFlagRequired ("path" )
44- debugCmd .AddCommand (debugMetaAdsCmd )
45-
4654 debugTikTokAdsCmd .Flags ().StringVar (& debugTikTokAdvertiserID , "advertiser-id" , "" , "TikTok advertiser ID (required)" )
4755 debugTikTokAdsCmd .Flags ().StringVar (& debugTikTokEndpoint , "endpoint" , "" , "TikTok API endpoint path (required)" )
4856 debugTikTokAdsCmd .Flags ().StringVar (& debugTikTokParams , "params" , "{}" , "JSON params for the request" )
@@ -51,65 +59,59 @@ func init() {
5159 debugCmd .AddCommand (debugTikTokAdsCmd )
5260}
5361
54- func runDebugGoogleAds (cmd * cobra.Command , args []string ) error {
62+ func runDebugMetaAds (cmd * cobra.Command , args []string ) error {
5563 token , err := getToken ()
5664 if err != nil {
5765 return err
5866 }
5967
60- c := client .New (apiURL , token )
68+ // Parse optional params
69+ var params map [string ]string
70+ if debugMetaParams != "" {
71+ if err := json .Unmarshal ([]byte (debugMetaParams ), & params ); err != nil {
72+ return fmt .Errorf ("invalid JSON in --params: %w" , err )
73+ }
74+ }
6175
62- params := map [string ]interface {}{
63- "customer_id " : debugGoogleCustomerID ,
64- "gaql " : debugGoogleGAQL ,
76+ body := map [string ]interface {}{
77+ "path " : debugMetaPath ,
78+ "method " : debugMetaMethod ,
6579 }
66- if debugGoogleLoginCustomerID != "" {
67- params ["login_customer_id" ] = debugGoogleLoginCustomerID
80+ if params != nil {
81+ body ["params" ] = params
82+ }
83+ if debugMetaPageID != "" {
84+ body ["page_id" ] = debugMetaPageID
6885 }
6986
70- result , err := c .CallTool ("google-ads-mcp" , "debug_query" , params )
87+ c := client .NewREST (getWebAPIURL (), token )
88+ result , err := c .Post ("/api/debug/meta-ads" , body )
7189 if err != nil {
7290 return fmt .Errorf ("debug query failed: %w" , err )
7391 }
7492
7593 return printJSON (result )
7694}
7795
78- // --- Meta Ads debug ---
96+ // --- Google Ads debug (placeholder - not yet implemented server-side) ---
7997
80- var debugMetaAdsCmd = & cobra.Command {
81- Use : "meta -ads" ,
82- Short : "Send raw Graph API query to Meta Ads API" ,
83- RunE : runDebugMetaAds ,
98+ var debugGoogleAdsCmd = & cobra.Command {
99+ Use : "google -ads" ,
100+ Short : "Send raw GAQL query to Google Ads API" ,
101+ RunE : runDebugGoogleAds ,
84102}
85103
86104var (
87- debugMetaAccountID string
88- debugMetaPath string
105+ debugGoogleCustomerID string
106+ debugGoogleLoginCustomerID string
107+ debugGoogleGAQL string
89108)
90109
91- func runDebugMetaAds (cmd * cobra.Command , args []string ) error {
92- token , err := getToken ()
93- if err != nil {
94- return err
95- }
96-
97- c := client .New (apiURL , token )
98-
99- params := map [string ]interface {}{
100- "account_id" : debugMetaAccountID ,
101- "path" : debugMetaPath ,
102- }
103-
104- result , err := c .CallTool ("meta-ads-mcp" , "debug_query" , params )
105- if err != nil {
106- return fmt .Errorf ("debug query failed: %w" , err )
107- }
108-
109- return printJSON (result )
110+ func runDebugGoogleAds (cmd * cobra.Command , args []string ) error {
111+ return fmt .Errorf ("not yet implemented server-side. Coming soon" )
110112}
111113
112- // --- TikTok Ads debug ---
114+ // --- TikTok Ads debug (placeholder - not yet implemented server-side) ---
113115
114116var debugTikTokAdsCmd = & cobra.Command {
115117 Use : "tiktok-ads" ,
@@ -124,30 +126,7 @@ var (
124126)
125127
126128func runDebugTikTokAds (cmd * cobra.Command , args []string ) error {
127- token , err := getToken ()
128- if err != nil {
129- return err
130- }
131-
132- c := client .New (apiURL , token )
133-
134- var parsedParams map [string ]interface {}
135- if err := json .Unmarshal ([]byte (debugTikTokParams ), & parsedParams ); err != nil {
136- return fmt .Errorf ("invalid JSON in --params: %w" , err )
137- }
138-
139- params := map [string ]interface {}{
140- "advertiser_id" : debugTikTokAdvertiserID ,
141- "endpoint" : debugTikTokEndpoint ,
142- "params" : parsedParams ,
143- }
144-
145- result , err := c .CallTool ("tiktok-ads-mcp" , "debug_query" , params )
146- if err != nil {
147- return fmt .Errorf ("debug query failed: %w" , err )
148- }
149-
150- return printJSON (result )
129+ return fmt .Errorf ("not yet implemented server-side. Coming soon" )
151130}
152131
153132func printJSON (v interface {}) error {
0 commit comments