Отчеты по платежам

Если вы разрабатываете приложения, в которых используются платежи на Facebook и платные подписки, то вы можете воспользоваться функцией "Платежи на Facebook", чтобы получать от нас отчеты за конкретный день с разбивкой по платежам в приложениях.

Обзор

В этом документе содержится подробная информация о содержании таких отчетов, их формате и API для их запроса.

В отчетах по платежам содержится только информация о покупках в приложении. Информация о доходах от Facebook Audience Network не добавляется. Информацию о том, как сгенерировать отчет по платежам для приложений Audience Network, см. к справочной документации по API для отчетов Audience Network.

Скачивание ежедневных отчетов

Чтобы скачать ежедневный отчет для ваших приложений, администратора компании может перейти на страницу настроек компании, выбрать нужную компанию и открыть вкладку "Отчеты". На этой странице можно выбрать дату отчета в календаре, а также тип отчета в раскрывающемся меню.

Кроме того, перейти в настройки компании можно следующими способами:

  • игры для Холста — Веб-платежи > Веб-платежи > Компания > Просмотреть/редактировать;
  • моментальные игры — Покупки в приложении > Аккаунт > Перейти в настройки компании.

Выберите нужные параметры и нажмите Скачать, чтобы скачать ежедневный отчет для своей компании.

Отчеты для моментальных игр показываются по отдельности как Сводка по моментальным играм и Информация о моментальных играх.


Отчет для моментальных игр также используется и для облачных игр.

Содержание отчетов

Каждый отчет охватывает одни сутки с 00:00 до 23:59:59 по американскому тихоокеанскому времени (UTC-8/UTC-7) и содержит информацию о транзакциях с выплатой одной и той же компании, проведенных во всех приложениях в этот день.

Для каждого дня можно запросить отчеты двух разных типов:

  • Отчет detail содержит одну запись для каждой отдельной транзакции, т. е. для каждой продажи, возврата и т. п. В подробных отчетах учитывается оплата с точки зрения Facebook.
  • Отчет digest представляет собой сводку всех транзакций определенного типа в том или ином приложении.

Отчеты для моментальных игр аналогичны, но называются иначе:

  • Отчет ig_detail содержит одну запись для каждой отдельной транзакции, т. е. для каждой продажи, возврата и т. п.
  • Отчет ig_digest представляет собой сводку всех транзакций определенного типа в той или иной моментальной игре.

В настоящее время отчеты по платежам состоят из двух разделов, однако при написании синтаксического анализатора учитывайте, что формат отчетов может расширяться.

  • Один раздел, credits_digest или credits_detail (в зависимости от того, какой отчет вы читаете), содержит все транзакции с использованием функции купонов Facebook, а также все внутриигровые покупки, сделанные через действие buy_item в диалоге платежа. Этот раздел упразднен, поскольку разработчики больше не получают платежи в купонах Facebook.

  • Другой раздел, payment_digest или payment_detail, содержит транзакции с использованием функции платежей на Facebook, а именно Подписки и Платежи.

Когда следует запрашивать отчеты

Мы создаем новые отчеты раз в день. Они становятся доступны в 12 часов дня по тихоокеанскому времени (UTC-8/UTC-7), поэтому самый последний отчет из доступных на момент запроса, как правило, содержит информацию за предыдущий день. Для моментальных игр действует задержка в два дня.

Отчеты по платежам можно скачать в течение 45 дней.

Скачивание ежедневных отчетов с помощью API

Отчеты по платежам доступны через сетевой API, поэтому можно запросить как сводный, так и очень подробный отчет по транзакциям за выбранный день.

Получение отчетов происходит в 3 этапа:

  1. Получение ID и секрета компании.
  2. Получение Company access_token.
  3. Скачивание файлов отчетов.

Получение ID и секрета компании

Прежде чем продолжить, убедитесь, что вы включили функцию платежей в приложении, а также настроили получение платежей для компании.

Если это так, вы увидите ID и секрет своей компании на странице настроек компании (вкладка Идентификационные данные).

Для одной компании требуется всего одна пара из ID и секрета. Она используется во всех приложениях этой компании. Эти идентификационные данные потребуются, чтобы получить access_token, необходимый для скачивания ежедневных отчетов по вашим приложениям.

