Как использовать вложенный запрос с пониманием API Facebook - PullRequest
0 голосов
/ 20 ноября 2019

Я пытаюсь включить идеи в один вызов API рекламы Facebook, используя Ruby. Я исследовал это и получил следующий звонок:

params = {
    'time_range': {
        'since': '2019-08-01',
        'until': '2019-08-31',
    }
}

ad_account.campaigns(
    fields: [
        'adsets{
            id,
            insights{spend, impressions, clicks, ctr, cpc},
            adcreatives{id, object_story_spec, image_url, object_type}
        }'
    ],
    params: params
).to_json

Мой ответ:

[
    {
        "adsets"=>{
            "data"=>[
                {
                    "id"=>"xxxxxxxxx",
                    "adcreatives"=>{
                        "data"=>
                            [
                                {
                                    "id"=>"xxxxxxxxxxxxxx",
                                    "object_story_spec"=>{
                                        ...
                                    },
                                    "image_url"=> "https://scontent.xx.fbcdn.net/v/xxxxxx",
                                    "object_type"=>"SHARE"
                                }
                            ],
                            "paging"=>{
                                "cursors"=>{
                                    "before"=>"xxxxxx",
                                    "after"=>"xxxxxxx"
                                }
                            }
                        }
                    }
                ],
                ...

Итак, по уровням я могу получить все campaigns, а затем adsetsвнутри них и adcreatives внутри adsets, но не insights.

Я что-то не так делаю? У кого-нибудь есть опыт с этим?

1 Ответ

0 голосов
/ 21 ноября 2019

Так что, к удивлению, Facebook возвращает мои мысли. Иногда. Нет объяснения, почему, но я попытался с двумя учетными записями и получил на одном счете понимание, а другой нет. Может быть, это как-то связано с тем, что идеи, возвращаемые с помощью этого звонка, имеют меньшую продолжительность жизни, поэтому вы не можете получить информацию о старых объявлениях. Точно сказать не могу. Не собираюсь читать миллион страниц.

Мое решение для тех, кто заинтересован. Я позвонил напрямую в adaccount insights и указал уровень «ad», чтобы они возвращали информацию для всех объявлений аккаунта. Я также запросил ad_id. Позже я смог сопоставить результаты, возвращенные этим вызовом, с предыдущим, о котором я говорил, путем сравнения идентификатора объявления и объединения результатов.

ad_account.insights(
    fields: ['ad_id', 'spend', 'impressions', 'clicks', 'ctr', 'cpc'], 
    level: 'ad',
    time_range: {
        since: date_since,
        until: date_until
    }
).to_json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...