Получение Company Access Token

Company Access Token позволяет получить доступ к отчетам для всех приложений, связанных с компанией, от имени которой выдан маркер. Чтобы получить его, отправьте запрос GET к конечной точке

https://graph.facebook.com/oauth/access_token?

и укажите следующие параметры:

Имя Тип Значение

client_id

Целое число

ID вашей компании.

client_secret

Строка

Секрет вашей компании.

grant_type

Строка

`client_credentials

Срок действия этого маркера истекает только в случае сброса секрета компании, поэтому его нужно хранить и использовать повторно, а не генерировать заново при каждом запросе отчетов.

Пример запроса access_token компании

Пример запроса:

https://graph.facebook.com/oauth/access_token?
                                 client_id=COMPANY_ID&
                                 client_secret=COMPANY_SECRET&
                                 grant_type=client_credentials

Образец ответа от Facebook:

access_token=230001349987723|aBc_dEFaEUZberrtkrp8pbtwXyZ

Скачивание ежедневных файлов

Получив access_token компании, вы можете использовать его для запроса файлов ежедневных отчетов по всем приложениям вашей компании. Как упоминалось выше, можно сгенерировать отчеты двух типов:

  • Отчет digest содержит по строке данных для каждой пары "транзакция — тип приложения" и представляет собой сводку продаж, возвратов и других событий, связанных с транзакциями, для каждого приложения.
  • Отчет detail, как можно понять из его названия, содержит по строке для каждой отдельной транзакции.

Чтобы скачать файлы отчетов за определенный день, отправьте запрос GET к конечной точке

https://paymentreports.facebook.com/COMPANY_ID/report?

и укажите следующие параметры:

Имя Тип Значение

date

Строка

День, за который нужно скачать отчет, в формате ГГГГ-ММ-ДД.

type

Строка

Значение detail, digest (для веб-игр) или ig_detail, ig_digest (для моментальных игр).

access_token

Строка

Маркер доступа вашей компании

Как упоминалось выше, запросить отчет date за текущий день нельзя. Отчеты за текущий день становятся доступны на следующий день после 8:00 по американскому тихоокеанскому времени (UTC-7/UTC-8).

Примеры запросов ежедневных отчетов

Пример запроса ежедневного отчета detail от разработчика:

wget "https://paymentreports.facebook.com/23459934998762/report?
                                          date=2012-05-15&
                                          type=detail&                                     access_token=234599349987627|aBc_dEFaEUZbqpatkrp8pbtwXyZ"

В ответ на такой запрос вы получите файл с именем 23459934998762_detail_2012-05-15.csv.zip.

Пример запроса отчета digest от разработчика:

wget "https://paymentreports.facebook.com/23459934998762/report?
                                          date=2012-05-15&
                                          type=digest&
                                          access_token=23459934998762|aBc_dEFaEUZbqpatkrp8pbtwXyZ"

В ответ на такой запрос вы получите файл с именем 23459934998762_digest_2012-05-15.csv.zip.

Формат отчетов

Все отчеты имеют единую структуру:

  • текстовые файлы со значениями, разделенными запятой (CSV);
  • разделители строк в формате Unix "\n" (новая строка);
  • поля, содержащие запятые, заключаются в двойные кавычки для удобства импорта в Excel;
  • первая колонка каждой строки содержит код типа строки, который определяет, как будут интерпретироваться остальные колонки;
  • отчеты содержат строки 6 типов, со следующей структурой:
  • один заголовок отчета (код типа RH);
  • один или несколько разделов, каждый из которых содержит:
  • некоторое (в том числе нулевое) количество строк данных раздела (SD);

Эту структуру можно визуализировать следующим образом:

RH,     ...

  SH,   ...
    CH, ...
    SD, ...
    [More section data rows]
  SF,   ...

  SH,   ...
    CH, ...
    SD, ...
    [More section data rows]
  SF,   ...

  [Possibly more sections]

RF,     ...

Примечание. Отступы и пробелы в примере выше добавлены исключительно для удобства чтения. В настоящих отчетах отступов нет, а пробелы употребляются, только когда они содержатся в данных полей.

Примеры с заполненными полями можно найти в разделе с примерами файлов в конце этого документа.

Заголовок отчета (RH)

Первая строка — это заголовок отчета. Она содержит данные, которые относятся ко всем последующим строкам вплоть до нижнего колонтитула отчета, обозначающего конец отчета. Строки RH содержат следующие поля:

Имя Описание

company_id

ID компании разработчика.

report_type

Тип отчета. В настоящее время это daily_detail или daily_digest.

start_time

Время начала отчетного периода в формате "ГГГГ-ММ-ДД 00:00:00 ЧАСОВОЙ ПОЯС".

end_time

Время окончания отчетного периода в формате "ГГГГ-ММ-ДД 23:59:59 ЧАСОВОЙ ПОЯС".

format_version

1

Пример заголовка отчета

Пример строки:

RH,213030545409781,daily_detail,2011-11-21 00:00:00 PST,2011-11-21 23:59:59 PST,1

Как следует читать этот пример строки:

Колонка Значение Описание

1

RH

Тип строки: заголовок отчета.

2

213030545409781

ID компании.

3

daily_detail

Указывает на то, что это отчет detail.

4

2011-11-21 00:00:00 PST

Время начала для отчета.

5

2011-11-21 23:59:59 PST

Время окончания.

6

1

Версия схемы отчета.

Заголовок раздела (SH)

Все строки между заголовком и нижним колонтитулом отчета являются частями раздела. Каждый раздел в отчете начинается с заголовка и заканчивается нижним колонтитулом раздела. Строки SH содержат следующие поля:

Имя Значение

company_id

ID компании разработчика.

section_type

В настоящее время это credits_detail, credits_digest, payment_detail или payment_digest.

Пример заголовка раздела

Пример строки:

SH,213030545409781,payment_detail

Как следует читать этот пример строки:

Колонка Значение Описание

1

SH

Тип строки: заголовок раздела.

2

213030545409781

ID компании.

3

payment_detail

Заголовок раздела payment_detail.

Заголовок колонки (CH)

После каждого заголовка раздела следует заголовок колонки с именами полей для строк данных этого раздела. Разделы разных типов содержат разные поля. Важно ознакомиться со строками заголовков колонок, чтобы знать названия полей в каждом разделе. Формат отчета можно легко расширить. Для этого достаточно обновить его описание, изменив порядок колонок или спецификацию разделов таким образом. По этой причине любое решение для синтаксического анализа с жестко закодированной структурой отчетов может стать недействительным.

Примеры заголовков колонок

Пример строки CH из раздела payment_detail:

CH,app_id,payment_type,product_type,payment_id,time_completed,recv_currency,recv_amount,fx_batch_id,fx_rate,settle_currency,reference_id,tax_country

Пример строки CH из раздела payment_digest:

CH,app_id,app_name,payment_type,product_type,recv_currency,
,fx_batch_id,fx_rate,settle_currency,settle_amount

Данные раздела (SD)

За заголовком колонки раздела следует некоторое (может быть нулевое) количество строк section data, названия полей которых берутся из строки CH. Содержание строк зависит от типа раздела: в разделах detail каждая строка представляет собой отдельную транзакцию, а в разделах digest каждая строка содержит сумму всех транзакций определенного типа в том или ином приложении (например, "все продажи для ID приложения 276999562313463", "все возвраты в японских иенах за отмену подписки для ID приложения 276899562313544"). В настоящее время существует 4 типа разделов. Они описаны ниже.

Примеры данных разделов

Разделы credits_detail и credits_digest упразднены, поскольку в приложениях больше нет возможности создавать платежи с использованием купонов Facebook.

Строка SDpayment_detail

Поля:

Имя Описание

app_id

ID приложения, в котором произведена транзакция.

payment_type

Один из следующих кодов:

  • S — продажа;
  • R — возврат;
  • C — возврат платежа;
  • D — возврат платежа после закрытия окна;
  • K — отмена возврата платежа;
  • J — отмена возврата платежа после закрытия окна;
  • N — отклонение.

При расчете дохода используются следующие соответствующие коэффициенты:

S => 1, R => -1, C => -1, D => 0, K => 1, J => 0, N => -1

product_type

S означает подписку, P — платеж.

payment_id

Уникальный ID платежа, аналогично txn_id в credits_detail.

time_completed

Метка времени завершения транзакции в формате "ГГГГ-ММ-ДД ЧЧ:ММ:СС часовой пояс".

recv_currency

Трехбуквенный вод валюты, в которой клиент произвел оплату, по стандарту ISO 4217

recv_amount

Чистая сумма в единицах в этой валюте, включая сумму налога. Это может быть не та сумма, которую получит разработчик, поскольку доля доходов Facebook еще должна вычтена.


Финальный размер оплаты можно проверить в отчетах по выплатам.

fx_batch_id

Уникальный ID пакета обменного курса, в котором обработана транзакция.

fx_rate

Обменный курс, по которому в пакете с fx_batch_id за одну единицу recv_currency покупается settle_currency.

settle_currency

Трехбуквенный вод валюты, в которой получил оплату разработчик, по стандарту ISO 4217. В настоящее время это всегда доллары США (USD).

reference_id

ID соглашения о выставлении счетов для подписки и request_id (ID запроса) для платежей.

tax_country

Двухбуквенный код страны, в которой клиент совершил покупку, по стандарту ISO 3166-1 alpha-2.

tax_amount

Фактическая сумма НДС или налога с продаж, перечисленная Facebook от вашего имени в валюте транзакции.

platform

Только для отчетов ig_detail.


'F' соответствует покупкам через Facebook Pay, а 'G' — покупкам через Google Play.

platform_fee

Только для отчетов ig_detail.

Это плата, которую взимают платформы, не относящиеся к Facebook. Для Facebook по-прежнему применяется соглашение о доле дохода, которая не включается сюда.

Пример строки для подписки:

SD,266989143414,S,S,267668373345994,2012-07-22 00:07:23 PDT,USD,19.99,123456789ABCDEF00123456789ABCDEF,1.0000000000,USD,20000000007,US,0.99

Как читать пример строки для подписки:

Колонка Значение Описание

1

SD

Тип строки: данные раздела.

2

266989143414

app_id, в котором выполнен платеж.

3

S

Транзакция связана с продажей.

4

S

Проданный продукт — подписка.

5

267668373345994

ID продажи.

6

2012-07-22 00:07:23 PDT

Время завершения обработки платежа.

7

USD

Покупатель произвел оплату в долларах США.

8

19.99

Клиент заплатил 19,99 долл. США.

9

123456789ABCDEF00123456789ABCDEF

ID пакета обменного курса.

10

1.0000000000

Курс обмена доллара США на доллар США.

11

USD

Разработчик получил оплату в долларах США.

12

20000000007

Платеж является частью history соглашения 20000000007 о выставлении счетов за подписку.

13

US

Покупатель находится в США.

14

0.99

Фактическая сумма НДС, перечисленная от вашего имени.

Пример строки для платежей:

SD,480369938658210,S,P,362736900505327,2013-06-12 16:33:52 PDT,USD,1,6E5D989082A04A68AA801DB17A30721A,1,USD,QQ6C7XaxeMyCW4RdZXFGwKTQM1IkMBIOpeWtFFJelHUdSC9NaeYlBXEMJd3LO17k,US,0.09

Как следует читать пример строки для платежа:

Колонка Значение Описание

1

SD

Тип строки: данные раздела.

2

480369938658210

app_id, в котором выполнен платеж.

3

S

Транзакция связана с продажей.

4

P

Транзакция связана с платежом.

5

362736900505327

ID платежа для продажи.

6

2013-06-12 16:33:52 PDT

Время завершения обработки платежа.

7

USD

Покупатель произвел оплату в долларах США.

8

1

Клиент заплатил 1,00 долл. США.

9

6E5D989082A04A68AA801DB17A30721A

ID пакета обменного курса.

10

1.0000000000

Курс обмена доллара США на доллар США.

11

USD

Разработчик получил оплату в долларах США.

12

QQ6C7XaxeMyCW4RdZXFGwKTQM1IkMBIO-peWtFFJelHUdSC9NaeYlBXEMJd3LO17k

request_id приложения для этого платежа.

13

US

Покупатель находится в США.

14

0.09

Фактическая сумма НДС, перечисленная от вашего имени.

Строка SDpayment_digest

Поля:

Имя Описание

app_id

app_id, для которого приведена сводка платежей.

app_name

Название приложения.

payment_type

Один из следующих кодов:

  • S — продажа;
  • R — возврат;
  • C — возврат платежа;
  • D — возврат платежа после закрытия окна;
  • K — отмена возврата платежа;
  • J — отмена возврата платежа после закрытия окна;
  • N — отклонение.

product_type

S означает подписку, P — платеж.

recv_currency

Трехбуквенный код суммируемой валюты плательщика по стандарту ISO 4217

recv_amount

Общая сумма в этой валюте, связанная с платежами этого типа в рамках определенного пакета обмена валют.

fx_batch_id

ID такого пакета.

fx_rate

Обменный курс, по которому в пакете с fx_batch_id за одну единицу recv_currency покупается settle_currency.

settle_currency

Трехбуквенный вод валюты, в которой получил оплату разработчик, по стандарту ISO 4217.

settle_amount

Общая сумма в этой валюте для соответствующего приложения, типа платежа, типа продукта, валюты и пакета обмена валют в отчетном периоде.

tax_amount

Фактическая сумма НДС или налога с продаж, перечисленная Facebook от вашего имени.

Пример строки для подписки:

SD,200000000000002,Game2,S,S,CNY,5000.0,FXBATCHID1,0.2,USD,1000.0,9.99

Как читать пример строки для подписки:

Колонка Значение Описание

1

SD

Тип строки: данные раздела.

2

200000000000002

Для приложения с ID 200000000000002

3

Game2

…под названием Game2

4

S

…для всех продаж,

5

S

…связанных с подписками,

6

CNY

…оплаченных в китайских юанях (жэньминьби)

7

5000.0

…на общую сумму 5000 CNY,

8

FXBATCHID1

…конвертированную с применением пакета FXBATCHID1

9

0.2

…по курсу 1 CNY = 0,2 USD.

10

USD

Разработчик получил оплату в долларах США.

11

1000.0

Итого: "Сумма продаж Game2 за отчетный период составила 1000 долл. США, если считать всех пользователей, купивших подписку в китайских юанях (жэньминьби) в период действия пакета FXBATCHID1".

12

9.99

Сумма НДС, перечисленная от вашего имени, составила 9,99.

Пример строки для платежей:

SD,900000000000009,Game9,S,P,CNY,5000.0,FXBATCHID1,0.2,USD,1000.0,9.99

Как следует читать пример строки для платежа:

Колонка Значение Описание

1

SD

Тип строки: данные раздела.

2

200000000000002

Для приложения с ID 900000000000009

3

Game9

…под названием Game9

4

S

…для всех продаж,

5

P

…связанных с платежами,

6

CNY

…запрошенных в китайских юанях (жэньминьби)

7

5000.0

…на общую сумму 5000 CNY,

8

FXBATCHID1

…конвертированную с применением пакета FXBATCHID1

9

0.2

…по курсу 1 CNY = 0,2 USD.

10

USD

Разработчик получил оплату в долларах США.

11

1000.0

Итого: "Сумма продаж Game2 за отчетный период составила 1 000 долл. США, если считать всех пользователей, которые купили товары в приложении, совершив платежи в китайских юанях (жэньминьби) в период действия пакета FXBATCHID1".

12

9.99

Сумма НДС, перечисленная от вашего имени, составила 9,99.

Каждый раздел заканчивается строкой нижнего колонтитула раздела, за которым может следовать новый раздел со строкой SH или строка нижнего колонтитула отчета, обозначающего конец отчета. Единственная колонка данных, идущая за полем типа, содержит:

Имя Описание

number_of_total_data_rows

Общее количество строк данных раздела в этом разделе отчета.

Пример нижнего колонтитула раздела

Пример строки:

SF,7

Как следует читать этот пример строки:

Колонка Значение Описание

1

SF

Тип строки: нижний колонтитул раздела

2

7

Этот раздел содержит 7 строк SD.

Отчет заканчивается строкой нижнего колонтитула отчета. Она должна быть последней в файле. Эта строка содержит 2 части сводных данных, следующих после колонки ее типа:

Имя Описание

number_of_sections

Общее количество строк заголовков разделов в этом отчете.

number_of_total_data_rows

Общее количество строк данных разделов во всех разделах этого отчета.

Пример нижнего колонтитула отчета

Пример строки:

RF,2,7

Как следует читать этот пример строки:

Колонка Значение Описание

1

RF

Тип строки: нижний колонтитул отчета.

2

2

Этот отчет содержит 2 строки SH.

3

7

Этот отчет содержит 7 строк SD (общее количество для всех разделов).

Примеры отчетов

Эти примеры следует читать в соответствии с инструкциями выше. Кроме того, учтите следующее:

  • строки вверху каждого примера отчета — это обычные заголовки отчетов;
  • следующий блок текста содержит разделы credits_detail или _digest;
  • блок текста после него (непосредственно над нижним колонтитулом) содержит разделы payment_detail или payment_digest;
  • строки внизу примера — это обычные нижние колонтитулы отчетов.

Пример отчета detail

RH,10808080808080808,daily_detail,2012-04-24 00:00:00 PDT,2012-04-24 23:59:59 PDT,1

SH,10808080808080808,credits_detail
CH,app_id,txn_type,txn_id,order_id,txn_time,value,credits

SH,10808080808080808,payment_detail
CH,app_id,payment_type,product_type,payment_id,time_completed,recv_currency,recv_amount,fx_batch_id,fx_rate,settle_currency,reference_id,tax_country
SD,266989143414,S,S,267668373345994,2012-07-22 00:07:23 PDT,USD,19.99,123456789ABCDEF00123456789ABCDEF,1.0000000000,USD,20000000007,US
SD,266989143414,S,S,272014936246430,2012-07-22 00:08:18 PDT,USD,21.09,123456789ABCDEF00123456789ABCDEF,1.0000000000,USD,20000000008,US
SD,266989143414,S,S,272990136150221,2012-07-22 00:09:18  PDT,USD,22.99,123456789ABCDEF00123456789ABCDEF,1.0000000000,USD,20000000009,CY
SD,266989143414,S,S,278092248972451,2012-07-22 00:08:34 PDT,USD,19.99,123456789ABCDEF00123456789ABCDEF,1.0000000000,USD,20000000010,US 
SD,266989143414,S,P,376727629107629,2012-07-22 00:08:34 PDT,USD,19.99,123456789ABCDEF00123456789ABCDEF,1.0000000000,USD,20000000010,US 
SF,4 

RF,2,13

Пример отчета digest

RH,108080808080808,daily_digest,2012-04-25 00:00:00 PDT,2012-04-25 23:59:59 PDT,1

SH,108080808080808,credits_digest
CH,app_id,app_name,txn_type,value,credits

SH,108080808080808,payment_digest
CH,app_id,app_name,payment_type,product_type,recv_currency,recv_amount,fx_batch_id,fx_rate,settle_currency,settle_amount
SD,200000000000002,Game2,S,S,CNY,5000.0,FXBATCHID1,0.2,USD,1000.0
SD,200000000000002,Game2,R,S,CNY,2000.0,FXBATCHID1,0.2,USD,400.0
SD,200000000000002,Game2,S,P,CNY,1000.0,FXBATCHID1,0.2,USD,200.0
SF,2

RF,2,5

Расчеты

Для расчета чистого дохода разработчика используйте следующую информацию.

Покупки через Facebook Pay

Они соответствуют транзакциям в отчете ig_detail, параметр platform которых имеет значение "F", или всем транзакциям в отчете detail.

Предположим, что значение tax_country, равное "US", означает, что покупка не облагается налогом, и расчет производится по следующей формуле:
net_developer_revenue = (recv_amount - tax_amount) * fx_rate * rev_share

В противном случае предположим, что покупка делается с учетом налогов и расчет производится по следующей формуле:
net_developer_revenue = (recv_amount * fx_rate) * rev_share - (tax_amount * fx_rate)

Покупки через Google Play

Они соответствуют транзакциям в отчете ig_detail, параметр platform которых имеет значение "G".

Расчет производится по следующей формуле:
net_developer_revenue = recv_amount * fx_rate

Примечание: это лишь приблизительная оценка, основанная на данных о выплатах. До выплаты могут взиматься дополнительные сборы. В будущем обновлении отчетов этот расчет станет более точным и простым.